Перейти к содержанию

Leaflet

Материал из Мегавики — свободной энциклопедии
Leaflet
Логотип программы Leaflet
Скриншот программы Leaflet
Тип JavaScript-библиотека
Написана на JavaScript[5]
Операционная система кроссплатформенность
Дата выпуска 13 мая 2011[1] и 1 сентября 2010[2]
Последняя версия
Репозиторий github.com/Leaflet/Leafl…
Состояние активное
Сайт leafletjs.com (англ.)
Логотип Викисклада Медиафайлы на Викискладе

Leaflet — библиотека с открытым исходным кодом, написанная на JavaScript, предназначенная для отображения карт на веб-сайтах. Поддерживает большинство мобильных и стационарных платформ из числа тех, что поддерживают HTML5 и CSS3.

Наряду с OpenLayers и Google Maps API — одна из наиболее популярных картографических JavaScript-библиотек, использующаяся на таких крупных сайтах, как Flickr, Foursquare, Craigslist, Data.gov, IGN, проектах Викимедиа, OpenStreetMap, Meetup, WSJ, MapBox, CloudMade, CartoDB и других[источник не указан 3573 дня].

Автор библиотеки — киевлянин Владимир Агафонкин на момент выхода первой версии (2011[6]) был сотрудником CloudMade, c 2013 перешёл в MapBox[7].

Leaflet позволяет разработчику, не знакомому с ГИС, легко отображать растровые карты, состоящие из маленьких фрагментов — тайлов, с, возможно, дополнительными слоями, накладываемыми поверх основного. Слои могут быть интерактивными, например, отображать подсказку при клике по маркеру.

Использование[править]

Типичное использование Leaflet заключается в привязке карты к какому-либо элементу веб-страницы, например, к блоку <div>, после чего к карте добавляются слои и маркеры.

 // create a map in the "map" div, set the view to a given place and zoom
 var map = L.map('map').setView([55.432, 37.654], 13);
 
 // add an OpenStreetMap tile layer
 L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
     attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
 }).addTo(map);

Библиотека Leaflet доступна через переменную L.

Возможности[править]

Leaflet поддерживает слои Web Map Service (WMS), GeoJSON, векторные и тайловые слои. Многие другие типы слоёв поддерживаются дополнительными модулями.

Как и в других картографических веб-библиотеках, в Leaflet реализована следующая модель: отображается базовая карта с, возможно, растровыми и векторными слоями, накладываемыми поверх неё. Leaflet отлично поможет вам в создании карт любой сложности вместе с их данными. Благодаря понятному интерфейсу , работа в Leaflet будет вам ясна спустя пару часов использования и погружения в продукт.

Элементы[править]

Основные типы объектов Leaflet:[8]

  • Растровые типы (TileLayer и ImageOverlay)
  • Векторные типы (Path, Polygon и специфические типы, такие как Circle)
  • Групповые типы (LayerGroup, FeatureGroup и GeoJSON)
  • Управляющие элементы (Zoom, Layers и т. д.)

Также существуют вспомогательные классы для управления проекциями, трансформаций и взаимодействия с объектной моделью документа (DOM).

Поддержка форматов ГИС[править]

Несколько стандартных форматов ГИС поддерживается ядром Leaflet, остальные — модулями.

Стандарт Поддержка
GeoJSON Хорошая, ядро содержит функцию geoJson[9]
KML, CSV, WKT, TopoJSON, GPX Модуль Leaflet-Omnivore[10]
WMS Ядро поддерживает подтип TileLayer.WMS[11]
WFS Не поддерживается ядром, существует сторонний модуль.[12]
GML Не поддерживается.[13]

Поддерживаемые браузеры[править]

Leaflet 0.7 поддерживает Chrome, Firefox, Safari 5+, Opera 12+ и IE 7—11.[14]

Сравнение с другими библиотеками[править]

Leaflet обычно сравнивают с OpenLayers — обе являются открытым ПО, обе — клиентские библиотеки на JavaScript. Leaflet заметно компактнее, содержит около 7 тысяч строк против 230 тысяч у OpenLayers по состоянию на 2015.[15] Leaflet занимает меньше места, чем OpenLayers (около 123 кБ[16] против 423[17]).

Также её сравнивают с проприетарной закрытой Google Maps API (впервые вышла в 2005) и Bing Maps API — они обе используют значительную часть на стороне сервера для предоставления таких услуг, как геокодировние, прокладка маршрутов, поиск и интеграция с дополнительным ПО, таким как Google Earth[источник не указан 4083 дня]. Google Maps API дают скорость и простоту вместе с гибкостью, однако дают доступ только к сервисам Google Maps. Впрочем, DataLayer — часть Google’s API — позволяет использовать внешние данные[18].

История[править]

Leaflet появилась в 2010 как «Web Maps API» — библиотека на JavaScript для картографического провайдера CloudMade, где работал Владимир Агафонкин. В мае 2011 CloudMade объявил о выходе первого релиза Leaflet, написанного с нуля, но использующего фрагменты старого кода[19].

  • 0.1: 17 мая 2011
  • 0.2: 18 июня 2011
  • 0.3: 14 февраля 2012
  • 0.4: 30 июля 2012
  • 0.5: 17 января, 2013

В версии 0.5 появилась поддержка дисплеев с повышенной плотностью и различные улучшения пользовательского интерфейса[20].

  • 0.6: 26 июня 2013

В этой версии расширен ряд методов и событий API, улучшена юзабилити и добавлено сохранение GeoJSON. Она была завершена в ходе двухдневного код-спринта, поддержанного Mapbox.[21]

  • 0.7: 22 ноября 2013

Релиз был сконцентрирован на устранении неполадок. Было объявлено, что в ходе переработки будет пропадать обратная совместимость[22].

  • 1.0: 27 сентября 2016

По сравнению с версией 0.7.7 было сделано более 400 изменений.[23]

  • 1.1: 27 июня 2017
  • 1.2: 8 августа 2017
  • 1.3: 15 января 2018
  • 1.4: 30 декабря 2018
  • 1.5: 8 мая 2019
  • 1.6: 17 ноября 2019

См. также[править]

Примечания[править]

  1. ↑ Release v0.1 · Leaflet/Leaflet · GitHub
  2. ↑ first commit · Leaflet/Leaflet@eb5b7d7 · GitHub
  3. ↑ Release v1.9.3
  4. ↑ npmjs
  5. ↑ The leaflet Open Source Project on Open Hub: Languages Page — 2006.
  6. ↑ Lovelace, Robin. Testing web map APIs - Google vs OpenLayers vs Leaflet. Архивировано 10 августа 2014 года.
  7. ↑ Macwright, Tom. Leaflet Creator Vladimir Agafonkin Joins MapBox. Mapbox (6 августа 2014). Архивировано из оригинала 12 сентября 2015 года.
  8. ↑ Leaflet API. Архивировано 15 августа 2018 года.
  9. ↑ Using GeoJSON with Leaflet - Leaflet - a JavaScript library for interactive maps. Дата обращения: 28 августа 2015. Архивировано 1 сентября 2015 года.
  10. ↑ mapbox/leaflet-omnivore · GitHub. Дата обращения: 28 августа 2015. Архивировано 19 октября 2020 года.
  11. ↑ Leaflet documentation. Архивировано 15 августа 2018 года.
  12. ↑ Georepublic/leaflet-wfs · GitHub. Дата обращения: 28 августа 2015. Архивировано 30 сентября 2020 года.
  13. ↑ Support for GML · Issue #547 · Leaflet/Leaflet · GitHub. Дата обращения: 28 августа 2015. Архивировано 27 сентября 2016 года.
  14. ↑ Leaflet features. Архивировано из оригинала 9 сентября 2014 года.
  15. ↑ OpenHub.net comparison between OpenLayers and Leaflet. OpenHub.net. Дата обращения: 18 апреля 2015. Архивировано из оригинала 8 августа 2014 года.
  16. ↑ Leaflet frontpage. Leaflet - An Open-Source JavaScript Library for Mobile-Friendly Interactive Maps. — «33 KB gzipped — that's 123 KB minified and 218 KB in the source form, with 10 KB of CSS (2 KB gzipped) and 11 KB of images.» Дата обращения: 18 апреля 2015. Архивировано 10 января 2014 года.
  17. ↑ OpenLayers 3.4.0 compressed source code. OpenLayers.org. Дата обращения: 18 апреля 2015. Архивировано из оригинала 29 ноября 2016 года.
  18. ↑ Data Layer. Google Maps JavaScript API. Архивировано 28 января 2021 года.
  19. ↑ Announcing Leaflet: a Modern Open Source JavaScript Library for Interactive Maps. CloudMade (13 мая 2011). Дата обращения: 7 августа 2014. Архивировано из оригинала 11 августа 2014 года.
  20. ↑ Leaflet 0.5 released. Архивировано 9 сентября 2015 года.
  21. ↑ Leaflet 0.6 Released, Code Sprint in DC with MapBox. Архивировано 5 сентября 2015 года.
  22. ↑ Leaflet 0.7 Release, MapBox and Plans for Future. Архивировано 5 сентября 2015 года.
  23. ↑ Meet Leaflet 1.0. Архивировано 19 ноября 2016 года.

Ссылки[править]