如何集中我目前的位置? (谷歌地图)

时间:2013-04-08 18:14:55

标签: javascript jquery google-maps-api-3

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

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”变量。我怎样才能使它“全局”,以便可以在我的功能之外使用?

2 个答案:

答案 0 :(得分:7)

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变量是全局的..

答案 1 :(得分:2)

您没有从功能中心返回任何值