避免this.map.fitBounds()的缩小

时间:2015-10-19 08:30:28

标签: javascript leaflet mapbox

我怎样才能避免在.map.fitBounds()上缩小? 执行this.map.fitBounds将放大或缩小地图以拟合边界值。我想避免使用fitBounds的缩小功能。我怎么能这样做?

尝试了以下。这将在执行fitBounds()后执行。需要在执行fitBounds()

之前执行
var lineBounds = this._trail.getLineBounds()
 , current_zoom = this.map.getZoom()
 , center = this.map.getCenter();

 this.map.fitBounds(lineBounds, {
    padding: [29, 29],
 });

this.map.once('zoomend', function() {
   if (current_zoom > this.map.getZoom()) {
      this.map.setView(center, current_zoom);
   }
}.bind(this));

1 个答案:

答案 0 :(得分:1)

您必须为地图实例设置minZoom选项。问题是您需要手动编辑地图实例的选项对象。 Leaflet v1.0.0-beta.2中引入了setMinZoomsetMaxZoom方法,Mapbox尚未使用该版本。否则你只需执行map.setMinZoom(number),现在你将不得不诉诸map.options.minZoom = number。因此,在拟合边界后,使用map.getZoom方法获取地图的当前缩放因子,并将该因子值设置为minZoom选项。