0

今天是我使用 Google Maps API 的第一天。现在我有一个ID为“map”的DIV,下面的代码......

function initializeMap() {

        var opts = {
            center: new google.maps.LatLng( 0, 0), // ignore the zero values for now
            zoom: 10,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById('map'), opts);
        geocoder = new google.maps.Geocoder();
}

我称之为使用window.onload = initializeMap

好的,我想将地图放在我当前位置的中心。我知道我可以使用 long 和 lat

navigator.geolocation.getCurrentPosition(displayLocation);

function displayLocation(position) {
    var latitude = position.coords.latitude;
    var longitude = position.coords.longitude; 
 }

现在我对如何将位置对象推回成功处理程序 displayLocation 有点迷茫。无论如何,我怎样才能将纬度和经度传递给 initializeMap() 函数,就像这样......

center: new google.maps.LatLng( latitude, longitude)

我目前正在查看 Google Maps API 文档,因为我确定有一种方法可以得到它,但我想在不同的函数中使用纬度、经度,所以我想我在问如何使这些变量可访问对所有函数(如全局但不是坏全局),而不是仅对displayLocation函数可用。对不起,如果这措辞不好......如果我让人们感到困惑,请说,我会改写这个问题。

4

1 回答 1

0

只需声明

var latitude, longitude;

进入父范围,所以函数是

function displayLocation(position) {
    latitude = position.coords.latitude; /* no var keyword */
    longitude = position.coords.longitude; 
}

当然,您应该选择定义这些变量的范围取决于您。另外,请注意,它们将undefined直到displayLocation不被调用

于 2012-05-25T12:31:30.387 回答