我正在尝试通过 JSNI 使用谷歌地图,以下代码片段抛出异常:
com.google.gwt.core.client.JavaScriptException: (TypeError): $wnd.google.maps.LatLng 不是 com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:248) 的构造函数。 ……
谁能帮我指出这里出了什么问题?
@Override
public void init(final Point center, final int zl)
{
ScriptInjector
.fromUrl( "http://maps.googleapis.com/maps/api/js?sensor=false&language="
+ Cookies.getCookie(LocaleInfo.getLocaleCookieName()))
.setWindow(ScriptInjector.TOP_WINDOW).setCallback(new Callback<Void, Exception>()
{
public void onFailure(Exception reason)
{
// I18N
Window.alert("load google maps api failed,all map function will not work.");
}
public void onSuccess(Void result)
{
map = initMap(getElement(), center.getLatitude(), center.getLongitude(), zoomLevel = zl);
}
}).inject();
}
native JavaScriptObject initMap(Element canvas, double latitude, double longitude, int zoomLevel) /*-{
return new $wnd.google.maps.Map(canvas, {
zoom : zoomLevel,
center : new $wnd.google.maps.LatLng(latitude, longitude),
mapTypeId : $wnd.google.maps.MapTypeId.ROADMAP
});
}-*/;