如何集中新的谷歌地图标记

时间:2012-10-22 23:22:56

标签: javascript google-maps

我有这个功能,可以将新标记添加到谷歌地图。

但是中心不起作用。有什么建议吗?

function addMarker(lat, lng, name){
    new google.maps.Marker({
        map: map,
        icon: image,
        position: new google.maps.LatLng(lat, lng),
        title: name,
        center: new google.maps.LatLng(lat, lng),
        zoom: 6
    });
}

但是center不起作用。

1 个答案:

答案 0 :(得分:5)

当您通过Google Maps API创建新的标记对象时,您可以调用地图对象的setCenter函数,并传入标记的位置:

map.setCenter(marker.position);

这应该将地图置于标记的中心。

如果您想为流程设置动画,请改为使用panTo

map.panTo(marker.position);

还应该注意,您尝试在Marker对象的构造函数中设置的centerzoom属性不存在。这些是地图对象本身的属性,需要在那里设置。

我想象这样的事情:

function addMarker(lat, lng, name)
{ 
    var newMarker = new google.maps.Marker({ map: map, 
                                             icon: image, 
                                             position: new google.maps.LatLng(lat, lng), 
                                             title: name });
    map.setCenter(newMarker.position);
    map.setZoom(6);
}

我还考虑将mapimage添加到addMarker的参数列表中,而不是使用“全局”范围对象,或者我放弃使用函数。这有点挑剔,取决于您的代码的需要。

More Info Here