2013-11-21 113 views
0

我有一个谷歌地图,显示正确的初始页面加载,并显示正确的地方标记(这是从自定义Web服务检索)。不过,我正在提示用户分享他们的位置,当他们这样做时,地图就会消失。我提示用户通过分享自己的位置:谷歌地图 - 地图不重新加载时,用户分享位置

 if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(setPosition, error); 
     } ... 

这工作得很好,并在“成功”函数被调用(setPosition两种),我用下面的刷新地图:

//load map object and show map 
this.map = new google.maps.Map(
document.getElementById(this.mapElementId), 
{ 
zoom: this.currentZoom, 
center: this.startPos, 
mapTypeId: google.maps.MapTypeId.ROADMAP 
} 
); 

'this.map'已成功填充谷歌地图对象。 'document.getElementById(this.mapElementId)'工作正常,并且找到我想要地图出现的<div>,'currentZoom'和'startPos'的坐标正确地被获取。

以前这个工作正常,当时地图是的一部分 - 我现在将代码内联移动到之前包含的页面(它看起来不像跨域问题,因为我“已经验证了这一点)

UPDATE

(实际上,请忽略我以前的更新 - 我越来越取决于我是否正在调试不同的标记下面是从工作的标记和破版本,当我允许共享我的位置时,没有运行Firebug调试器。'working'版本中的蓝线显示突出显示包含谷歌地图的DIV):

工作:

enter image description here 破:

enter image description here

+1

我猜获得用户的地理位置可能工作后刷新谷歌。检查此[回答](http://stackoverflow.com/a/18607307/1671639)如何触发谷歌地图v3中的刷新。希望这可以帮助。 – Praveen

+0

真的忘了问你,地图画布是灰色的吗? – Praveen

回答

0

事实证明,在我的 'setPosition两种' 回调函数(如果使用的浏览器有能够成功地请求用户的地理位置),我隐藏了一个<div>,当地理位置请求不成功时显示错误消息。出于某种原因,隐藏<div>会停止显示地图,即使随后没有在任何代码中引用该地图,也不会与包含Google地图的<div>相关。我问什么可怎么回事,如何可靠地在这里清除错误信息,另外一个问题:

https://stackoverflow.com/questions/20134180/jquery-javascript-hiding-div-stops-google-map-from-appearing