leaflet学习路径

本文是一个学习leaflet的索引说明文档,因为leaflet的官方文档非常清晰详实,所以,只要知道大体的方向,就能很好的自学。

一、leaflet优势

前端地图框架不少,leaflet凭借简单、易用、上手快、拓展多、轻量级等优点,一直深受欢迎,由github上的点星量就可见一斑。

pic_b1e653a7.png

1.简单上手快

如果说,学习使用腾讯、百度、高德图商的前端js api的难度是1,那么学习使用leaflet的难度也是1。而且相对于封装性很强的图商js api,leaflet更灵活,更可配置,能加载更多的地图,设置更丰富的效果。

leaflet不像openlayer那样,过于严格遵守OGC WMS规范,对使用者的GIS背景知识要求过高。开发者即使对GIS知识所知甚少,也能用leaflet开发出漂亮的专题地图,我就见过连经纬度都搞不明白的开发者使用leaflet开发地图,效果做的还很漂亮。

如果不想跟GIS绑定太死,追求简单的开发体验和丰富的视觉效果,那么可以选择leaflet。

2. step-by-step教程丰富

打开leaflet的首页,https://leafletjs.com/index.html

映入眼帘的就是一个简单的地图加载demo。

pic_939c5523.png

进入示例页,https://leafletjs.com/examples.html。有各种各样的教程。

Every tutorial here comes with step-by-step code explanation and is easy enough even for beginner JavaScript developers.

每个教程都带有逐步的代码说明,即使对于初学JavaScript的开发人员来说也很容易。

pic_a48ebca0.png

点击Leaflet Quick Start Guide进去,https://leafletjs.com/examples/quick-start/

既可以参看step-by-step的引导,也可以点击See this example stand-alone,在新窗口中把Quick Start - Leaflet.html页面打开,并保存在本地。

pic_67869ce0.png

保存的Quick Start - Leaflet.html是一个静态html,可以直接在浏览器中打开,效果与网页版(https://leafletjs.com/examples/quick-start/example.html)一样。

用sublime打开Quick Start - Leaflet.html,即可查看前端代码,非常方便,不用安装各种框架引擎编译,对初学者来说,简直不要太友好。

如果觉得英文教程有点吃力,那么Chrome浏览器一键翻译值得拥有。

3.移动端友好

leaflet一大应用方向就是移动端开发,正如它的简介说明。

an open-source JavaScript library for mobile-friendly interactive maps

一个开放源代码的JavaScript库,用于对移动端友好的交互式地图。

leaflet可以很好的兼容IOS和Android系统,通过内置函数,可以获取设备坐标,并将地图缩放到当前位置。可以用leaflet开发出一个简单的H5页面,嵌入到APP中。

官网上的demo:https://leafletjs.com/examples/mobile/

4.良好的兼容性

因为leaflet使用人数多,所以很多热门的前端框架,都对它进行了集成。例如vue。

如何在vue中扩展leaflet,可参见:https://github.com/vue-leaflet/Vue2Leaflet

但被vue集成的leaflet,缺失了很多拓展性,也可以直接在vue框架中引入leaflet.js。

5.线上demo多

leaflet官网:https://leafletjs.com/examples.html

github上的专题:https://github.com/Leaflet/

谷歌、百度,都能搜到很多使用leaflet制作地图的例子。

绘制页面、热力图、轨迹图等等。

leaflet的地图绘制页面:https://github.com/Leaflet/Leaflet.draw,下载下来,打开html文件就可以直接使用,可以打开leaflet-draw-latest.html页面进行索引。

带吸附功能的绘制修改页面,https://github.com/makinacorpus/Leaflet.Snap

但说实话,用leaflet来编写几何图形绘制修改页面,的确施绘体验不是很好,比不上openlayer。

leaflet的强项还是在展示和交互上,而非在几何图形处理上。

leaflet聚类:https://github.com/Leaflet/Leaflet.markercluster

leaflet热力图:https://github.com/pa7/heatmap.js

leaflet轨迹图:https://github.com/ewoken/Leaflet.MovingMarker

6.扩展多,效果炫酷

leaflet有丰富的扩展,可以自行查询https://leafletjs.com/plugins.html

卷帘、热力、轨迹、过渡、镶嵌等,我们想要实现的地图效果,几乎都不需要自己写函数,通过引用leaflet的插件都能实现。这极大降低了难度,只要关注交互效果即可,不用过于关心实现原理,这对不了解地图原理的人来说是个福音。

leaflet也兼容arcgis、supermap等GIS软件平台,这对使用商业软件的人来说,也是个好消息,因为leaflet的易用性和可拓展性,是要强于arcgis和supermap的js api的。

除了专题地图外,leaflet也可以用于游戏地图的开发,它还有嵌入视频的功能。

pic_411bc304.pngpic_d2ca21d4.png

pic_90a32877.png

二、leaflet入门

照着官网的教程,就能完成leaflet入门。

可以使用leaflet创建手机地图、热力图、轨迹图、动态图等,leaflet在展示渲染上,有很好的的优势。

但是leaflet在几何对象的交互上,还是有点弱的,所以如果目的是提供绘制修改几何对象的页面,可以采用openlayer。

原文地址:https://www.cnblogs.com/hustshu/p/14628704.html