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

Vam*_*lly 33 google-maps google-maps-api-3

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

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

j0n*_*nes 74

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

以下是这些方法的文档.

  • `panTo()`比`setCenter`更好,它给你一个动画.这很有用,因为客户不会像使用`setCenter`那样头疼. (5认同)

Ale*_*nov 15

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,
            })
        });
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你的例子dude - setCenter工作; +1地理编码示例:) (2认同)

Mah*_*our 5

map.setCenter(new google.maps.LatLng(LATITUDE, LONGITUDE));
Run Code Online (Sandbox Code Playgroud)

或者

map.setCenter({lat: LATITUDE, lng: LONGITUDE});
Run Code Online (Sandbox Code Playgroud)

此返回无值