Leaflet

Leaflet是一个开源JavaScript,用于构建Web地图应用。首次发布于2011年,[2]它支持大多数移动和桌面平台,支持HTML5CSS3。其用户包括FourSquare、PinterestFlickr

Leaflet
原作者Vladimir Agafonkin
初始版本2011年5月13日 (2011-05-13)
穩定版本
1.7.1
(2020年9月4日 (2020-09-04)
源代码库
编程语言JavaScript
系統平台参见浏览器支持
类型JavaScript函式庫
许可协议BSD-2-Clause[1]
网站leafletjs.com

Leaflet允许没有GIS背景的开发人员非常容易地显示托管在公共服务器上的瓦片Web地图,并且可以叠加图层。它可以从GeoJSON文件中加载地理要素数据,设置样式,并创建交互式图层,如点击时会弹出窗口的标记。

Vladimir Agafonkin开发了Leaflet,他在2013年加入了Mapbox[3]

使用

使用Leaflet的基本例子

Leaflet的典型用法是将Leaflet的“map”元素绑定到HTML元素(例如div)上。然后将图层和标记添加到map元素中。

 // create a map in the "map" div, set the view to a given place and zoom
 var map = L.map('map').setView([51.505, -0.09], 13);
 
 // add an OpenStreetMap tile layer
 // Tile Usage Policy applies: https://operations.osmfoundation.org/policies/tiles/
 L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
     attribution: '&copy; <a href="http://openstreetmap.org/copyright">OpenStreetMap</a> contributors'
 }).addTo(map);

Leaflet支持非球面墨卡托投影显示地图。[4]Leaflet库本身可以通过变量L访问。

功能

Leaflet原生支持Web地图服务(WMS)层、GeoJSON层、矢量层和瓦片层。通过插件支持许多其他类型的图层。

与其他Web地图库一样,由Leaflet实现的基本显示模型是一个基本地图,加上零个或多个半透明覆盖,上面显示零个或多个矢量对象。

元素

主要的Leaflet对象类型有:[5]

  • 栅格类型(TileLayer与ImageOverlay)
  • 矢量类型(Path、Polygon,以及特定类型,如Circle)
  • 群组类型(LayerGroup、FeatureGroup与GeoJSON)
  • 控件(Zoom、Layers等)

还有各种工具类,例如用于管理投影、变换和与DOM交互的接口。

GIS格式支持情况

Leaflet的核心支持少数GIS标准格式,其他插件来支持。

标准支持情况
GeoJSON良好,通过geoJson函数支持,核心功能[6]
KML、CSV、WKT、TopoJSON、GPX用Leaflet-Omnivore插件支持[7]
WMS通过TileLayer.WMS[8]子类型支持,核心功能
WFS不支持,不过有第三方插件。[9]
GML不支持。[10]

浏览器支持

Leaflet 0.7支持Chrome、Firefox、Safari 5+、Opera 12+和IE 7-11。[11]

与其他库的比较

Leaflet与OpenLayers之间可以进行比较,因为两者都是开源的,而且客户端都只有JavaScript库。与OpenLayers的230,000行相比,整个库要小得多,大约有7,000行代码(截至2015年)。[12]与OpenLayers相比,它的代码占用空间更小(大约是123KB[13]相比于423KB[14]),部分原因是它使用模块化结构。Leaflet的代码库更新,用上了JavaScript的新特性,以及HTML5和CSS3。还有,Leaflet缺乏一些OpenLayers原生支持的特性,比如Web要素服务(WFS),[15]以及EPSG:3857/4326/3395以外的各种投影方式。[16]

它还可以与私有的、封闭源代码的Google地图API(2005年推出)和Bing地图API相比较,后两者都包含了一个重要的服务器端组件,提供地址编码、路径规划、搜索等服务,并与Google地球等功能集成。谷歌地图API提供了速度和简单性,但不是灵活的,只能用于访问谷歌地图服务。不过,Google API的新DataLayer 部分确实允许显示外部数据源。[17]

外部链接

参考文献

  1. . Leaflet. [2018-11-03]. (原始内容存档于2021-01-06).
  2. Lovelace, Robin. . [2018-11-03]. (原始内容存档于2017-11-03).
  3. MacWright, Tom. . 2014-08-06 [2018-11-03]. (原始内容存档于2015-09-12).
  4. . 2020-10-08 [2020-09-06]. (原始内容存档于2020-11-25).
  5. . [2018-11-03]. (原始内容存档于2021-01-05).
  6. . [2018-11-03]. (原始内容存档于2020-11-11).
  7. . [2020-12-13]. (原始内容存档于2020-10-19).
  8. . [2018-11-03]. (原始内容存档于2021-01-05).
  9. . [2020-12-13]. (原始内容存档于2020-09-30).
  10. . 2012-06-23 [2018-11-03]. (原始内容存档于2016-09-27).
  11. . [2018-11-03]. (原始内容存档于2021-02-07).
  12. . OpenHub.net. [2018-11-03]. (原始内容存档于2014-08-08).
  13. . Leaflet - An Open-Source JavaScript Library for Mobile-Friendly Interactive Maps. [2018-11-03]. (原始内容存档于2021-02-07).
  14. . OpenLayers.org. [2018-11-03]. (原始内容存档于2016-11-29).
  15. Various plugins providing WFS-support are listed on https://leafletjs.com/plugins.html 页面存档备份,存于
  16. . [2018-11-03]. (原始内容存档于2021-01-05).
  17. . Google Maps Platform. Google. [2018-11-03]. (原始内容存档于2021-01-28).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.