Leaflet

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Leaflet
Logo-leafletjs.png
Leaflet beige screenshot.png
Тип

JavaScript-библиотека

Автор

Владимир Агафонкин

Написана на

JavaScript

Первый выпуск

май 13, 2011 (2011-05-13)

Аппаратная платформа

См. Поддерживаемые браузеры

Последняя версия

0.7.3 (23.05.2014)

Состояние

активное

Лицензия

BSD-2-Clause[1]

Сайт

leafletjs.com

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

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

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

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: '&amp;copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
 }).addTo(map);

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

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

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

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

Элементы[править | править вики-текст]

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

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

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

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

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

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

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

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

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

Leaflet обычно сравнивают с OpenLayers — обе являются открытым ПО, обе — клиентские библиотека на JavaScript. Leaflet заметно компактнее, содержит около 7 тысяч строк простив 230 тысяч у OpenLayers по состоянию на 2015.[11] Leaflet занимает меньше месте, чем OpenLayers (около 123 кБ[12] против 423[13]), не в последнюю очередь благодаря модульной структуре. Код новее и использует свежие возможности JavaScript, HTML5 и CSS3. Кроме того, Leaflet поддерживает то, чего нет в OpenLayers, например Web Feature Service (WFS) и использование проекций, отличных от Google Web Mercator (EPSG 3785).[источник не указан 131 день]

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

История[править | править вики-текст]

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

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

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

  • 0.6: 26 июня 2013

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

  • 0.7: 22 ноября 2013

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

Примечания[править | править вики-текст]

  1. License - Leaflet. Leaflet. Проверено 12 февраля 2015.
  2. Lovelace, Robin Testing web map APIs - Google vs OpenLayers vs Leaflet.
  3. Macwright, Tom Leaflet Creator Vladimir Agafonkin Joins MapBox. Mapbox (6 августа 2014).
  4. Leaflet API.
  5. Using GeoJSON with Leaflet - Leaflet - a JavaScript library for interactive maps
  6. mapbox/leaflet-omnivore · GitHub
  7. Leaflet documentation.
  8. Georepublic/leaflet-wfs · GitHub
  9. Support for GML · Issue #547 · Leaflet/Leaflet · GitHub
  10. Leaflet features.
  11. OpenHub.net comparison between OpenLayers and Leaflet. Проверено 18 апреля 2015.
  12. Leaflet frontpage. — «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.
  13. OpenLayers 3.4.0 compressed source code. OpenLayers.org. Проверено 18 апреля 2015.
  14. Data Layer. Google Maps JavaScript API.
  15. Announcing Leaflet: a Modern Open Source JavaScript Library for Interactive Maps (13 мая 2011). Проверено 7 августа 2014.
  16. Leaflet 0.5 released.
  17. Leaflet 0.6 Released, Code Sprint in DC with MapBox.
  18. Leaflet 0.7 Release, MapBox and Plans for Future.

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

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