Google maps 以用户为中心的谷歌地图';地球定位

Google maps 以用户为中心的谷歌地图';地球定位,google-maps,geolocation,Google Maps,Geolocation,我有一个谷歌地图(v2)在我的网站上,我用它来获取用户的纬度和经度,以表格的形式发送它们。我需要的是使这张地图最初以用户的地理位置为中心。我知道这不是一个实际的问题,但我对谷歌地图api不是很熟悉,网上的所有教程都基于谷歌地图v3,我不想麻烦地迁移到v3并重新编写所有内容。因此,如果有人引导我朝着正确的方向,让这个功能在gmap(v2)上运行,我将不胜感激。下面是我的代码的样子: if (GBrowserIsCompatible()) { var map = new GMap2(docu

我有一个谷歌地图(v2)在我的网站上,我用它来获取用户的纬度和经度,以表格的形式发送它们。我需要的是使这张地图最初以用户的地理位置为中心。我知道这不是一个实际的问题,但我对谷歌地图api不是很熟悉,网上的所有教程都基于谷歌地图v3,我不想麻烦地迁移到v3并重新编写所有内容。因此,如果有人引导我朝着正确的方向,让这个功能在gmap(v2)上运行,我将不胜感激。下面是我的代码的样子:

if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map"));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());

    var center = new GLatLng(43.65323, -79.38318);

    map.setCenter(center, 15);

    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function (position) {
            initialLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
            map.setCenter(initialLocation);
        });
    }

    geocoder = new GClientGeocoder();
    var marker = new GMarker(center, {
        draggable: true
    });
    map.addOverlay(marker);
    document.getElementById("b-lat").value = center.lat().toFixed(5);
    document.getElementById("b-longt").value = center.lng().toFixed(5);

    GEvent.addListener(marker, "dragend", function () {
        var point = marker.getPoint();
        map.panTo(point);
        document.getElementById("b-lat").value = point.lat().toFixed(5);
        document.getElementById("b-longt").value = point.lng().toFixed(5);

    });
    GEvent.addListener(map, "moveend", function () {
        map.clearOverlays();
        var center = map.getCenter();
        var marker = new GMarker(center, {
            draggable: true
        });
        map.addOverlay(marker);
        document.getElementById("b-lat").value = center.lat().toFixed(5);
        document.getElementById("b-longt").value = center.lng().toFixed(5);


        GEvent.addListener(marker, "dragend", function () {
            var point = marker.getPoint();
            map.panTo(point);
            document.getElementById("b-lat").value = point.lat().toFixed(5);
            document.getElementById("b-longt").value = point.lng().toFixed(5);

        });

    });

}
请参阅我的其他帖子:

要简单地放大,请使用:

float zoomLevel = 20.0f;
map.animateCamera(CameraUpdateFactory.zoomTo(zoomLevel); 
要缩放到标记,请使用:

LatLng l = new LatLng(LATPOSITION, LONGPOSITION); float zoomLevel =
20.0f; map.animateCamera(CameraUpdateFactory.newLatLngZoom(l, zoomLevel)); 
在希望进行缩放的位置添加这些


注意:这是针对Java android的,您可能需要在web上编辑它。

我通过
navigator
对象找到了解决方案。初始化地图后,我发现用户的lat和LONG带有以下代码块:

if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function (position) {
        userLatitude = position.coords.latitude;
        userLongitude = position.coords.longitude;
        center = new GLatLng(position.coords.latitude, position.coords.longitude);
        map.setCenter(center, 15);
        addMapMarker();
    });
    if(typeof userLatitude == 'undefined' && typeof userLongitude == 'undefined') {
        center = new GLatLng(43.65323, -79.38318);
        map.setCenter(center, 15);
        addMapMarker();
    }
} else {
    center = new GLatLng(43.65323, -79.38318);
    map.setCenter(center, 15);
    addMapMarker();
}