Reputation: 9579
I have a GWT app that uses Google Maps and Im trying to create a method that uses Googele's geocoder class to get the LatLng ofan address.
This is my code:
Geocoder gc = new Geocoder();
gc.getLatLng(this.testAddress, new LatLngCallback()
{
public void onFailure()
{
System.out.println("ERROR: Could not obtain the Coordinates for address" + testAddress);
}
public void onSuccess(LatLng point)
{
System.out.println("For Address= "+testAddress +"are Latitude: "+point.getLatitude() + "Longitude: "+ point.getLongitude());
}
});
It compiles fine but at runtime throws this exception:
06:25:09.359 [ERROR] [foodvendor] Unable to load module entry point class cs310.client.Main (see associated exception for details)
com.google.gwt.core.client.JavaScriptException: (TypeError): undefined is not a function
at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:248)
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
at com.google.gwt.maps.client.impl.__GeocoderImplImpl.construct(__GeocoderImplImpl.java)
at com.google.gwt.maps.client.geocode.Geocoder.<init>(Geocoder.java:41)
at cs310.client.AshTestClass.<init>(AshTestClass.java:25)
at cs310.client.Main.onModuleLoad(Main.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:396)
at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:525)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
at java.lang.Thread.run(Thread.java:680)
Im not sure what this exception means, could someoone help me understand? Thanks
Upvotes: 0
Views: 1274
Reputation: 24
If you're using an emulator geocoder doesn't work. Its a pretty big bug they havent fixed but the solution is to test on a real device. Hopefully it should work then.
Upvotes: 0
Reputation: 20920
You may need to first load the Maps JS API using Maps.loadMapsApi(...)
before the geocoding methods will be accessible to your GWT code.
Upvotes: 1