3

我正在尝试将我当前的位置放在谷歌地图的中心。这将使具有特定纬度和经度变量的位置居中。

var coords = new google.maps.LatLng(62.39081100, 17.30692700);

但我尝试使用此功能获取用户位置:

function grabMyPosition() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(centerMe);
    } else {
        alert("You don't support this");
    }
}
function centerMe(center) {
    var me_location = {
        lat: position.coords.latitude,
        lon: position.coords.longitude
    };
}

然后这样做:

var coords = new google.maps.LatLng(me_location.lat, me_location.lon);

但后来我明白了:

Uncaught TypeError: Cannot read property 'lat' of undefined 

那是因为我在一个函数中存储和填充这个“me_location”变量。我怎样才能使它“全局”,以便它可以在我的功能之外使用?

4

2 回答 2

8
function grabMyPosition() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(centerMe);
    } else {
        alert("You don't support this");
    }
}
function centerMe(position) {
    var coords = new google.maps.LatLng(
        position.coords.latitude,
        position.coords.longitude
    );

    map.setCenter(coords);
    // or
    map.panTo(coords);
}

假设你的map变量是全局的..

于 2013-04-08T18:20:16.053 回答
2

您没有从函数 centerMe 返回任何值

于 2013-04-08T18:22:16.173 回答