Google地图 - 当用户分享位置时,地图不会重新加载

时间:2013-11-21 02:52:30

标签: javascript google-maps

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

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

这很好用,并且在被调用的'success'函数(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'的坐标。

以前当地图是<iframe>的一部分时,这一切都运行正常 - 我现在已将代码内联移动到之前包含<iframe>的页面中(它看起来不像跨域问题,我已经验证了这一点)

更新

(实际上,请忽略我之前的更新 - 我得到的标记会有所不同,具体取决于我是否正在调试。当我允许共享我的位置而没有Firebug时,这是工作版和破损版的标记调试器正在运行。显示的“工作”版本中的蓝线突出显示包含Google地图的div。):

WORKING:

enter image description here BROKEN:

enter image description here

1 个答案:

答案 0 :(得分:0)

事实证明,在我的'setPosition'回调函数中(当浏览器能够成功请求用户的地理位置时使用),我隐藏了一个<div>,当地理位置请求是不成功。由于某些原因,隐藏<div>会阻止地图显示,即使它后来未在任何代码中引用,也与包含Google地图的<div>无关。我已经问了一个单独的问题,关于可能发生的事情,以及如何可靠地清除错误信息:

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