一、前言
在 webgis 中經常會用到縮放到某一個要素,視圖縮放不同級別等問題。對於不同的要素方法會不一樣。
而且對於不同的地圖具體實現也不一樣。
二、ARCGIS API
arcgis 中對視圖操作主要是通過 mapview 來設置的。
一般設置的方式有:
// 設置視圖中心 this.$map.mapview.center = [point.lon, point.lat] // 設置視圖的范圍,這里是把要居中顯示的要素 extent 賦值給 mapview this.$map.mapview.extent = geometry.extent.expand(1.5) // 視圖移動到目標要素,並可指定層級 this.$map.mapview.goTo({ target: geometry, zoom: 18 })
三、高德地圖
高德地圖直接就是在 map 對象上面設置
可以設置的方式有:
// 設置中心點 this.Map.setCenter(point) // 設置縮放級別 this.Map.setZoom(15) // 同時設置縮放級別和中心點 this.Map.setZoomAndCenter(15,point) // 設置顯示城市,不建議和上面的同時使用 this.Map.setCity(city,callbac) // 設置地圖的顯示范圍,bound 是范圍的兩個角點位 this.Map.setBounds(bound) // 地圖中心點評議到指定點位 this.Map.panTo(point) // 以像素為單位,平移地圖 this.Map.panBy(x,y) // 設置合適的視圖,可以直接傳入要素 this.Map.setFitView(this.riverLine)
四、百度地圖
百度地圖也是主要在 Map 對象上面設置
// 設置中心點和縮放級別 this.Map.centerAndZoom(point,zoomIndex) this.Map.centerAndZoom('杭州市') // 可以直接設置地區 // 設置視圖范圍 this.Mpa.setViewport(pointArray) // 移動到指定點 this.Map.panTo(point) // 移動像素 this.Map.panBy(x,y) // 飛到指定點和級別 this.Map.flyTo(point,zoomIndex) // 設置中心點 this.Map.setCenter(point) // 設置縮放級別 this.Map.setZoom(zoomIndex)
從上面可以看出高德、百度對地圖縮放、設置中心點的操作方式比較多,而且二者也很相似。
