leaflet (3) Map class 介紹
建立 map
和第一章介紹過的一樣,可以用 .map() 方法快速建立一個 map。
1 | // initialize the map on the "map" div with a given center and zoom |
Options
在建立map的方法裡,第二個參數會傳入 options參數(物件),來設定map相關數值。以下介紹不同種類的options。
State Options
設定地圖相關數值的options,常用的如:
- zoom: 地圖預設縮放大小
- maxZoom: 最大縮放級距
- minZoom: 最小縮放級距
- center: 地圖中心位置(經緯度) 例: [121.02, 53]
Control options
- attributionControl: arttribution是否被加入, 預設為true
- zoomControl: 地圖縮放面板是否被加入, 預設為true
Locate options
使用者目前位置相關設定
- setView: 自動將地圖設定到使用者位置。 true | false
- watch: 持續觀測使用者位置。 true | false
其他還有很多options,大家可以到官網查詢
- Animation Options:設定地圖動畫數值
- Interaction Options: 地圖互動相關數值
- Mouse wheel options: 滑鼠相關設定
Events 事件
我們也可以在地圖上監聽事件,常用的事件如下
state change events
當地圖資料更改時觸發
- resize: 當地圖大小變更時觸發
- moveend: 地圖移動完畢觸發
- zoomend: 地圖縮放完畢時觸發
Interaction events
常用的如 click、mousemove、keyup等等,和原生js的事件差不多。
Methods 方法
map可以觸發的方法,常用如下:
圖層相關方法
- addControl: 增加 control 到地圖
- addLayer: 增加指定 layer 到地圖
- eachLayer: 對每個圖層做loop,類似 js 的forEach
1 | map.eachLayer(function(layer){ |
修改地圖資料的方法
- setView(center[latlng], zoom): 設定地圖中心點([123.5, 23])和 縮放大小。
- setZoom(Number): 設定縮放大小
- panTo([latlng]): 將地圖移動到指定座標
- flyTo([latlng]): 以動畫的方式移動到指定座標
取得地圖資料方法
- getCenter: 取得地圖中心點座標
- getBounds: 取得地圖邊界座標
- getZooms: 取得地圖目前縮放大小