目录
网络加载JS和CSS
先要加载css,然后在加载js
- <link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css"
- integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ=="
- crossorigin=""/>
再加载js
- <!-- Make sure you put this AFTER Leaflet's CSS -->
- <script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js"
- integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og=="
- crossorigin=""></script>
初始化地图
这里有这几个逻辑:
1. 初始化map以及设置其view【view的作用是选择初始化坐标点和其层级】;
var mymap = L.map('mapid').setView([51.505, -0.09], 13);
2. setview的返回值是map;
3. 为map添加一个地板,这个地板使用了URL template;
- L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}', {
- attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sahttps://cdn.jxasp.com:9143/image/2.0/">CC-BY-SA</a>, Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
- maxZoom: 18,
- id: 'mapbox.streets',
- accessToken: 'your.mapbox.access.token'
- }).addTo(mymap);
在地图上做标记
增加一个mark
- L.marker([51.5, -0.09]).addTo(mymap)
- .bindPopup("<b>Hello world!</b><br />I am a popup.").openPopup();
画一个圆
- L.circle([51.508, -0.11], 500, {
- color: 'red',
- fillColor: '#f03',
- fillOpacity: 0.5
- }).addTo(mymap).bindPopup("I am a circle.");
增加一个多边形
- L.polygon([
- [51.509, -0.08],
- [51.503, -0.06],
- [51.51, -0.047]
- ]).addTo(mymap).bindPopup("I am a polygon.");
在地图上点击事件获得坐标
点击地图,弹出窗口显示当前坐标
- var popup = L.popup();
-
- function onMapClick(e) {
- popup
- .setLatLng(e.latlng)
- .setContent("You clicked the map at " + e.latlng.toString())
- .openOn(mymap);
- }
-
- mymap.on('click', onMapClick);
个人对这篇文档的体会
最近要搞GIS方面的东西,用了geoserver搭建本地GIS服务器,用echarts画小东西,在搜索资料中,发现了Leaflet,这个js地图框架,并且很多echarts地图都使用了他,本来是想百度下解决算了,但百度的东西,没有系统的教程,都是个人的笔记,在此不得不啃官方的资料,不过还好!可以接受。
完整代码!
- <!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/leaflet@1.5.1/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/>
- <script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin=""></script>
-
-
-
- </head>
- <body>
-
-
-
- <div id="mapid" style="width: 1024px; height: 768px;"></div>
- <script>
-
- var mymap = L.map('mapid').setView([51.505, -0.09], 13);
-
- 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-sahttps://cdn.jxasp.com:9143/image/2.0/">CC-BY-SA</a>, ' +
- 'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
- id: 'mapbox.streets'
- }).addTo(mymap);
-
- L.marker([51.5, -0.09]).addTo(mymap)
- .bindPopup("<b>Hello world!</b><br />I am a popup.").openPopup();
-
- L.circle([51.508, -0.11], 500, {
- color: 'red',
- fillColor: '#f03',
- fillOpacity: 0.5
- }).addTo(mymap).bindPopup("I am a circle.");
-
- L.polygon([
- [51.509, -0.08],
- [51.503, -0.06],
- [51.51, -0.047]
- ]).addTo(mymap).bindPopup("I am a polygon.");
-
-
- var popup = L.popup();
-
- function onMapClick(e) {
- popup
- .setLatLng(e.latlng)
- .setContent("You clicked the map at " + e.latlng.toString())
- .openOn(mymap);
- }
-
- mymap.on('click', onMapClick);
-
- </script>
-
-
-
- </body>
- </html>