Google maps 使用板条放置标记时出现奇怪的异常

Google maps 使用板条放置标记时出现奇怪的异常,google-maps,gwt,exception,Google Maps,Gwt,Exception,我有一个代码,它应该使用LatLng在地图上放置一个标记 ... geocoder = Geocoder.create(); myOptions = MapOptions.create(); myOptions.setZoom(18); myOptions.setMapTypeId(MapTypeId.HYBRID); myOptions.setMapMaker(true); map = GoogleMap.create( Document.get().getEl

我有一个代码,它应该使用LatLng在地图上放置一个标记

    ...
geocoder = Geocoder.create();
myOptions = MapOptions.create();        
myOptions.setZoom(18);
myOptions.setMapTypeId(MapTypeId.HYBRID);
myOptions.setMapMaker(true);
map = GoogleMap.create(
    Document.get().getElementById("map_canvas"),myOptions);  
location = LatLng.create(45.48592686713835,-73.49009937672122);
map.setCenter(location.getGeometry().getLocation());
marker = Marker.create();
marker.setMap(map);
marker.setPosition(location.getGeometry().getLocation());
    location = LatLng.create(45.48592686713835,-73.49009937672122);
    map.setCenter(location.getGeometry().getLocation());
    marker = Marker.create();
    marker.setMap(map);
    marker.setPosition(location.getGeometry().getLocation());
但我得到了一个例外。看起来在经度前面有一个
%20

这是StackTrace

Caused by: com.google.gwt.core.client.JavaScriptException: (Error): Invalid value for property <center>: http://127.0.0.1:8888/m3t/hosted.html?m3t
    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.invokeNativeVoid(ModuleSpace.java:289)
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107)
    at com.google.maps.gwt.client.GoogleMap$.setCenter$(GoogleMap.java)
    at com.tb.ttt.client.view.component.Map.setMarker(Map.java:121)
    at com.tb.ttt.client.view.component.Map.codeAddress(Map.java:110)
    at com.tb.ttt.client.view.component.Map.setData(Map.java:85)
    at com.tb.ttt.client.view.component.PopupMap.onAttach(PopupMap.java:95)
    at com.google.gwt.user.client.ui.Widget.setParent(Widget.java:475)
    at com.google.gwt.user.client.ui.Panel.adopt(Panel.java:127)
    at com.google.gwt.user.client.ui.ComplexPanel.add(ComplexPanel.java:97)
    at com.google.gwt.user.client.ui.AbsolutePanel.add(AbsolutePanel.java:97)
    at com.google.gwt.user.client.ui.PopupPanel$ResizeAnimation.onInstantaneousRun(PopupPanel.java:344)
    at com.google.gwt.user.client.ui.PopupPanel$ResizeAnimation.setState(PopupPanel.java:239)
    at com.google.gwt.user.client.ui.PopupPanel.show(PopupPanel.java:1010)
    at com.google.gwt.user.client.ui.PopupPanel.center(PopupPanel.java:523)
    at com.tb.ttt.client.view.component.PopupMap.<init>(PopupMap.java:65)
    at com.tb.ttt.client.presenter.HpParamImmPresenter$3.onClick(HpParamImmPresenter.java:140)
    at com.google.gwt.event.dom.client.ClickEvent.dispatch(ClickEvent.java:54)
    at com.google.gwt.event.dom.client.ClickEvent.dispatch(ClickEvent.java:1)
    at com.google.gwt.event.shared.GwtEvent.dispatch(GwtEvent.java:1)
    at com.google.web.bindery.event.shared.EventBus.dispatchEvent(EventBus.java:40)
    at com.google.web.bindery.event.shared.SimpleEventBus.doFire(SimpleEventBus.java:193)
    at com.google.web.bindery.event.shared.SimpleEventBus.fireEvent(SimpleEventBus.java:88)
    at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:127)
    ... 31 more
[WARN] 404 - GET /(45.48592686713835,%20-73.49009937672122) (127.0.0.1) 1427 bytes
   Request headers
      Host: 127.0.0.1:8888
      User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0
      Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
      Accept-Language: en-us,en;q=0.5
      Accept-Encoding: gzip, deflate
      Connection: keep-alive
      Referer: http://127.0.0.1:8888/m3t/hosted.html?m3t
      Cookie: JSESSIONID=1lkcmpo9v6f8j
   Response headers
      Content-Type: text/html; charset=iso-8859-1
      Content-Length: 1427
原因:com.google.gwt.core.client.JavaScriptException:(错误):属性值无效:http://127.0.0.1:8888/m3t/hosted.html?m3t
在com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript上(BrowserChannelServer.java:248)
在com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
位于com.google.gwt.dev.shell.ModuleSpace.invokenactive(ModuleSpace.java:561)
位于com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:289)
位于com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107)
位于com.google.maps.gwt.client.GoogleMap$.setCenter$(GoogleMap.java)
位于com.tb.ttt.client.view.component.Map.setMarker(Map.java:121)
位于com.tb.ttt.client.view.component.Map.codeAddress(Map.java:110)
位于com.tb.ttt.client.view.component.Map.setData(Map.java:85)
位于com.tb.ttt.client.view.component.PopupMap.onAttach(PopupMap.java:95)
位于com.google.gwt.user.client.ui.Widget.setParent(Widget.java:475)
位于com.google.gwt.user.client.ui.Panel.adopt(Panel.java:127)
位于com.google.gwt.user.client.ui.ComplexPanel.add(ComplexPanel.java:97)
在com.google.gwt.user.client.ui.AbsolutePanel.add上(AbsolutePanel.java:97)
位于com.google.gwt.user.client.ui.popupanel$ResizeAnimation.onInstantaneousRun(popupanel.java:344)
位于com.google.gwt.user.client.ui.popupanel$ResizeAnimation.setState(popupanel.java:239)
位于com.google.gwt.user.client.ui.popupanel.show(popupanel.java:1010)
位于com.google.gwt.user.client.ui.popupanel.center(popupanel.java:523)
在com.tb.ttt.client.view.component.PopupMap.(PopupMap.java:65)
位于com.tb.ttt.client.presenter.hpParamimPresenter$3.onClick(hpParamimPresenter.java:140)
位于com.google.gwt.event.dom.client.ClickEvent.dispatch(ClickEvent.java:54)
位于com.google.gwt.event.dom.client.ClickEvent.dispatch(ClickEvent.java:1)
位于com.google.gwt.event.shared.GwtEvent.dispatch(GwtEvent.java:1)
位于com.google.web.bindery.event.shared.EventBus.dispatchEvent(EventBus.java:40)
位于com.google.web.bindery.event.shared.SimpleEventBus.doFire(SimpleEventBus.java:193)
位于com.google.web.bindery.event.shared.SimpleEventBus.fireEvent(SimpleEventBus.java:88)
位于com.google.gwt.event.shared.handlermager.firevent(handlermager.java:127)
... 还有31个
[警告]404-获取/(45.48592686713835,%20-73.49009937672122)(127.0.0.1)1427字节
请求头
主持人:127.0.0.1:8888
用户代理:Mozilla/5.0(Windows NT 6.1;WOW64;rv:11.0)Gecko/20100101 Firefox/11.0
接受:text/html、application/xhtml+xml、application/xml;q=0.9,*/*;q=0.8
接受语言:en-us,en;q=0.5
接受编码:gzip,deflate
连接:保持活力
推荐人:http://127.0.0.1:8888/m3t/hosted.html?m3t
Cookie:JSESSIONID=1lkcmpo9v6f8j
响应头
内容类型:text/html;字符集=iso-8859-1
内容长度:1427

var映射;
函数初始化(){
变量映射选项={
中心:新google.maps.LatLng(45.48592686713835,-73.49009937672122),
缩放:18,
mapTypeId:google.maps.mapTypeId.SATELLITE,
标题:90,
倾斜:45
};
map=new google.maps.map(document.getElementById('map_canvas'),mapOptions);
var location=new google.maps.LatLng(45.48592686713835,-73.49009937672122);
var marker=new google.maps.marker({
位置:位置,,
地图:地图
});
marker.setTitle(“标题”);
var infowindow=new google.maps.infowindow(
{内容:“消息”,
大小:新谷歌地图大小(50,50)
});
google.maps.event.addListener(标记'click',函数(){
信息窗口。打开(地图、标记);
});
}
函数rotate90(){
var heading=map.getHeading()| | 0;
地图设置航向(航向+90);
}
函数自动旋转(){
//确定我们是否正在显示航空图像
if(map.getTilt()!=0){
窗口设置间隔(旋转903000);
}
}
google.maps.event.addDomListener(窗口“加载”,初始化);
使用此脚本可能会对您有所帮助。它对我有效。

map.Center()
采用
LatLng
,因此您不需要对现有
LatLng
进行任何转换:

map.setCenter(location.getGeometry().getLocation());
应该是

map.setCenter(location);

没有足够的文档供我检查并将其作为答案发布(除非它有效!),但它不是
map.setCenter(location)?当
location
已经是
LatLng
时,为什么需要执行
getGeometry().getLocation()
?那么这就是答案吗?如果是,我会添加它以帮助其他人。
map.setCenter(location);