Leaflet带你玩转GIS数据展示
创作时间:
作者:
@小白创作中心
Leaflet带你玩转GIS数据展示
引用
CSDN
等
10
来源
1.
https://blog.csdn.net/zjjsd195/article/details/123753255
2.
https://blog.csdn.net/pyluyuan/article/details/136788025
3.
https://wenku.csdn.net/column/6agn5tduhc
4.
https://leafletjs.cn/examples.html
5.
https://juejin.cn/post/7254029763265232957
6.
https://leafletjs.cn/2013/06/28/leaflet-plugin-authoring-guide.html
7.
https://www.cnblogs.com/csincs/p/17534259.html
8.
https://leafletjs.cn/examples/quick-start/
9.
https://leafletjs.cn/2022/09/21/leaflet-1.9.0.html
10.
https://developer.aliyun.com/article/1001273
随着Web技术的发展,地理信息系统(GIS)已经成为现代应用开发的重要组成部分。Leaflet作为一款轻量级、易用的地图库,凭借其丰富的功能和插件生态系统,成为了开发者们的首选工具。本文将通过详细教程,帮助你快速掌握Leaflet的基础用法,开启地图开发之旅。
01
为什么选择Leaflet?
Leaflet是一个开源的JavaScript地图库,具有以下显著特点:
- 轻量级:仅42KB的体积,加载速度快
- 移动端友好:在手机和平板上也能流畅运行
- 功能丰富:支持标记、折线、弹出窗口等常用功能
- 插件丰富:拥有数十个高质量插件,可扩展性强
- 文档完善:提供详细的官方文档和教程
02
环境搭建
1. 引入Leaflet库
你可以通过CDN或npm来引入Leaflet。
CDN方式:
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.3/dist/leaflet.css"/>
<script src="https://unpkg.com/leaflet@1.9.3/dist/leaflet.js"></script>
npm方式:
npm install leaflet@1.9.3
在项目中引入:
import L from 'leaflet';
import 'leaflet/dist/leaflet.css';
2. 创建地图容器
在HTML中添加一个div元素作为地图容器:
<div id="map" style="height: 500px; width: 100%"></div>
注意:必须设置容器的高度,否则地图无法显示。
03
基本使用
1. 初始化地图
使用L.map()
方法初始化地图:
var map = L.map('map').setView([39.9042, 116.4074], 10);
这里设置地图中心点为北京的经纬度,并设置初始缩放级别为10。
2. 添加地图瓦片服务
使用L.tileLayer()
方法添加地图瓦片服务:
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
maxZoom: 19,
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
}).addTo(map);
这将添加OpenStreetMap的地图瓦片服务。
04
核心功能
1. 添加标记
使用L.marker()
方法添加标记:
var marker = L.marker([39.9042, 116.4074]).addTo(map);
marker.bindPopup("<b>你好,北京!</b>").openPopup();
2. 添加圆
使用L.circle()
方法添加圆:
var circle = L.circle([39.9042, 116.4074], {
color: 'red',
fillColor: '#f03',
fillOpacity: 0.5,
radius: 5000 // 半径单位是米
}).addTo(map);
3. 添加多边形
使用L.polygon()
方法添加多边形:
var polygon = L.polygon([
[39.9042, 116.4074],
[39.9042, 116.4174],
[39.9142, 116.4074]
]).addTo(map);
4. 处理地图事件
监听地图点击事件:
map.on('click', function(e) {
alert("你点击了地图坐标:" + e.latlng);
});
05
进阶功能
1. 使用GeoJSON数据
GeoJSON是一种用于编码各种地理数据结构的格式。Leaflet支持直接添加GeoJSON数据:
var geojsonFeature = {
"type": "Feature",
"properties": {
"name": "北京"
},
"geometry": {
"type": "Point",
"coordinates": [116.4074, 39.9042]
}
};
L.geoJSON(geojsonFeature).addTo(map);
2. 管理图层组
使用L.layerGroup()
管理多个图层:
var layerGroup = L.layerGroup([marker, circle, polygon]).addTo(map);
3. 自定义图标
可以自定义标记的图标:
var customIcon = L.icon({
iconUrl: 'my-icon.png',
iconSize: [38, 95],
iconAnchor: [22, 94],
popupAnchor: [-3, -76],
});
L.marker([39.9042, 116.4074], {icon: customIcon}).addTo(map);
06
总结
通过以上教程,你已经掌握了Leaflet的基本用法,包括环境搭建、核心功能和一些进阶技巧。Leaflet的强大之处在于其丰富的插件生态系统,你可以根据项目需求选择合适的插件来扩展功能。
想要深入了解Leaflet的更多功能?不妨访问Leaflet官方文档,那里有详尽的API文档和更多实用教程等待你去探索。
现在,就动手创建你自己的交互式地图吧!
热门推荐
电路的三态机制——以MUX为例
梦见与动物亲密接触
判断一个技术成熟与否的标准是什么
如何评估科技企业并分析其投资发展潜力?这些科技企业有哪些技术优势?
大学生睡眠问题调查:熬夜、失眠困扰,专家建议这样改善
公司欠银行钱重整怎么还款好
鄂伦春族秘境中的狩猎传统与文化传承
完全一样的食物,按这个顺序吃可以让血糖升高幅度减半
羊肚菌种植成本详解:一亩地投入与收益分析
全身上下,为什么「脸」最爱出油?
灵活就业人员医保新规:解读与影响
中亚蒲公英:平凡中的自然馈赠
如何知道自己体内是否有寄生虫
光明磊落指的是哪些生肖?生肖性格解析
必须氨基酸及其种类
股东信息透明是什么?如何实现?
乙醇汽油与纯汽油有何区别?
锂离子电池零度以下不能充电,电动自行车低温充电会带来安全风险
上海东站的相关铁路进展如何?5条线路情况,一文给你答案!
权威媒体用公式算历史地位:詹姆斯历史第一人!数值独一档!
时间管理:如何合理安排学习与休息时间?
孟郊《游子吟》怎么读? 妈妈为游子缝衣背后的深情!
如何提高超声引导锁骨下静脉穿刺置管的成功率?
鲍鱼汤的功效与作用、禁忌和食用方法
北京呼吸科排名前十的医院
兰州拉面:一碗面条中的文化与匠心
胸针穿搭新法则,学她们让你时尚不再土!
华东政法大学历史建筑群:拥有超140年历史,近270°河景的建筑明珠
让我们一起探寻亿万年前神秘海洋古生物——菊石
生活改善專家:如何改善手指僵硬?