Leaflet是一個用於移動端渲染交互式地圖開源JavaScript庫。其體積只有約38KB,比起一般的地圖API,如openlayers,小了太多太多,輕量簡潔,支持插件擴展,有一個友好、易於使用的API文檔和一個簡單的、可讀的源代碼。LeafLet js 結構層次如下:
創建一個簡單的地圖API 網頁:
<!DOCTYPE html>
<html>
<head>
<title>Quick Start - Leaflet</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="shortcut icon" type="image/x-icon" href="docs/images/favicon.ico" />
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/>
<script src="https://unpkg.com/[email protected]/dist/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin=""></script>
</head>
<body>
<div id="mapid" style="width: 600px; height: 400px;"></div>
<script>
var mymap = L.map('mapid').setView([22.81, 108.89], 6);
L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
maxZoom: 18,
attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' +
'<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
id: 'mapbox.streets'
}).addTo(mymap);
</script>
</body>
</html>
以上代碼運行如下:
其中head 部分爲引用leaflet javascript 庫體,後面script爲加載openstreetmap地圖。
可在LeafLet js 官網: https://leafletjs.com/download.html,下載最新的leaflet包
LeafLet js 官網demo: http://leafletjs.com/examples.html ,查看相關示例教程
LeafLet js 官網API:https://leafletjs.com/reference-1.5.0.html ,最新的api說明。
LeafLet js 基本功能:
- 地圖加載(底圖類型、切換):
- 地圖操作(縮放、平移、定位/書籤、動畫):
- 圖層管理(加載、移除、調整順序):
- 要素標繪(點/聚簇、線、面,符號化/靜態動態):
- 屬性標註(字段可選、樣式定製):
- 專題地圖(點、線、面,渲染):
- 查詢定位(屬性查詢、空間查詢/周邊搜索/緩衝區/面查點線面/點線查面、圖屬互查、綜合查詢):
- 信息窗口(入口、Popup、定製):
- 座標轉換(地理與投影、不同地理座標系):
- 空間運算(長度面積測量、點取座標、緩衝區、相交包含關係):
- 動態監控(固定點狀態切換、車輛監控)。