1

这里有两个问题,但它们是相关的。有没有办法让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()函数添加的,所以一切似乎都配置正确。

4

0 回答 0