这里有两个问题,但它们是相关的。有没有办法让centerMapOnUser()
动作流畅?我有一个标记我的位置,它是可拖动的。
// watch for marker movement, and update location accordingly
function updateUserLocation(latLng) {
var revGeo = new google.maps.Geocoder();
revGeo.geocode({'latLng': latLng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
$('#loc').html(results[1].formatted_address);
}
} else {
alert("Geocoder failed due to: " + status);
}
});
Gmaps.map.userLocation = latLng;
Gmaps.map.centerMapOnUser();
lat = latLng.lat();
lng = latLng.lng();
}
不过,这非常突然,几乎让人迷失方向。我想知道是否有人知道如何使其顺利过渡。
边问。有时地图显示 1 个标记,有时显示 26 (AZ)。如果它只有 1,则缩放级别设置为最大。我禁用auto_zoom
并添加了此功能:
function zoom() {
if (Gmaps.map.markers.length == 1) {
//only one marker, choose the zoom level you expect
Gmaps.map.serviceObject.setZoom(16);
}
else{
//more than one marker, let's auto_zoom
Gmaps.map.map_options.auto_zoom = true;
Gmaps.map.adjustMapToBounds();
}
}
检查控制台,无论有 0、1 还是多个标记,Gmaps.map.markers
总是返回 0。不过,标记最初是添加的,甚至是后来通过该replaceMarkers()
函数添加的,所以一切似乎都配置正确。