如何在不擦除标记的情况下动态更改谷歌地图的中心?

时间:2012-09-23 17:48:09

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

最初,我的地图会指向用户的当前位置。我给出了一个选项,他可以从自动完成框中选择一个城市,一旦他从自动完成中选择新位置,我将获得一个新的(lat,lng)坐标,我想将其聚焦到我的地图。

根据我对Maps API的了解,我可以将其视为更改中心(但是,仅在加载地图时设置中心)。我想在谷歌地图上实现这个焦点到用户选择的位置。有人可以帮我吗。提前致谢。使用Google Maps js api v3。

3 个答案:

答案 0 :(得分:71)

您只需使用map.setCenter(LatLng)移动地图即可。此方法不会使用任何其他标记,也不会删除现有标记。您还可以通过panTo(LatLng)功能移动地图。初始化地图后,这两种方法也可用。

Here is the documentation for these methods

答案 1 :(得分:14)

jOnes 是对的,您需要使用setCenter()

function initialize()
{
    var mapDiv = document.getElementById('MapDiv');
    var map;
    var address = "Vilnius, Lithuania";
    var geocoder = new google.maps.Geocoder();
    // Get LatLng information by name
    geocoder.geocode({
        "address": address
        }, function(results, status){
                map = new google.maps.Map(mapDiv, {
                // Center map (but check status of geocoder)
                center: results[0].geometry.location,
                zoom: 8,
                mapTypeId: google.maps.MapTypeId.ROADMAP,
            })
        });
}

答案 2 :(得分:1)

map.setCenter(new google.maps.LatLng(LATITUDE, LONGITUDE));

map.setCenter({lat: LATITUDE, lng: LONGITUDE});

此返回无值