Leaflet - это библиотека JavaScript с открытым исходным кодом, используемая для создания картографических веб- приложений . Впервые выпущенный в 2011 году [2], он поддерживает большинство мобильных и настольных платформ, поддерживая HTML5 и CSS3 . Среди его пользователей FourSquare , Pinterest и Flickr .
Автор (ы) оригинала | Владимир Агафонкин |
---|---|
Первый выпуск | 13 мая 2011 г. |
Стабильный выпуск | 1.7.1 / 4 сентября 2020 г. |
Репозиторий | |
Написано в | JavaScript |
Платформа | См. Поддержку браузера |
Тип | Библиотека JavaScript |
Лицензия | BSD-2-Clause [1] |
Веб-сайт | leafletjs |
Leaflet позволяет разработчикам без опыта работы с ГИС очень легко отображать мозаичные веб-карты, размещенные на общедоступном сервере, с дополнительными мозаичными наложениями. Он может загружать данные функций из файлов GeoJSON , стилизовать их и создавать интерактивные слои, такие как маркеры со всплывающими окнами при нажатии.
Он разработан Владимиром Агафонкиным, который присоединился к Mapbox в 2013 году. [3]
Использовать
Типичное использование Leaflet включает привязку элемента «map» Leaflet к элементу HTML, например, div . Затем к элементу карты добавляются слои и маркеры.
// создать карту в «карте» DIV, установить вид на данное место и увеличить уаг карту = L . карта ( 'карта' ). setView ([ 51,505 , - 0,09 ], 13 ); // добавить OpenStreetMap плитки слой политики // Плитка Использование применяется: https://operations.osmfoundation.org/policies/tiles/ L . tileLayer ( 'http: // {s} .tile.openstreetmap.org / {z} / {x} / {y} .png' , { attribution : '& amp; copy; OpenStreetMap участники ' }). addTo ( карта );
Уникальной особенностью буклета является отображение карт в несферической проекции Меркатора. [4] Сама библиотека Leaflet доступна через переменную L
.
Функции
Leaflet изначально поддерживает слои Web Map Service (WMS), слои GeoJSON , векторные слои и слои листов. Многие другие типы слоев поддерживаются через плагины .
Как и другие библиотеки веб-карт, базовая модель отображения, реализованная Leaflet, представляет собой одну базовую карту плюс ноль или более полупрозрачных наложений с нулевым или более отображаемыми сверху векторными объектами.
Элементы
Основные типы объектов Leaflet: [5]
- Типы растра (TileLayer и ImageOverlay)
- Векторные типы (путь, многоугольник и определенные типы, такие как круг)
- Сгруппированные типы (LayerGroup, FeatureGroup и GeoJSON)
- Элементы управления (масштабирование, слои и т. Д.)
Существует также множество служебных классов, таких как интерфейсы для управления проекциями, преобразованиями и взаимодействия с DOM .
Поддержка форматов ГИС
Leaflet имеет базовую поддержку нескольких стандартных форматов ГИС, а другие поддерживаются в надстройках.
Стандарт | Служба поддержки |
---|---|
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 с открытым исходным кодом и только на стороне клиента. Библиотека в целом намного меньше, около 7000 строк кода по сравнению с 230000 OpenLayers (по состоянию на 2015 год). [12] Он имеет меньший объем кода, чем OpenLayers (около 123 КБ [13] против 423 КБ [14] ), отчасти из-за его модульной структуры. База кода новее и использует новейшие функции JavaScript, а также HTML5 и CSS3. Однако в Leaflet отсутствуют функции, поддерживаемые OpenLayers, такие как Web Feature Service (WFS) [15] и встроенная поддержка проекций, отличных от Google Web Mercator (EPSG 3857). [16]
Он также сопоставим с проприетарным API Google Maps с закрытым исходным кодом (дебютирует в 2005 году) и Bing Maps API , оба из которых включают значительный серверный компонент для предоставления таких услуг, как геокодирование , маршрутизация , поиск и интеграция с такими функциями, как Google. Земля . [ необходима цитата ] API Карт Google обеспечивает скорость и простоту, но не является гибким и может использоваться только для доступа к службам Карт Google. Однако новая часть DataLayer API Google позволяет отображать внешние источники данных. [17]
История
Leaflet начал свою жизнь в 2010 году как «API веб-карт», библиотека JavaScript для картографического провайдера CloudMade, где в то время работал Агафонкин. В мае 2011 года CloudMade анонсировала первую версию Leaflet, созданную с нуля, но с использованием частей старого кода API. [18]
- 0.1: 17 мая 2011 г.
- 0.2: 18 июня 2011 г.
- 0.3: 14 февраля 2012 г.
- 0.4: 30 июля 2012 г.
- 0.5: 17 января 2013 г.
- В этом выпуске представлена поддержка Retina и множество улучшений удобства использования и взаимодействия с пользователем. [19]
- 0.6: 26 июня 2013 г.
- В этом выпуске расширен диапазон методов и событий API, улучшено удобство использования и добавлено сохранение GeoJSON. Это было завершено в двухдневном кодовом спринте при поддержке Mapbox. [20]
- 0.7: 22 ноября 2013 г.
- В этом выпуске основное внимание уделялось исправлению ошибок, и вскоре было объявлено о рефакторинге и возможной обратной несовместимости. [21]
- 1.0: 27 сентября 2016 г.
- Этот выпуск содержит более 400 изменений по сравнению с v0.7.7: [22]
- Улучшения производительности во всех аспектах библиотеки и, в частности, векторных слоев.
- Анимация пролета (масштабирование и панорамирование по кривой).
- Поддержка уровня дробного масштабирования.
- Улучшенный алгоритм загрузки плитки с меньшим мерцанием.
- Управление настраиваемыми панелями (включая несколько панелей векторных слоев и чередование векторов и слоев листов).
- Лучшая поддержка нестандартных проекций.
- Больше специальных возможностей.
- Улучшенная документация.
- Улучшения стабильности.
- Этот выпуск содержит более 400 изменений по сравнению с v0.7.7: [22]
- 1.1: 27 июня 2017 г.
- В этом выпуске добавлены наложения видео и осуществляется переход на модули ECMAScript 6.
- 1.2: 25 октября 2017 г.
- 1.3: 15 января 2018 г.
- 1.3.2: 17 июля 2018 г.
- 1.3.3: 18 июля 2018 г.
- 1.3.4: 21 августа 2018 г.
- 1.4.0: 30 декабря 2018 г.
- 1.5.0 и 1.5.1: 8 мая 2019 г.
- 1.6.0: 17 ноября 2019 г.
- 1.7.1: 4 сентября 2020 г.
Внешние ссылки
- openstreetmap: буклет
- Буклет Официальный сайт
- Учебные пособия в виде листовок
Рекомендации
- ^ "Лицензия - Брошюра" . Листовка . Проверено 3 ноября 2018 .
- ^ Лавлейс, Робин. «Тестирование API веб-карт - Google против OpenLayers против Leaflet» . Архивировано из оригинала на 2017-11-03 . Проверено 3 ноября 2018 .
- ^ Макрайт, Том (2014-08-06). «Создатель листовок Владимир Агафонкин присоединяется к MapBox» . Проверено 3 ноября 2018 .
- ^ «Лучшие инструменты визуализации данных от Натали Отаир» . 2020-10-08 . Проверено 6 сентября 2020 .
- ^ «Справочник по API листовок» . Проверено 3 ноября 2018 .
- ^ «Использование GeoJSON с Leaflet» . Проверено 3 ноября 2018 .
- ^ https://github.com/mapbox/leaflet-omnivore
- ^ "TileLayer.WMS" . Проверено 3 ноября 2018 .
- ^ https://github.com/Georepublic/leaflet-wfs
- ^ «Поддержка GML» . 2012-06-23 . Проверено 3 ноября 2018 .
- ^ «Особенности» . Проверено 3 ноября 2018 .
- ^ «Сравнение OpenHub.net между OpenLayers и Leaflet» . OpenHub.net . Архивировано из оригинала на 2014-08-08 . Проверено 3 ноября 2018 .
- ^ "Заглавная страница листовки" . Leaflet - Библиотека JavaScript с открытым исходным кодом для мобильных интерактивных карт . Проверено 3 ноября 2018 .
- ^ «Сжатый исходный код OpenLayers 3.4.0» . OpenLayers.org. Архивировано из оригинала на 2016-11-29 . Проверено 3 ноября 2018 .
- ^ Различные плагины, обеспечивающие поддержку WFS, перечислены на https://leafletjs.com/plugins.html
- ^ «Проекция» . Проверено 3 ноября 2018 .
- ^ «Уровень данных» . Платформа Google Maps . Google . Проверено 3 ноября 2018 .
- ^ «Анонсирующий буклет: современная библиотека JavaScript с открытым исходным кодом для интерактивных карт» . CloudMade . 2011-05-13. Архивировано из оригинала на 2014-08-11 . Проверено 3 ноября 2018 .
- ^ Агафонкин, Владимир (17.01.2013). «Листовка 0.5 выпущена» . Проверено 3 ноября 2018 .
- ^ Агафонкин, Владимир (26.06.2013). «Leaflet 0.6 выпущен, Code Sprint в DC с MapBox» . Проверено 3 ноября 2018 .
- ^ Агафонкин, Владимир (18.11.2013). «Leaflet 0.7 Release, MapBox и планы на будущее» . Проверено 3 ноября 2018 .
- ^ Агафонкин, Владимир (27.09.2016). «Знакомьтесь, Leaflet 1.0» . Проверено 3 ноября 2018 .