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、定制):
- 座标转换(地理与投影、不同地理座标系):
- 空间运算(长度面积测量、点取座标、缓冲区、相交包含关系):
- 动态监控(固定点状态切换、车辆监控)。