2015-10-19 94 views
0

如何避免縮放this.map.fitBounds()? 做這個.map.fitBounds將放大或縮小映射以擬合邊界值。我想避免fitBounds的縮小功能。我可以這樣做嗎?避免縮小this.map.fitBounds()

試過following.This將在執行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

你必須設置minZoom選項地圖實例。問題是你需要手動編輯地圖實例的選項對象。在Leaflet v1.0.0-beta.2中引入了setMinZoomsetMaxZoom方法,而Mapbox尚未使用該版本。否則,你可以簡單地做map.setMinZoom(number),現在你不得不求助於map.options.minZoom = number。因此,在擬合邊界後,使用map.getZoom方法獲取地圖的當前縮放因子,並將該因子值設置爲minZoom選項。