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文档和更多实用教程等待你去探索。
现在,就动手创建你自己的交互式地图吧!
热门推荐
使用U盘刷写BIOS教程(简明易懂的BIOS刷写指南,助您成功刷写BIOS)
王姓文化:从起源到迁徙,从家训到名人故事
肠粘连吃什么好
对话|电竞也需要长期主义:沉淀与青训是持续发展的核心
世界无烟日:保护青少年 免受烟草危害
韩币兑换人民币计算指南:三步轻松掌握兑换技巧
《恶魔城》被夺走的刻印全收集攻略
宜兴红茶的冲泡次数:从第一泡到最后一滴的品鉴艺术
养老金双轨制的原因是什么?这种原因对养老体系有何影响?
手把手教你制作美味糖醋腌萝卜(萝卜的营养价值和腌制技巧)
治疗胃寒的7种食物
最新指南发布!12项问答:搞定「百日咳」诊疗与预防!
成都重庆西安,谁是西部第一城?
紫微斗数疾厄宫太阳星:性格特点与命运分析
木耳的健康益处不容忽视
如何有效应对他人的负能量影响
NBA历史体重最惊人的10大球星
如何选到最适合的眼镜?
镜像生命:造物主游戏中的潘多拉魔盒
一道名字与风味 皆入骨的绍兴名菜
光芯片迎来“窗口期”:AI拉动光模块发展,国产化率亟待提高
微博被盗怎么办?手把手教你找回账号,保障个人信息安全!
三国杀界关兴张苞技能全解析:实战技巧与组合技深度应用指南
伦敦必游博物馆推荐
“上新”不断,“火力”不减——“网红”城市“五一”文旅市场观察
《马诗》李贺赏析
狗不能吃的药物有哪些(宠物的健康需警惕)
易派紫微斗数:12生肖与五行在命理学中的应用
《凶兆前传》:一部融合艺术与惊悚的宗教恐怖佳作
全球公认的10部宗教恐怖片,一部比一部吓人,你能通关几部?