Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图API在我中断后继续工作,不是吗';否则_Javascript_Google Maps - Fatal编程技术网

Javascript 谷歌地图API在我中断后继续工作,不是吗';否则

Javascript 谷歌地图API在我中断后继续工作,不是吗';否则,javascript,google-maps,Javascript,Google Maps,在定义pos后的任何时间中断,然后继续时,此代码起作用。但当我正常运行它时,它不会显示任何内容。我做错了什么 function initialize() { var pos; if(navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { pos = new google.maps.LatLng(position.coo

在定义pos后的任何时间中断,然后继续时,此代码起作用。但当我正常运行它时,它不会显示任何内容。我做错了什么

function initialize() {

    var pos;

    if(navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function(position) {

            pos = new google.maps.LatLng(position.coords.latitude,
                                             position.coords.longitude);
        }, function() {
               handleNoGeolocation(true);
           });
    }
    else { // Browser doesn't support geolocation
        handleNoGeolocation(false);
    }

    var myOptions = {
        zoom: 7,
        center: pos,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    var map = new google.maps.Map(document.getElementById("map_canvas"), 
                                      myOptions);

}

也许API调用需要一点时间,当它中断时,它会得到一点时间来检索它需要的任何数据,所以它能够显示它?这仅仅是猜测,但你可以试着延迟一下,看看会发生什么。

很有趣。你有错误吗?你能分享吗?您可能还希望使用console.log()进行调试,并将try/catch块包装在其周围。我认为某些旧浏览器可能存在一些问题。

getCurrentPosition(f,…)
是异步的,这意味着在成功完成请求后会调用回调
f
。但此时,函数
initialize()
中的局部变量
pos
不再在范围内


您可以通过在全局窗口范围中定义
pos
来解决此问题。这应该是可行的,
pos
将由回调函数分配。但是,您不知道此任务何时发生。处理此问题的最佳方法是直接在回调中使用
pos
,例如将其写入文本字段或存储在数据库中等。

我没有收到任何错误。我也在使用最新的Safari。与铬的行为相同。奇怪。