1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lianggit-Leaflet

Клонировать/Скачать
CHANGELOG.md 370 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 04.06.2025 22:28 e9479ee

Leaflet Changelog

(все изменения без упоминания автора выполнены @mourner)

1.9.3 (2022-11-18)

🙌 Доступность

  • Расширение панели управления слоями при нажатии клавиши Enter (#8556 от @larsgw)
  • Выравнивание прозрачности управления масштабом с атрибутивным управлением (#8547 от @Malvoz)
  • Разрешение переполнения текста управления масштабом контейнером (#8548 от @Malvoz)### 🐞 Исправления ошибок
  • Удаление внутреннего использования глобальной переменной L (#8536 от @mourner)
  • Исправление временного дрожания при использовании setMaxBounds(map.getBounds()) (#8534 от @rjackson)
  • Убедитесь, что latLngsToCoords() не возвращает ссылки, переданные ему (#7344 от @marlo22)
  • Убедитесь, что поведение worldCopyJump() последовательно при использовании клавиатуры (#8562 от @Falke-Design)
  • Убедитесь, что используется правильный целевой объект для события popupopen (#8571 от @Belair34)
  • Предотвращение рекурсии при панорамировании Popup (#8520 от @rjackson)
  • Поддержка CSS свойства position: sticky для контейнера карты (#8550 от @tmiaa)## 1.9.2 (2022-10-04)

🐞 Исправления ошибок

  • ⚠️ Удаление ESM точки входа из пакета из-за множества совместимости с плагинами (используйте leaflet/dist/leaflet-src.esm.js явно вместо этого, чтобы воспользоваться преимуществами; ESM по умолчанию будет доступен в v2) (#8493 от @jonkoops)
  • Исправление ошибки, при которой подсказки могли вызывать ошибку с рендерером canvas (#8498 от @Falke-Design)
  • Исправление ошибки с неправильным расположением всплывающей подсказки маркера, когда несколько маркеров зарегистрированы для одной и той же подсказки (#8523 от @raychanks).### 🧪 Тесты
  • Исправление набора юнит-тестов, который внезапно останавливается на Mac (#8478)

📝 Документация

  • Исправление параметров equals в документации для Bounds (#8500 от @Falke-Design)

1.9.1 (2022-09-23)

  • Исправление Events listens, которое не распространяется на родительские объекты, в частности исправление совместимости с плагином Leaflet.markercluster (#8211 от @Falke-Design)

1.9.0 (2022-09-21)

⚠️ Критические изменения

  • Обновление color-adjust до print-color-adjust (#8211 от @Malvoz)### ❇️ Изменения API
  • Добавление опций content и latLng к конструкторам Popup / Tooltip (#7783 от @Falke-Design)
  • Расширение Bounds для использования тех же функций, что и LatLngBounds (#7882 от @Falke-Design)### ✨ Улучшения
  • Expose ESM entrypoint с Leaflet global (#8329 от @jonkoops)
  • Обновление вычисления getCenter() и перемещение его в PolyUtil / LineUtil (#7603 от @Falke-Design)
  • Удаление стилей границ в выпадающих всплывающих окнах (#8260 от @Malvoz)
  • Исправление предупреждения "listener not found" при установке maxBounds (#8168)
  • Удаление предупреждения "listener not found" (#8234 от @Falke-Design)
  • Расширение Events.listens для поиска конкретной функции (#8161 от @Falke-Design)
  • Добавление опции noMoveStart к panTo (#6685 от @Chivano)
  • Добавление обработки FeatureCollection к geometryToLayer (#8163 от @Falke-Design)

🙌 Доступность

  • Улучшение доступности Tooltip (фокус и голосовое управление) (#8247 от @alekzvik)
  • Исправление ссылок в руководстве по доступности (#8198 от @Malvoz)
  • Удаление избыточного role="presentation" из изображений плит (#8172 от @Malvoz)### 🐞 Исправления ошибок
  • Исправление некорректного GeoJSON при неравновесных массивах (#7637 от @steff1986)
  • Исправление двукратного масштабирования при использовании колеса мыши (#8298 от @Falke-Design)
  • Исправление неправильно назначенного параметра при вызове map._move через requestAnimFrame (#8328 от @AMDvsTMD)
  • Исправление _isClickDisabled для предотвращения ошибки, если родительский элемент удаляется из DOM (#8288 от @Falke-Design)
  • Исправление DomEvent.DoubleTap для игнорирования кликов на <label> с атрибутом for (#8227 от @IvanSanchez)
  • Исправление вызова once() дважды, если одно и то же событие вызывается внутри once (#8190 от @Falke-Design)
  • Исправление возврата изменяемого объекта при вызове map.getCenter() (#8167)
  • Исправление регрессии, связанной с кнопкой закрытия всплывающего окна, изменяющей URL (#8160 от @IvanSanchez)
  • Исправление min/maxZoom при использовании вместе с detectRetina (#7328 от @bozdoz)

📝 Документация

  • Используйте предпочитаемый URL openstreetmap.org (#8418 от @Firefishy) * Используйте LocalStorage для сессий диалогов (#8382 от @ChristopherWirtOfficial)
  • Обновите ссылки на заголовки и в свернутых аккордеонах (#7780 от @Falke-Design)
  • Исправьте опечатку в reference-1.6.0.html (#8330 от @eltociear)
  • Добавьте предкоммитное форматирование в CONTRIBUTING.md (#8299 от @Falke-Design)
  • Убедитесь, что нет границ вокруг диалогового iframe (#8296 от @Malvoz)
  • Замените Mapbox на OpenStreetMap в учебных примерах (#7818 от @Falke-Design)
  • Удалите DOCS-TODO.md (#8259 от @Malvoz)
  • Лучший пример PosAnimation (#7386 от @stell)
  • Исправьте уровень заголовка в примере GeoJSON (#8230 от @Malvoz)
  • Обновите учебник по слоям (ImageOverlay, VideoOverlay, SVGOverlay) (#8090 от @KonstantinBiryukov)
  • Измените атрибут anchor на data-anchor (#8174 от @KnightJam1)
  • Исправьте плохое форматирование markdown, вызывающее проблемы с ссылками (#8156 от @freyfogle)
  • Несколько улучшений SEO сайта (#8229 от @Malvoz) * Исправлено смещение атрибутивного флага на 1px на некоторых сайтах (#8170)
  • Атрибутивный флаг теперь изменяет размер при изменении размера шрифта (#8183 от @sumitsaurabh927)
  • Добавлен диалог на сайт (#8177(см. #8177 от @Falke-Design и #8193, #8194 от @Malvoz)### 🔧 Поток работы
  • Улучшена безопасность GitHub Workflows (#8419 от @sashashura)
  • Обновлены зависимости разработки
  • Заменен устаревший eslint-plugin-script-tags (#8331 от @jonkoops)
  • Использование диапазонов основных версий для GitHub Actions (#8286 от @jonkoops)
  • Настроены YAML формы для задач (#8246 от @Malvoz)
  • Добавлен FUNDING.yml
  • Добавлен предкоммитный хук для исправления проблем линтера (#8212 от @jonkoops)
  • Удалены специфические метки Dependabot (#8199 от @jonkoops)
  • Использование более коротких имен bundlemon (#8195)
  • Убедиться, что хэши целостности генерируются для версии сборки### 🧪 Тестирование
  • Добавлены тестовые случаи для метода map.latLngToLayerPoint (#8407 от @kreloaded)
  • Добавлен тест для метода map.panTo (#8390 от @anurag-dhamala)
  • Добавлен тест для методов map.containerPointToLatLng и map.latLngToContainerPoint (#8384 от @abhi3315)
  • Добавлен тест для метода Layer._addZoomLimit (#8037 от @zishiwu123)
  • Добавлены тесты для класса Map (#8206 от @stephenspol)
  • Добавлен тест для метода CircleMarker._containsPoint (#8340 от @gernhard1337)
  • Добавлены пропущенные тесты обработчиков событий (#8182 от @Falke-Design)
  • Обеспечение покрытия класса Rectangle тестами (#8144 от @stephenspol)

1.8.0 (2022-04-18)### ⚠️ Критические изменения

  • Улучшена надежность имитации события contextmenu на мобильном Safari за счет введения нового обработчика TapHold, заменившего устаревший Tap (#7026 от @johnd0e)
    • Переработана структура API для DivOverlay, Popup и Tooltip (#7540 от @johnd0e)
      • Перемещены опции, связанные с Popup, из DivOverlay в Popup (#7778 от @Falke-Design)
      • Изменен класс Tooltip с leaflet-clickable на leaflet-interactive (#7719 от @Falke-Design)
      • Метод Map.closeTooltip теперь требует слоя в качестве аргумента (#7533 от @johnd0e)
    • Улучшена обработка ошибок и аргументов для слушателей событий (#7518 от @johnd0e)
    • Улучшена надежность имитации событий касания на устройствах без сенсорного экрана (DomEvent.Pointer) (#7059, #7084, #7415 от @johnd0e)
    • Улучшена надежность имитации события dblclick на устройствах с сенсорным экраном (DomEvent.DoubleTap) (#7027 от @johnd0e)
    • Улучшена надежность метода disableClickPropagation (#7439 от @johnd0e)
    • Улучшены методы Map.hasLayer() и LayerGroup.hasLayer() для обязательного указания слоя в качестве аргумента (#6999 от @johnd0e)
    • Исправлен метод Class.include для предотвращения перезаписи options (#7756 от @johnd0e)
    • Исправлен метод Class.extend для предотвращения модификации исходного объекта свойств (#6766 от @johnd0e)
    • Улучшена детекция устройств с сенсорным экраном в методе Browser.touch (#7029 от @johnd0e)
    • Устранены устаревшие хаки для Android (#7022 от @johnd0e)
    • Разрешает шрифтам уважать настройки браузера пользователя, делая размер шрифта относительным к контейнеру карты. (Вы можете изменить размер шрифта на leaflet-container, чтобы скорректировать его, если это необходимо.) (#7800 от @Chandu-4444)### ❇️ Изменения в API* Добавлено взаимодействие для DivOverlay / Tooltip (#7531, #7532 от @johnd0e)
  • Добавлены функции openOn, close, toggle для DivOverlay (#6639 от @johnd0e)
  • Введен метод DomEvent.off(el) для удаления всех слушателей событий (#7125 от @johnd0e)
  • Добавлена возможность предотвращения ошибок округления, передав false в Util.formatNum / toGeoJSON (#7100 от @johnd0e)
  • Добавлено свойство autoPanOnFocus для Marker (#8042 от @IvanSanchez)
  • Добавлено свойство referrerPolicy для TileLayer (#7945 от @natevw)
  • Добавлено свойство playsInline для VideoOverlay (#7928 от @Falke-Design)
  • Добавлен метод getCenter для ImageOverlay (#7848 от @Falke-Design)
  • Выпуск события tileabort при отмене загрузки TileLayer (#6786 от @dstndstn)
  • Добавлено свойство crossOrigin для Icon (#7298 от @syedmuhammadabid)### ✨ Улучшения
  • Улучшение использования памяти за счет удаления CSS-свойства will-change для изображений плит (#7872 от @janjaap)
  • Улучшение надежности обнаружения путей иконок с помощью алгоритмов (#7092 от @johnd0e)
  • Улучшение производительности добавления источников плит за счет избегания избыточных обновлений в GridLayer.onAdd (#7570 от @johnd0e)
  • Улучшение обработки краевых случаев в panInside (#7469 от @daverayment)
  • Минификация SVG-иконок маркеров (#7600 от @rala72)
  • Разрешение ключей шаблонов с пробелами в URL TileLayer (#7216 от @lubojr)
  • Улучшение поведения Tooltip, связанного с ImageOverlay (#7306 от @IvanSanchez)
  • Удаление зазора между вершиной всплывающего окна и диалогом содержимого (#7920 от @Malvoz)
  • Вызов события mousemove через Canvas на карту, если у карты нет слоев (#7809 от @johnd0e)
  • Добавление стилей для печати для предотвращения удаления фоновых изображений в элементах управления (#7851 от @Malvoz)
  • Перемещение кода атрибуции из Layer в Control.Attribution (#7764 от @Malvoz)com/Leaflet/Leaflet/pull/7764) от @johnd0e)
    • Переработка vmlCreate() для того, чтобы она не выставляла замыкание на TypeError (#7279 от @darcyparker)
    • Улучшение надежности Control.Layers за счет отказа от использования свойств браузера android и touch (#7057 от @johnd0e)
    • Улучшение надежности Tooltip за счет отказа от использования проверок браузера touch (#7535 от @johnd0e)
    • Делает Browser изменяемым для упрощения автоматизированного тестирования (#7335 от @bozdoz)
    • Замените div на span в контейнере Control.Layers, чтобы исправить ошибку валидации HTML (#7914 от @tmiaa)
    • Добавлен флаг Украины в стандартное атрибутирование 🇺🇦 (от @mourner в https://github.com/Leaflet/Leaflet/pull/8109)

🙌 Доступность* Увеличение стандартных размеров шрифтов и уменьшение прозрачности атрибуции для улучшения читаемости (#8057, @mourner)

  • Улучшение доступности кнопки закрытия всплывающего окна (#7908, @Malvoz)
  • Автоматическое панорамирование к маркерам при фокусировке для улучшения работы с клавиатурой (#8042, @IvanSanchez)
  • Добавление раздела доступности в руководстве по плагинам (#7277, @Malvoz)
  • Обновление Marker для установки по умолчанию role="button" и alt="marker" для улучшения опыта работы с экранного диктора (#7895, @tmiaa)
  • Установка role="button" для соответствующих семантических элементов управления слоями <a> (#7850, @Malvoz)
  • Общее включение контуров для пользователей клавиатуры путем сохранения outline при фокусировке для событий клавиатуры (#7259, @jafin)
  • Включение контуров на leaflet-container для пользователей клавиатуры (#7996, @Malvoz)
  • Множество улучшений для кнопки закрытия всплывающего окна (#7794, @Falke-Design)
  • Использование относительных единиц font-size для масштабируемого текста (#7800)com/Leaflet/Leaflet/pull/7800), @Chandu-4444)
  • Применение стилей :hover к :focus также (#7274, @Malvoz)
  • Скрытие декоративного разделителя атрибуции от экранного диктора (#7969, @Malvoz)
  • Доступность состояния отключения элементов управления масштабом для экранного диктора (#7280, @akshataj96)
  • Скрытие символов +/- в элементах управления масштабом от экранного диктора для предотвращения ошибочных объявлений (#7795, @Falke-Design)

🐞 Исправления ошибок

  • Исправление смещения вектора при перетаскивании и немедленном масштабировании (внесено @manubb, @johnd0e, @mourner в https://github.com/Leaflet/Leaflet/pull/8103)
  • Уменьшение частоты возникновения сбоев при быстром масштабировании (внесено @mourner в https://github.com/Leaflet/Leaflet/pull/8102)
  • Исправление прыгающего положения Marker при масштабировании в определённых случаях (#7967 внесено @Falke-Design)
  • Исправление открытия / закрытия Tooltip при перетаскивании карты (#7862 внесено @Falke-Design)
  • Разрыв ссылки на опции прототипа Class (#7459 внесено @Falke-Design)* Улучшение опций permanent и sticky для Tooltip для совместной работы (#7563 внесено @Falke-Design)
  • Проверка соединения контейнера карты с Leaflet в слушателе события locate (#7813 внесено @Falke-Design)
  • Исправление bindTooltip для Tooltip для отвязывания существующего тултипа (#7633 внесено @Falke-Design)
  • Корректировка условия if для добавления ограничений масштабирования для слоя (#7609 внесено @vcoppe)
  • GridLayer перерисовывает плитки после изменения maxNativeZoom (#6443 внесено @cherniavskii)
  • Исправление Popup keepInView при необходимости панорамирования карты на большое расстояние (#7792 внесено @Falke-Design)
  • Принятие неправильных имен событий в add/removePointerListener (#7808 внесено @johnd0e)
  • Сброс ширины и отступов для предотвращения нарушения рендеринга плиток из-за каскадного CSS (#6843 внесено @Spudley)
  • Исправление вызова события mousedown после перетаскивания Canvas карты (#7781 внесено @johnd0e)
  • Уменьшение частоты вывода сообщений в console.warn для предотвращения загрязнения (#7748 от @johnd0e)* Исправление события contextmenu, предотвращающего по умолчанию, когда есть более одного кандидата-цели (#7544 от @johnd0e)
    • Предотвращение клика на Popup-указателе, который срабатывает на карте (#7541 от @johnd0e)
    • Исправление ошибки вызова Path.setStyle до добавления слоя на карту (#6941 от @NielsHolt)
    • Сброс BoxZoom после отмены с ESC (#7597 от @Falke-Design)
    • Исправление noConflict (#7855 от @Falke-Design)
    • Исправление внешнего вида попапа при пустом содержимом (#8136, от @ansh-ag)
    • Исправление latLngToCoords и latLngsToCoords, которые не принимают массив координат lat/lngs (#7436, от @Relkfaw)

📝 Документация

🧪 Тесты* Улучшение организации единичных тестов (#7852, автор @Falke-Design)

Исправления ошибок

  • Исправление инструментов сборки для отражения обновления uglifyjs с версии v2 до v3 (автор @ivansanchez)

1.7.0 (2020-09-03)

Изменения в API

  • VideoOverlay теперь может принимать опцию muted (#7071 от @ronikar)
  • Фабричный метод featureGroup теперь принимает options, как конструктор FeatureGroup (#7160 от @frogcat)

Улучшения

  • Использование пассивных слушателей событий для событий touchstart/touchend (#7008 от @yneet)

  • Лучшее обнаружение браузеров, поддерживающих PointerEvents, в L.Browser, и связанные изменения в обработчиках Tap, Drag и TouchZoom (#7010, #7041, #7036, #7068, #7195 от @johnd0e)

  • Добавление дополнительных профилей браузеров для автоматизированных тестов (#7115 от @johnd0e)### Исправления ошибок

  • Исправлено отсутствие очистки холста рендерером canvas при некоторых трансформациях масштабирования, что влияло на прозрачность элементов (#6915 от @chipta)

  • Исправлено обнаружение пассивных событий в L.Browser (#6930 от @Ivan-Perez)

  • Добавлено префиксирование CSS-стилей, специфичных для MS, для предотвращения предупреждений (от @ivansanchez, благодарности @zachricha за #6960)

  • Удален слушатель moveend из map.setMaxBounds (#6958 от @simon04)

  • Исправлено неправильное пространство имен вызова bind в окружениях ESM (#6970 от @shintonik)

  • Проверка наличия closePopup перед автоматическим вызовом (#6962 от @pke)

  • Исправлено исключение при вызове layerGroup.hasLayer() с неправильным layerId (#6998 от @johnd0e)

  • Удален click фильтр, направленный на браузеры Android 4.x (#7013 от @johnd0e)

  • Исправлен контекст обработчика события прикосновения для масштабирования (#7036 от @johnd0e)

  • Тесты для Bounds.overlaps() и Bounds.intersects() (#7075 от @mondeja)* Исправлено распространение событий в контейнере всплывающего окна (#7091 от @johnd0e)

  • Исправлено мерцание плиток при maxNativeZoom === maxZoom (#7094 от @johnd0e)

  • Исправлен алгоритм загрузки уровня масштабирования для GridLayer (#7123 от @johnd0e)

  • Исправлено поведение tooltipAnchor для различных направлений подсказок (#7155 от @Istador)

Документация и веб-сайт

  • Обновлены примеры для использования неустаревших плит Mapbox и связанные изменения (#6905 от @riastrad) (#6922 от @danswick) (#6995 от @riastrad)

    • Исправлена документация для Polyline.addLatLng() (#6924 от @life777)
    • Урок по CRS: изменена ссылка на инструмент UQM на архивированную версию (от @ivansanchez)
    • Исправлены небольшие орфографические ошибки в документации (#6850 от @flopp) (#6944 от @jieter)
    • Исправлена опечатка в документации по панелям (#6939 от @R4M80MrX)
    • Исправлен разорванный URL в примере быстрого старта (#6982 от @ekbarber) * Исправлена документация для map.setMaxBounds() (#7001 от @johnd0e)
    • Исправлен код наклона в уроке по обработчику (#7014 от @vncntcltt)
    • Исправлены инструкции по использованию jekyll при сборке документации (#7014 от @vncntcltt)
    • Обновлены серверы WMS в уроке по WMS (#7014 от @vncntcltt)
    • Изменения контрастности сайта и небольшая уборка (от @mourner)
    • Исправлена опечатка в примере WMS (#7098 от @andreasnuesslein)
    • Исправлена документация для divOverlay.getElement() (#7111 от @mondeja)
    • Исправлена документация для Marker.shadowPane (#7135 от @mi-v)
    • Обновлен URL о NPM в документации для разработчиков (#7161 от @iamtekson)
    • Исправлена документация для Layer.удаление изremoveFrom()в отношенииLayerGroup` (от @ivansanchez)
    • Исправлена документация для LatLngBounds.overlaps() #7194 от @DerZade)## 1.6.0 (2019-11-17)### Изменения в API
  • GeoJSON.resetStyle - разрешить вызов без аргумента (#6663 от joukewitteveen)

  • Добавлена новая опция markersInheritOptions для L.GeoJSON (#6866 от ghybs)

Улучшения

  • Использование пассивных слушателей событий (#6694 от danielkorte)
  • Добавлены координаты oldLatLng к событию move для L.CircleMarker (#6719 от errnesto)
  • Добавлены тесты (#6839, #6841 от ghybs)
  • Добавлен тестовый случай для проверки правильного форматирования научной нотации (#6877 от desean1625)

Исправления ошибок* Исправлена производительная проблема с L.Util.formatNum (#6668 от cherniavskii)

  • Уважение опции className в SVGOverlay и VideoOverlay (#6679 от IvanSanchez)
  • Отмена таймера mousehover на канвасе при событии mouseout (#6749 от IvanSanchez)
  • Проверка наличия стиля в L.Path.setStyle (#6728 от TheRealTorreySmith)
  • Исправление события dblclick, когда доступны как Pointer Events, так и Touch Events (#6855 от filcab)
  • Правильное отвязывание событий прокси-анимации при удалении карты (#6867 от ghybs)
  • Исправление конкурентной ситуации в Marker, когда иконка отсутствует (#6794 от BenTalagan)### Документация и веб-сайт
  • Обновить пример кода SvgOverlay (#6658 от cherniavskii)
  • Исправить фрагмент кода для точности определения местоположения на мобильных устройствах (#6693 от ghybs)
  • Исправить неработающие аккордеоны (#6770 от mbachner)
  • Исправить вводящие в заблуждение разделы документации для L.Marker (#6871 от chloe-mc)

1.5.1 (2019-05-08)

  • Исправление регрессии экспорта модуля (#6647 от cherniavskii)

1.5.0 (2019-05-08)

Изменения API

  • Добавлена опция keepAspectRatio к VideoOverlay (#6038 от ronikar)
  • Добавлена поддержка событий keydown и keyup для карты (#6421 от OrBin)
  • Добавлена опция shadowPane к Marker (#6460 от alexfig)
  • Добавлен класс L.SVGOverlay (#6517 от Zsavajji)
  • Добавлен метод getIcon к Marker (#6457 от OsamaShabrez)### Улучшения
  • Обновлены ссылки атрибуции на HTTPS (#6593 от WillSelway)
  • Добавлена поддержка элемента html опции DivIcon (#6571 от oscar-sensornet)
  • Микрооптимизация GeoJSON._setLayerStyle (#6616 от johnd0e)
  • Пересоздание кода openPopup и openTooltip (#6613 от johnd0e)

Исправления ошибок

  • Исправлено поведение переключателей Control.Layers при использовании нескольких карт (#6483 от jjimenezshaw)
  • Явное удаление контролов с карты при выгрузке карты (#6488 от IvanSanchez)
  • Исправлена ошибка, при которой событие наведения мыши на полилинии, отрисованные с помощью Canvas, работала неконсистентно (#6516 от IvanSanchez)
  • Предотвращение выделения плиток в IE11 (#6570 от VictorVelarde)
  • Исправлено округление в функции L.Util.formatNum (#6587 от inkstak)
  • Исправлена ошибка при установке прозрачности для Marker без иконки (#6610 от charlie67)
  • Синтетическое событие dblclick теперь относится к левой кнопке мыши (#6628 от IvanSanchez)

Документация и веб-сайт* Мелкие исправления орфографии в документации и руководствах (#6464 от ilyankou)

  • Документация аргумента precision метода toGeoJSON (#6375 от rkatka)
  • Добавление CSS-объявления для фона (#6614 от milesflo)
  • Уточнение документации метода Events.off (#6619 от lancebendo)
  • Исправление примера Layer (#6636 от billygarrison)### Изменения рабочего процесса разработки
  • Обновление зависимостей разработки и удаление скриптов покрытия (#6635 от mourner)

1.4.0 (2018-12-30)

Изменения API

  • Добавление нового метода Map.panInside (#6054 от daverayment)

Улучшения

  • Удаление неиспользуемого объекта _drawnLayers (#6324 от ud09)
  • Предотвращение ненужного перерисовывания в TileLayer.setUrl() при неизменном URL (#6313 от JackNeus)
  • Использование section вместо form в контроле слоев (#6380 от hundekoerper)
  • Добавление поддержки связанных SVG-элементов в функции DomUtil.getClass для IE11 (#6366 от Schleuse)

Исправления ошибок

  • Установка внутренних флагов в начале инициализации карты (#6362 от ghybs)
  • Защита от слоев, которые больше не прикреплены к карте, в методах bringToFront/Back() (#6389 от perliedman)
  • Исправление опции autoPan при обновлении содержимого всплывающего окна во время анимации панорамирования (#6365 от Schleuse)
  • Игнорирование массивов тире с нечисловыми элементами в canvas (#6387 от perliedman)

Документация и веб-сайт* Удаление дополнительного <tr> (#6334 от mgred)

  • Исправление команды для запуска тестов с параметрами karma (#6363 от ghybs)
  • Добавление логотипа OSM в раздел "Траст доверенных" (#6360 от astv99)
  • Исправление опечаток (#6398 от HarryMaher)
  • Уточнение, что zoomanim не всегда вызывается на каждом кадре (#6388 от perliedman)
  • Добавление ссылок на авторские права в примеры кода (#6439 от jbelien)
  • Исправление ошибки с необеспеченным контентом (#6442 от tambry)
  • Удаление неверного GIF Земли (#6326 от Vincentdecursay)
  • Исправление дублированного предложения в разделе SVG (#6448 от patrickdemers6)

1.3.4 (2018-08-21)

Улучшения

  • Сброс стилей max-width и max-height для плиток в пользовательских панелях (#6255 от jerekshoe)

  • Добавление непрефиксированного стиля cursor: grab (#6281 от Malvoz)

  • Удаление устаревших префиксированных стилей, добавление непрефиксированных стилей (#6282 от Malvoz)### Исправление ошибок

  • Переместить вызовы set/getAttribute('src') из GridLayer в TileLayer (#6264 от IvanSanchez)

  • Поддержка запятых или пробелов в качестве разделителей в опции dashArray для Canvas (#6277 от IvanSanchez)

  • Удалить лишние запятые, чтобы избежать сбоев в некоторых версиях IE (#6279 от helbling)

  • Исправлена заглавная буква в свойстве webkitTransform, что приводило к сбоям трансформаций на некоторых браузерах Webkit (#6290 от tuckergordon)

Документация и веб-сайт

  • Документация опции zoomControl карты (#6254 от IvanSanchez)
  • Явное указание обязательства по атрибуции (#6261 от pietervdvn)
  • Мелкие исправления документации ImageOverlay (#6266 от jgravois)
  • Добавление Edge в список поддерживаемых браузеров (#6270 от matkoniecz)
  • Удаление ссылок на страницу Leaflet UserVoice (#6291 от zstadler)
  • Переработка строк документации для перетаскиваемых маркеров (#6296 от IvanSanchez)

1.3.3 (2018-07-18)### Исправления ошибок

  • Удаление поля module из package.json (#6239)

1.3.2 (2018-07-17)

Улучшения

  • Добавление опции use-credentials CORS для ImageOverlay и TileLayer (#6016 от caleblogan) + тесты (#6022 и #6027 от ghybs)
  • Удаление ссылок на глобальную переменную L из исходного кода (#6047 и #6048 от ghybs)
  • Добавление возможности сброса опции dashArray для Canvas + поддержка массивного типа (#6200 от McBen)### Исправления ошибок
  • Учитывать опцию preferCanvas во всех панелях (#6019 от mjumbewu)
  • Не вызывать событие tileload, если у плитки пустое значение src (#6025 от cherniavskii)
  • Исправить ситуацию с гонкой при удалении canvas до его отрисовки (#6033 от louMoxy)
  • Исправить утечку памяти в рендерере canvas (#6117 от aj8k)
  • Исправить перетаскивание для карты с масштабированием CSS (#6055 от ghybs)
  • Обрабатывать Polygon с пустым массивом LatLng (#6119 от BakuCity)
  • Исправить вычисление границы просмотра в обработчике события геолокации (#6140 от wladich)
  • Исправить ошибку при одновременном удалении карты и изменении размера окна (#6160 от danzel)
  • Остановить событие клавиши панорамирования, когда панорамирование в процессе (#6231 от cherniavskii)

Документация и веб-сайт* Использование более явных заголовков в примере Map panes (#6018 от ghybs)

  • Документация параметра метода closestLayerPoint (#6060 от mattdsteele)
  • Обновление диапазонов годов (#6076 от BakuCity)
  • Использование https для всех ссылок OSM (#6082 от rzoller)
  • Исправление опечатки в документации примера VideoOverlay.js (#6090 от zhuang-hao-ming)
  • Исправление опечатки в строке документации LatLng (#6138 от jieter)
  • Использование https для всех ссылок и устранение предупреждений о смешанном контенте (#6151 от theel0ja)
  • Более точное объяснение Browser.retina (#6203 от JLuc)
  • Использование ссылки на официальный RFC 7946 GeoJSON спецификацию (#6211 от ghybs)

ES6 / Rollup

Процесс разработки* Перемещение внешних зависимостей в node_modules (#6028 от cherniavskii)

  • Удаление зависимости jake и использование скриптов NPM вместо (#5828 от cherniavskii)
  • Обновление зависимости ssri до 5.2.2 (#6086 от cherniavskii)
  • Установка ширины div для параметра inside метода getBoundsZoom (#6192 от ghybs)
  • Исправление юнит-тестов для графических браузеров (#6199 и #6202 от ghybs)
  • Выполнение тестов в графическом браузере Firefox как часть CI (#5831 от cherniavskii)

1.3.1 (2018-01-18)### Исправления ошибок

  • Исправлен регресс L.TileLayer, который приводил к некорректным URL-адресам плит (#6006 от ghybs)

1.3.0 (2018-01-15)

Изменения API

  • Добавлена опция tolerance к L.Renderer вместо жестко закодированного допуска для устройств с сенсорным экраном (#5922 от Muscot).### Улучшения
  • Используйте более устойчивую формулу Haversine (#5935 от jussimattas)
  • Добавьте опцию autoPan к L.Marker (#5651 от alenaksu)
  • Отмените http-запросы для устаревших плит (#5615 от jbccollins)
  • Добавьте опцию closeOnEscapeKey к L.Popup (#5730 от Mickyfen17)
  • Добавьте тесты tileerror к спецификации L.GridLayer (#5805 от msiadak)
  • Используйте метод eachLayer для итераций по слоям в L.LayerGroup (#5809 от cherniavskii)
  • Измените значение по умолчанию Util.formatNum на OnClickListener 6 знаков после запятой (#5492 от fminuti)
  • Вызывайте событие zoomlevelschange, когда вызывается setMinZoom и setMaxZoom (#5230 от mynameisstephen)
  • Используйте параметр zoom, если он передан в метод getTileUrl класса L.TileLayer (#5822 от broncha)
  • Округляйте радиус круга в рендерере, а не в слое (#5859 от perliedman)
  • Добавьте поддержку опций в L.LayerGroup (#5792 от iH8)
  • Округляйте смещение панорамирования к нулю (#5858 от perliedman)* Улучшено определение целей событий как маркеров (#5885 от perliedman)
  • Добавлена проверка typeof в checkDeprecatedMixinEvents (#5901 от murb)
  • Оптимизированы изображения (#5936 от grischard)
  • Добавлен статический метод addTo к классу L.Handler (#5930 от cherniavskii)
  • L.ImageOverlay принимает ImageElement (#5948 от ronikar)

Исправления ошибок

  • Исправлено добавление CSS-классов в L.VideoOverlay, что вызывало сбой карты в IE8 (#5731 от Dzwiedzminator и #5785 от cherniavskii)
  • Отсутствие инерции, если перетаскивание остановлено до завершения перетаскивания (#5690 от perliedman)
  • Удаление плиток из кэша _tiles, когда они прерваны (#5634 от oliverheilig)
  • Использование одного и того же условия для добавления и удаления прослушивателя двойного нажатия (#5598 от perliedman)
  • Корректное обрамление границ плиток (#5715 от perliedman)
  • Исправлен бесконечный цикл ошибок в L.TileLayer (#5783 от cherniavskii)* Исправление отсутствия отображения карты, когда изображения имеют максимальную высоту (#5778 от idanen)
  • Добавление защитного проверочного кода для this._map в методе update класса L.Marker (#5736 от dnepromell)
  • Исправление масштабирования карты при изменении размера контейнера (#5794 от cherniavskii)
  • Обновление DomPointer.js для исправления опечатки (#5817 от daverayment)
  • Исправление опции className в L.ImageOverlay (#5830 от cherniavskii)
  • Исправление L.TileLayer.WMS при использовании полярной стереографической проекции (#5618 от scaddenp)
  • Остановка анимации перед удалением карты (#5876 от dnepromell и #5918 от aaronplanell)
  • Остановка локации перед удалением карты (#5893 от ghybs)
  • Сброс _tileZoom у GridLayer на undefined вместо null (#5888 от iH8)
  • Исправление метода map.flyTo у L.Map, чтобы учитывать опцию noMoveStart (#5923 от iPrytz)
  • Исправление панорамирования карты при отключённом touchZoom (#5952 от cherniavskii)com/cherniavskii))
  • Исправлен L.SVG, чтобы сбрасывать размер при удалении с карты (#5966 от ghybs)
  • Исправлен L.Marker, чтобы устанавливать атрибут alt только для иконок на основе изображений (#5979 от msiadak)

Документация и веб-сайт

  • Добавлено описание для PolyLine.closestLayerPoint (#5701 от perliedman)
  • Заменены URL-адреса для примеров в документации WMS (#5712 от jjimenezshaw)
  • Добавлен тип события DomEvent.stop в документацию (#5733 от theashyster)
  • Обновлены ссылки на спецификацию GeoJSON в примерах GeoJSON (#5725 от astridx)
  • Улучшена документация для метода pad класса L.LatLngBounds (#5748 от CalvinWilliams1012)
  • Улучшена документация по уровням масштабирования для отражения правильного функционирования (#5769 от CalvinWilliams1012)
  • Исправлены высота и ширина карты в примерах для улучшения видимости атрибутивной информации на мобильных устройствах (#5772 от CalvinWilliams1012 и #5819 от cherniavskii)
  • Исправлена документация для метода bringToBack класса L.FeatureGroup (#5788 от CalvinWilliams1012)com/Leaflet/Leaflet/issues/5788) от fpopa)
  • Исправлено описание метода distanceTo класса L.LatLng (#5791 от loisgh)
  • Исправлены переадресации документации на версию по умолчанию (#5824 от cherniavskii)
  • Добавлены альтернативные CDN (#5837 от ghybs)
  • Обновлена документация для метода L.DomEvent.off() (#5855 от 77ganesh и #5976 от kring)
  • Перемещена документация для фабрики L.SVG на соответствующее место (#5864 от cherniavskii)
  • Новые Leaflet playgrounds на Plunker, Codepen и JSFiddle (#5868 от iH8)
  • Уточнено, что можно использовать любые ключи опций (#5877 от perliedman)
  • Добавлены примечания о некоторых классах, которые не наследуют Class (#5878 от perliedman)
  • Улучшена и документирована пропагация событий (#5880 от perliedman)
  • Обновлены инструкции по сборке (#5911 от shadeland)
  • Документировано событие mouseup для интерактивного L.Layer (#5941 от germansokolov13)
  • Документировано опция tooltipAnchor класса L.Иконка, обновлены значения по умолчанию для tooltipAnchor и popupAnchor (#5989 от cherniavskii)### ES6 / Rollup* Изменение опции legacy в конфигурации rollup — теперь Leaflet работает в IE снова (#5929 от IvanSanchez)
  • Удаление предупреждения в наборе для наблюдения (#5714 от perliedman)
  • Новый синтаксис конфигурации rollup (#5812 от iH8)

1.2.0 (2017-08-08)

Изменения в API

  • Объявление L.LineUtil._flat как публичного метода L.LineUtil.isFlat (#5667 от yohanboniface)
  • Метод setBounds класса L.ImageOverlay принимает массив точек, а не только экземпляр L.LatLngBounds (#5687 от ronikar)

Улучшения

  • VideoOverlay принимает VideoElement (#5661 от eavidan-0)
  • Улучшения документации от ghybs, thachhoang, colbin8r, Timmmm, cyrilf и JonDum
  • Фильтрация опубликованных файлов на npm (#5626 от TrySound), e7o-de
  • Вызов ошибки при попытке использовать addLayer с объектом, который не является слоем (#5689 от perliedman)
  • Обеспечение сохранения лицензионного уведомления в минифицированном leaflet.js (#5682 от jgravois)### Исправление ошибок
  • Исправление регрессии с нерасшифровываемыми объектами в версии 1.1.0 (#5658 от mourner)
  • Control.Layers корректно обрабатывает добавление одного и того же слоя несколько раз, а также очистку (#5672, #5684 и #5673 от jjimenezshaw)
  • Сделать L.Draggable._dragging публичным снова (#5659 от yohanboniface)
  • DomEvent.off возвращает this (#5601 от jelhan)
  • Не использовать функции из глобального L внутри кода (#5596 от atd-schubert)
  • В DomEvent.disableScrollPropagation возвращать this вместо addOne (#5595 от Eschon)

1.1.0 (2017-06-27)

Изменения в API* Добавлено уведомление о предстоящем удалении L.Mixin.Events, исправлено #5358 (#5365) (автор perliedman)

ES6 / Rollup* ES6 модули и Rollup (#4989) (by mourner and IvanSanchez)

  • Дополнительные исправления, тестирование и чистка кода на ES6 (#5373, #5417, #5351, #5330, #5329, #5489, #5504, #5456, #5463) (by thachhoang, danzel, jkuebart, simon04, perliedman, luiscamachopt and Trufi)### Улучшения

  • Добавлен новый класс L.VideoOverlay (#4988 by IvanSanchez)

  • Добавлена поддержка z-index для ImageOverlay (#5418 by Saulzi)

  • Добавлено событие ошибки для слоя ImageOverlay и добавлены тесты для нового события (#5416 by Saulzi)

  • Добавлена опция className для ImageOverlay (#5555 by perliedman)### Исправление ошибок

  • Обработка краевых случаев пустых границ в _getBoundsCenterZoom (#5157 от IvanSanchez)

  • Добавление новых методов к L.Bounds для двух недостающих углов, исправление #5475 (#5488 от ghybs)

  • Обработка Polyline с пустым массивом LatLng #5497 (#5498 от perliedman)

  • Учет devicePixelRatio при прокрутке колеса мыши в win10+chrome (#5480) (от IvanSanchez)

  • Добавление точек для подключения, чтобы обеспечить правильную работу плагина NoGap (#5476) (от IvanSanchez)

  • Проверка целостности для предотвращения загрузки плиток при бесконечных границах (#5478, #5479 от IvanSanchez)

  • Исправление условия гонки в box zoom (#5452 от ppaskaris)

  • При обновлении устанавливать текущие плитки активными для предотвращения их удаления (#5381) (#5431 от oliverheilig)

  • Преобразование L.Mixin.Events в простой объект вместо прототипа, чтобы избежать свойства 'constructor', исправление #5451 (#5453 от luiscamachopt)

  • Canvas: вызов ctx.setLineDash в _fillStroke #5182 (#5454 от TeXitoi)

  • Перестроение DOM только при необходимости в toFront/toBack, исправление #4050 (#5465 от perliedman)

  • Отодвигание порядка навигации клавиатурой кнопки закрытия L.Popup #5461 от Mirodil

  • Удаление лишней проверки в DomUtil* Предотвращение создания контура (preventOutline) (#5435 от qjas)

  • Обработчик ошибок в ImageOverlay для ссылок 404 (#5307) от APwhitehat

  • Убедиться, что контейнер рендерера инициализируется при добавлении пути на карту (#5404 от IvanSanchez)

  • Управление слоями теперь добавляет события слоев только при нахождении на карте. Исправляет #5421 (#5422 от danzel)

  • Управление слоями теперь может стать прокручиваемым даже при collapsed: false, исправляет #5328 (#5348 от ghybs)

  • Остановка карты при начале перетаскивания вместо нажатия указателя, исправляет #5350 (#5378 от perliedman)* Исправление недопустимого GeoJSON, созданного вложенным LayerGroups (#5359 от Resonance1584)

  • Обновление внутреннего радиуса границы панели инструментов (#5361 от newmanw)

  • Экспорт lastId в Util (#5349 от DenisCarriere)

  • Не останавливать обработку клавиш при нажатии клавиши Esc, если нет открытого попапа, плюс юнит-тесты (#5331 от IvanSanchez)

  • Документация: удаление границ iframe на примерах (#5327) от tariqksoliman

  • Извлечение min/maxNativeZoom из TileLayer в GridLayer, как указано в #5316. (#5319 от jkuebart)

  • Отключение распространения клика на кнопках управления масштаба, исправляет #5308 (#5318 от perliedman)

  • Добавление CSS для -webkit-tap-highlight-color, исправляет #5302 (#5303 автор: IvanSanchez)

    • Удаление атрибута type в HTML5 файлах (#5309 автор: uzerus)
    • Добавление отступа к методу LatLngBounds.equals (#5071 автор: miguelcobain)
    • Добавление опций L.Draggable и исправление docstring (#5301)com/Leaflet/Leaflet/issues/5301) автор: IvanSanchez)
    • Исправлен расчет max/min для getBoundsZoom, исправляет #5136 (#5137 автор: IvanSanchez)
    • Удаление отсоединенных DOM-элементов, предотвращает утечку памяти; исправляет #5263 (#5265 автор: IvanSanchez)
    • Удаление marker.dragging при отсутствии на карте, исправляет #5293 (#5295 автор: danzel)
    • Остановка прокрутки в L.Layers.Control в Chrome>55 (#5280 автор: IvanSanchez)
    • Разрешение HTML-ввода в метках управления слоями, исправляет #5116 (#5544 автор: iZucken)
    • Исправление возможного null-ссылочного исключения при автоматическом обнаружении пути по умолчанию для иконки, исправляет #5534 (#5535 автор: williamscs)
    • Отключение преобразования нажатия клавиши Enter в клики на карте, исправляет #5499 (#5507 автор: perliedman)
    • Использование знака минус вместо дефиса в панели управления масштабом (#5501 автор: damianmoore)

1.0.3 (2017-01-23)### Исправление ошибок* Устранение лишних перерисовок L.Canvas в нескольких сценариях (автор @perliedman, #5250, также спасибо @manubb за расследование и PR).

  • Исправление поведения события dblclick в Chrome 55 из-за PointerEventов (автор @IvanSanchez, #5185, #5248, #5268).
  • Исправление зависающей запятой, вызывающей сбой в парсинге кода в IE8 (автор @batje, #5270).
  • Возврат исправлений обработки событий из #5054 в L.SVG.VML для IE8 (автор @IvanSanchez, #5215).
  • Исправление условия гонки при закрытии всплывающих окон во время события popupopen (автор @hagai26, #5202).
  • Исправление возвращаемого значения getBoundsZoom для CRS с перевернутой осью (автор @computerlove, #5204).
  • Устранение бесконечных циклов при возврате 404 запросом errorTileUrl у L.TileLayer (автор @IvanSanchez, #5177).
  • Удаление ошибочной инициализации неиспользуемых слушателей событий (автор @Brikky, #5160).
  • Исправление округления областей перерисовки L.Canvas для предотвращения артефактов при частичных обновлениях (автор @Ernie23, #5148).
  • Исправление поведения isPopupOpen() у L.Layer при отсутствии привязанного всплывающего окна (автор @gvangool, #5106).
  • Добавление проверки целостности в LatLngBounds.contains() для разрешения использования неинициализированных объектов LatLng (автор @IvanSanchez, #5135).
  • Исправление сворачивания L.Control.Layers при опции collapse равной false (автор @perliedman, #5131).

Изменения в API* Добавлен новый метод WrapLatLngBounds к L.CRS, чтобы исправить проблему с maxBounds слоев GridLayer (внесено @IvanSanchez, #5185, также благодарим @DiogoMCampos за расследование).

  • Метод L.Map.getSize() теперь будет возвращать 0 вместо NaN в неграфических окружениях (внесено @ughitsaaron, #5209).

Улучшения

1.0.2 (2016-11-21)### Исправления ошибок

  • Исправлено отображение теней маркеров при установке max-width (автор @brunob, #5046).
  • Исправлен перерисованный canvas при обновлении стиля, изменяющего заливку и/или ширину (автор @perliedman, #5034).
  • Устранено срабатывание нескольких событий mouseover для одного и того же слоя (автор @perliedman, #5033).
  • Исправлена проблема с распараллеливанием при удалении и добавлении векторов L.Canvas во время анимации масштабирования (автор @ghybs, #5011).
  • Исправлена анимация масштабирования ImageOverlay при перевёрнутой оси Y CRS (автор @perliedman, #4993).
  • Исправлено кодирование/декодирование GeoJSON FeatureCollection (автор @IvanSanchez, #5045).
  • Исправлено опозданное инициализирование minZoom/maxZoom (автор @IvanSanchez, #4916).
  • Исправлено стилизование пользовательских SVG маркеров за счёт строгих CSS селекторов (автор @jwoyame, #4597).
  • Исправлен порядок событий mouseover/mouseout на перекрывающихся слоях L.Canvas (автор @perliedman, #5090).* Исправлено поведение перетаскивания при удалении маркера во время перетаскивания (автор @IvanSanchez, #5063).
  • Исправлено сжатие L.Control.Layers.collapse() для инициально развернутых элементов управления слоями (автор @perliedman, #5131).
  • Исправлена размытость L.Tooltip за счёт округления координат пикселей (автор @ashmigelski, #5089).
  • Исправлены события клика на перекрывающихся геометриях при использовании L.Canvas (автор @perliedman, #5100). ### Изменения в API* Добавлено опциональное свойство sortLayers к L.Control.Layers (автор @IvanSanchez, #4711).
  • Реализованы методы bringToFront и bringToBack при использовании L.Canvas, а также исправлены другие проблемы с L.Canvas (автор @perliedman), #5115.
  • Добавлено опциональное свойство minNativeZoom к L.TileLayer (автор @bb-juliogarcia), #5088.

Улучшения

  • Улучшена производительность при добавлении большого количества L.Path путем переработки логики событий (автор @IvanSanchez) #5054.
  • Несколько небольших улучшений документации (авторы @Jmuccigr, @serdarkacka, @erickzhao, @IvanSanchez, @perliedman, @joukewitteveen).
  • Переработка кода: расширения для L.Marker и L.Map больше не имеют отдельного файла (автор @mourner).
  • Удален дублирующийся юнит-тест (автор @yohanboniface).
  • Улучшена доступность (ARIA/для экранного дисплейного чтения) для плиток карты (автор @patrickarlt) #5092.

1.0.1 (2016-09-30)

Исправления ошибок* Исправлена регрессия в рендеринге векторов в IE8 (автор @perliedman) #4656.

  • Исправлено ошибочное сообщение при сборке CSS Leaflet с помощью Webpack (автор @jefbarn) #4679.## 1.0.0 (2016-09-26)

Изменения в API

  • Удалено устаревшее опциональное свойство zoomanimated для L.Popup (автор @fnicollet) #4699

Улучшения

Исправления ошибок* Исправлено обработку getScaleZoom в некоторых пользовательских CRS (от @theashyster) #4919

  • Защита обработчиков событий L.Path от гонок (от @perliedman и @IvanSanchez) #4855 #4929 #4838
  • В L.GridLayer обернут tileBounds при noWrap равном false (от @fyeah) #4908
  • Исправлено поведение bringToFront() для L.Path в браузере Edge (от @nikolai-b) #4848
  • Устранено случайное подсчет событий обработчиков (от @perliedman) #4842
  • Выброшена ошибка при вызове getCenter() для L.Polygon, который не имеет карты и, следовательно, CRS (от @snkashis) #4820
  • Добавлено _leaflet_id для контейнеров карт для предотвращения ошибки при удалении карты дважды (от @IvanSanchez) #4810
  • Не вызывать ошибку при закрытии подсказки, которая не находится на карте (от @yohanboniface) #4937## 1.0-rc3 (2016-08-05)

Изменения API

  • Параметр offset для L.Tooltip теперь по умолчанию равен [0, 0] (от @yohanboniface) #4773
  • Обработчики событий теперь всегда вызываются в порядке их регистрации, а до rc2 обработчики с контекстом вызывались перед обработчиками без контекста (даже если они были зарегистрированы позже), и обработчики с контекстом вызывались в непредсказуемом порядке (от @yohanboniface) #4769### Улучшения
  • Добавлен oldLatLng в событие drag для L.Marker (от @snkashis) #4752

Исправления ошибок

  • Исправлена регрессия, при которой обработчики событий не всегда вызывались в порядке регистрации (от @yohanboniface) #4769
  • Исправлена анимация масштабирования L.Tooltip (от @yohanboniface) #4744
  • Исправлена ошибка, при которой layer.bindTooltip вызывал сбой, если был вызван до добавления слоя на карту (от @yohanboniface) #4779
  • Исправлена регрессия в автоматическом панорамировании L.Popup (от @yohanboniface) #4768
  • Исправлена проблема с временным L.Tooltip, который не закрывался при касании карты (от @yohanboniface) #4767
  • Исправлены события popupopen и popupclose, которые не вызывались при клике на путь с открытым попапом (от @yohanboniface) #4788

1.0-rc2 (2016-07-18)### Изменения в API

  • Добавлены методы L.Handler.enable/disable, которые возвращают this (автор @yohanboniface) #4708
  • Опция size для иконок теперь может быть инициализирована числом (автор @rheh) #4608
  • Добавлена опция classname для L.GridLayer (автор @jayvarner) #4553
  • Улучшены возвраты для Map.addLayer (автор @nathancahill) #4504
  • Создание точек из объектов с свойствами x и y (автор @nathancahill) #4465
  • Добавлена опция updateWhenZooming для L.GridLayer (автор @IvanSanchez) #4462### Улучшения
  • Переработка событий (авторы @fab1an и @perliedman) #4697
  • Не изменять popup.options.offset при вычислении смещения попапа (фикс #4645) (автор @yohanboniface) #4662
  • Использование разных L.Bounds для "отметки как удаляемого" и загрузки плит (автор @IvanSanchez) #4650
  • Добавлен класс L.Tooltip для отображения небольших подсказок на карте (автор @yohanboniface) #3952

Исправления ошибок

  • Исправлено смещение внешнего края GridLayer к вертикальному центру карты (исправление #4702) (автор @yohanboniface) #4704
  • Исправлено слишком быстрое увеличение масштаба при прокрутке колеса мыши в MS Edge (автор @IvanSanchez) #4694
  • Использование pointer-events: visiblePainted в качестве запасного варианта для IE <11 (автор @perliedman) #4690
  • Устранение двойных границ на abbr на сайте (автор @brunob) #4663
  • Предотвращение срабатывания события клика на карте, когда слой имеет всплывающую подсказку (автор @jwoyame) #4603
  • Отключение указателя событий на вершине всплывающей подсказки (автор @jwoyame) #4599com/Leaflet/Leaflet/pull/4599)
  • Предотвращение автоматического установления имени CSS-класса в L.DomUtil.create() (автор @MuellerMatthew) #4563
  • Исправление ошибки смещения на единицу в Control.Layers._getLayer (автор @ValentinH) #4561
  • Исправление события прокрутки колеса мыши, увеличивающего масштаб на два уровня в Chrome путем уменьшения getWheelDelta() (автор @IvanSanchez) #4538
  • Предотвращение вызова слушателей событий при удалении всех слушателей (автор @perliedman) #4555
  • Предотвращение блокировки браузерного скролла и/или масштабирования при отсутствии включенных обработчиков (автор @perliedman) #4552
  • Исправлено поведение getBoundsZoom при маленьком размере и отступах (автор @dianjin) #4532
  • Исправлено поведение L.Control.Layers в IE8 (автор @jieter) #4509
  • Исправлено поведение логики retina для TileLayer при включении zoomReverse (автор @perliedman) #4503
  • Исправлено поведение setMaxBounds при передаче аргумента null (автор @yohanboniface) #4494
  • Исправлена проблема с фильтрацией события клика после перетаскивания на canvas (автор @yohanboniface) #4599com/yohanboniface)) #4493
  • Исправлена ошибка в методе L.Control.removeLayer(), которая возникала при попытке удаления слоя, который ещё не был добавлен (автор @jieter) #4487
  • Исправлена проблема отключения перетаскивания по клику в IE11 (автор @perliedman) #4479
  • Исправлен метод L.Evented.listens() для удалённых обработчиков событий, #4474 (автор @IvanSanchez) #4476
  • Улучшена обработка хуков событий markerZoomAnimation (автор @IvanSanchez) #4460

1.0-rc1 (2016-04-18)### Изменения в API

  • Сделать L.Control.Layers.collapse/expand публичными методами (автор @yohanboniface) #4370
  • Сделать L.latLngBounds фабрикой, возвращающей пустые границы без аргументов (автор @yohanboniface) #4368
  • Map.fitBounds теперь выдаёт ошибку, если границы не являются валидными (автор @theotow) #4353
  • Временно поддерживать устаревшие опции в L.Circle (автор @JrFolk) #4290
  • Вызывать ошибку при NaN радиусе круга (автор @IvanSanchez) #4237
  • L.Class.include() и mergeOptions() теперь возвращают this (автор @IvanSanchez) #4246
  • Консистентная запись GeoJSON (автор @yohanboniface) #4108
  • Переместить L.LatLng.equals в L.CRS.equals. (автор @perliedman) #4074
  • Сделать неподвижные маркеры не вызывающими событий указателя (автор @IvanSanchez) #3937

Улучшения

  • Присвоение идентификаторов всплывающим окнам (автор @tylercubell) #4355
  • Поддержка {-y} в URL-адресах слоев плиток (автор @jieter) #4337
  • Поддержка опции dashArray для пути в canvas (автор @gommo) #4173* Упрощение navigator.pointerEnabled (автор @IvanSanchez) #4287
  • Использование массива в L.Control.Layers внутренне (автор @jieter) #4227
  • Реализация L.Browser.edge (автор @IvanSanchez) #4143
  • Оптимизация иконок (автор @vtduncan) #4124
  • Преобразование опции L.DivIcon.bgPos в L.Point (автор @perliedman) #4090
  • Переключение на событие колеса при его доступности (автор @mourner) #3653
  • Управление дробными значениями масштабирования (авторы @IvanSanchez и @hyperknot) #3523
  • Добавление допуска для щелчка также для устройств без поддержки касания (автор DavidUv) #4396

Исправления ошибок

  • Исправлено краевое условие в Map.fitBounds (автор @perliedman) #4377
  • Исправлена краевая ошибка в flyTo (автор @hyperknot) #4376
  • Использование среднего радиуса Земли для вычисления расстояния в L.CRS.Earth (автор @perliedman) #4369
  • Исправлено двойное срабатывание события масштабирования (автор @perliedman) #4367 * Инициализация штриховки canvas при инициализации. Проверка поддержки setLineDash canvas. (автор @perliedman) #4364
    • Не вычислять перевернутые координаты y для CRS с параметром infinite: true (автор @jieter) #4344
    • Исправлено управление масштабированием на Map.TouchZoom (автор @IvanSanchez) #4340
    • Исправлено определение this._times.length как неопределенного в Map.Drag.js (автор @LucasMouraDeOliveira) #4324
    • Исправлено управление имитированным щелчком в L.Path (автор @elkami12) #4314
    • Исправлено отсутствие удаления атрибутивного текста при удалении слоя с карты (автор @dr-itz) #4293
    • Исправлена ошибка при добавлении/удалении слоя из L.Control.Layers, который не находится на карте (автор @errebenito) #4280
    • Исправлено определение Map.attributionControl только при addInitHook (автор @snkashis) #4263
    • Проверка наличия e.originalEvent в DomUtil._filterclick (автор @IvanSanchez) #4256
    • Остановка распространения события перетаскивания на L.Draggable (автор @turban) #4250 * Исправлена ошибка при быстром удалении слоя, только что добавленного (автор @hyperknot) #4244
    • Исправлено неправильное сбросивание состояния на Map.stop (предложено @IvanSanchez) #4229
    • Исправлена конфликтность между Map.fadeAnimation и GridLayer.opacity (предложено @IvanSanchez) #4228
    • Исправлена вычисление дробного масштабирования (предложено @hyperknot) #4224
    • Улучшена очистка L.Control.Layers, исправлены #4213 (включая unit-тесты) (предложено @IvanSanchez) #4214
    • Исправлена проблема с трансформацией при отсутствии L.Browser.any3d (предложено @IvanSanchez) #4212
    • Исправлена проблема с дробным масштабированием при отсутствии начального масштабирования (предложено @IvanSanchez) #4209
    • Исправлена проблема с дополнительными использованными плитками (предложено @IvanSanchez) #4193
    • Проверка целостности: проверка валидности pxBounds перед использованием (предложено @yohanboniface) #4191
    • Отключение стандартных событий при отключении пропагации скролла (предложено @IvanSanchez)com/IvanSanchez)) #4160
    • Исправлена точность вычисления радиуса L.Circle (предложено @IvanSanchez) #4133
    • Обход некоторых браузеров с поддержкой касания, которые вызывают dblclick вместо событий касания (предложено @IvanSanchez) #4131
    • Использование всех проектированных координат при вычислении L.Polyline's pixel bounds (предложено @perliedman) #4114
    • Исправлена проблема с удалением всех событий при передаче неопределенного свойства (предложено @robertleeplummerjr) #4113
    • Исправлена вычисление URL для retina (предложено @hyperknot) #4110
    • Вызов tileunload для всех удаляемых плиток (предложено @tcoats) #4099
    • Устранена дублированная кодировка в L.GridLayer.retainParent() (автор @jblarsen) #4094
    • Убедитесь, что _enforcingBounds всегда сбрасывается (автор @perliedman) #4089
    • Исправлена ошибка с максимальными границами и пользовательскими проекциями (автор @OleLaursen) #4078
    • При ограничении центра границами, игнорировать смещения менее одного пикселя (автор @perliedman) #4077* Исправлена ошибка для события наведения мыши между пересекающимися кругом и многоугольником на canvas (автор @fimietta) #4072
  • Исправлена ошибка, когда L.Control.Layers вызывала map._size вместо getSize() (автор @Brobin) #4063
  • Округление новой позиции карты перед анимацией панорамирования (автор @RLRR) #4046
  • Исправлены проблемы с реакцией на события мыши для наложенных кругов на canvas (автор @Deftwun) #4033
  • Исправлено resetStyle для GeoJSON (автор @yohanboniface) #4028
  • Исправлено переключение попапа при клике на маркер (автор @yohanboniface) #4016
  • Исправлено падение цели события на карту после перетаскивания маркера (исправление #3971) (автор @yohanboniface) #4010
  • Исправлено игнорирование maxZoom значения 0 (автор @simsibimsiwimsi) #4000
  • Пропуск L.GridLayer._updateLevels() при выходе за пределы минимального/максимального масштаба (предотвращает исключения в IE8) (автор @IvanSanchez) #3999
  • L.DomUtil.getPosition() должна возвращать запасное значение (для VML в IE8) (автор @IvanSanchez) #3998com/Leaflet/Leaflet/pull/3998)
    • L.Marker: инициализация взаимодействия независимо от нового иконки (автор @celadevra) #3998
    • Исправление interactive=false не учитывалось для canvas (автор @yohanboniface) #3978
    • Исправление исчезновения пути canvas при анимации (автор @klaftertief) #3950
    • Проверка перемещения draggable в canvas рендерере выполняется только при draggable карте (автор @klaftertief) #3942
    • Исправление проблем SVG Dragging в IE и Edge (автор @perliedman) #4382
    • Исправление проблемы клика на элементах управления в IE 11 (автор @perliedman) #4371
    • Делает drag и touch zoom обработчики событий нечувствительными к порядку обработчиков событий (автор @perliedman) #4387

Другое

Версия beta 2 исправляет более 50 ошибок, которые были отмечены пользователями, пробовавшими версию beta 1. Большинство изменений небольшие исправления проблем, которые возникают в очень конкретных ситуациях или условиях, несколько изменений по объединению API и несколько обходных решений для браузеров.

Изменения API

  • L.circle теперь принимает radius как опцию (как L.circleMarker) вместо второго аргумента (автор @IvanSanchez)### Улучшения

  • Оптимизированы действия на холсте при наведении мыши (автор @philippelatulippe) #3076

  • Улучшено поведение перетаскивания, предотвращено событие preclick во время перетаскивания (автор @yohanboniface) #3632

  • Реализован метод L.ImageOverlay.setBounds() и исправлена инициализация изображения (автор @fminuti) #3680

  • Реализованы перетаскиваемые элементы, которые вызывают события mousedown (автор @yohanboniface) #3682

  • Изменена проверка браузеров, поддерживающих события msPointer (автор @IvanSanchez) #3684

  • Реализовано округление широты для сферической проекции Меркатора (автор @perliedman) #3700

  • Устранены проблемы с браузерами, не поддерживающими Geolocation.clearWatch() #3707

  • Реализовано создание sourcemaps при сборке и минификации исходных файлов (автор @IvanSanchez) #3723

  • Добавлены методы bringToFront и bringToBack для всплывающих окон (автор @danzel) #3908 #3813

  • Умножение смещения на 3 при панорамировании клавиатурой при нажатии клавиши Shift (автор @yohanboniface) #3921com/Leaflet/Leaflet/pull/3921)### Исправления ошибок* Исправлено распространение событий при двойном касании пальцем (автор @IvanSanchez) #3532

  • Исправлены изменения стиля при повторном добавлении слоев (автор @wpf500) #3547

  • Исправлены исключения preventOutline #3625

  • Исправлена регрессия ошибки в функции box zoom #3633

  • Исправлено поведение contextmenu при отсутствии слушателей событий (автор @yohanboniface) #3638

  • Исправлено отображение элементов управления карты поверх слоев карты (автор @patrickarlt) #3644

  • Исправлено отображение изображений маркеров с max-width (автор @davidjb) #3647

  • Исправлено пузырьковое распространение событий mouseout и mouseover (автор @yohanboniface) #3648 #3797 #3708

  • Исправлена ошибка в контроле слоев при удалении слоев (автор @davidlukerice) #3651

  • Исправлены анимации панорамирования и масштабирования, взаимодействующие друг с другом #3355 #3655

  • Исправлена регрессия ошибки в рендерере canvas при удалении слоев #3661com/Leaflet/Leaflet/issues/3661)

  • Удалена работающая обходная мера для устаревших браузеров Android 2 #2282

  • Исправлено векторное рендеринг VML в IE8 при удалении и повторном добавлении слоев (автор @fminuti) #2809

  • Исправлены анимации flyTo при неизменном центре карты (автор @fminuti) #3663

  • Исправлены анимации затухания для полупрозрачных слоев плиток (автор @w8r) #3671

  • Исправлено поведение события baselayerchange (автор @yohanboniface) #3677

  • Исправлено обработку маркерной иконки во время перетаскивания маркера (автор @IvanSanchez) #3687

  • Исправлено проблему видимости контейнера карты в IE 11 (автор @fminuti) #2788

  • Запрещены действия перетаскивания во время анимации масштабирования карты (автор @IvanSanchez) #3692

  • Реализовано отключение слоев в панели управления слоями, когда они недоступны на текущем уровне масштабирования (автор @IvanSanchez) #252

  • Переработано определение L.Util.requestAnimFrame (автор @fminuti) #3703

  • Исправлено граничное условие L.Circle.getBounds() (автор @knabar) #3776* Исправлено значение возврата Rectangle.setBounds() (от @IvanSanchez) https://github.com/Leaflet/Leaflet/commit/e698f641afadd4a0b412a6c9e065a6dbfbe16f44

  • Исправлено порядок срабатывания событий при открытии всплывающего окна (от @yohanboniface) #3745

  • Исправлено загрузку слоя плиток при перетаскивании, за которым сразу следует масштабирование карты (от @IvanSanchez) #3814

  • Обход ограничений браузера при панорамировании карты слишком далеко (от @yohanboniface и @IvanSanchez) #3608

  • Исправлено выделение текста и события касания для IE 10 (от @danzel) #3804

  • Исправлено расположение слоев плиток при установке maxZoom (от @patrickarlt) #3721

  • Исправлено поведение масштабирования на нестандартных CRS (от @javimolla, особая благодарность Your First PR) #2990

  • Исправлено отображение сдвинутых с экрана векторных слоев (от @yohanboniface) #3836

  • Исправлено отображение пересекающихся векторных слоев (от @yohanboniface) #3583

  • Ужесточена проверка кода на соответствие стилю (code linting)* Исправлено отключение обработчиков перетаскивания, которые не могут быть вновь включены (от @yohanboniface) #3825

  • Исправлено скроллинг за пределы границ карты (от @yohanboniface) #3878

  • Исправлено отсутствие фокуса карты при использовании клавиатуры в IE 11 (от @IvanSanchez) #3772

  • Исправлено позиционирование векторных слоев во время анимации масштабирования при низком масштабе (от @IvanSanchez) #3769

  • Реализована опция noWrap в L.GridLayer (от @IvanSanchez) #3691

  • Исправлено скроллинг карты при открытии всплывающих окон во время выполнения другой анимации скроллинга (от @yohanboniface) #3744

  • Исправлено некорректное значение шкалы управления из-за стилей CSS (от @yohanboniface) #3668

  • Исправлено определение пути по умолчанию для иконок (от @ilfa) #3770

  • Исправлены различные проблемы с событиями Canvas (от @yohanboniface) #3917

  • Исправлено скроллинг при управлении слоями при касании (от @yohanboniface) #2882* Исправлено отсутствие передачи длительности из setView в panBy (от @yohanboniface) #3300

1.0-beta1 (2015-07-14)Первая бета-версия ожидаемой версии Leaflet 1.0.

Эта версия содержит множество полезных, но потенциально разрывающих изменений (особенно если вы автор плагина), поэтому внимательно изучите изменения, если ваш код перестанет работать после обновления.

Улучшения API для векторных слоевAPI для рендеринга векторных слоев Leaflet значительно переработан, что позволяет динамически переключаться между backendами рендеринга (Canvas, SVG), использовать оба backendа одновременно для разных слоев, иметь более одного физического панеля для векторных слоев, значительно улучшить производительность, добавить поддержку Canvas для Retina, избавиться от некрасивых хаков и в целом сделать код намного чище. Основной PR #2290.

  • Добавлен слой Renderer (наследуемый от реализаций SVG/Canvas), который управляет границами рендерера и анимацией масштабирования.
  • Добавлены классы SVG и Canvas, которые теперь содержат весь код, специфичный для рендерера, для векторных слоев и могут быть добавлены как слои на карту.
  • Все классы векторных слоев (Path, Polyline и т. д.) теперь не содержат никакого кода, специфичного для рендерера, и вместо этого могут принимать слой рендерера для использования в качестве renderer в опциях.
  • Удалены классы MultiPolyline и MultiPolygon, так как несколько колец теперь обрабатываются классами Polyline и Polygon соответственно. Слои с несколькими кольцами теперь работают намного быстрее (так как каждый теперь физически является одним объектом пути, а не группой слоев FeatureGroup).
  • Резко улучшена производительность интерактивных слоев Canvas.Мышечные события работают намного быстрее (из-за улучшенных алгоритмов обнаружения попаданий), и слои обновляются намного быстрее (с частичным перерисовыванием вместо перерисовки всего Canvas).
  • Резко улучшена производительность интерактивных слоев SVG (например, создание большого слоя GeoJSON и добавление его на карту стало в 3 раза быстрее, при этом потребление памяти уменьшилось в 2,5 раза). #2240 #2315
  • Добавлена поддержка Retina для слоев Canvas.
  • Улучшены стандартные стили векторных слоев.
  • Добавлены методы getCenter для классов Polyline и Polygon для получения центроидов.
  • Улучшена позиция всплывающих окон для классов Polyline и Polygon при вызове openPopup.
  • Улучшен метод getBounds для классов Polyline и Polygon для кеширования (чтобы он работал намного быстрее).
  • Изменено наследование класса Circle на наследование от CircleMarker и не наоборот.
  • Исправлен метод resetStyle класса GeoJSON для корректной работы в случае, если опция style не была установлена.
  • Исправлена ошибка, при которой карта генерировала событие moveend при обновлении слоев Canvas.
  • Удален метод spliceLatLngs классов Polyline и Polygon (используйте setLatLngs вместо него).
  • Изменен метод getLatLngs класса Polygon для возврата всегда массива колец (вложенного массива) (внесено @yohanboniface). #2618 #3386 Leaflet/Leaflet#3279com/Leaflet/Leaflet/pull/3279) #2648
  • Добавлена возможность указывать пользовательский панель для векторных слоев (что делает возможным легко создавать стеки, такие как векторы-плитки-векторы, с правильным порядком z-index) (внесено @Jakobud). #3266 #2786
  • Добавлена опция fillRule для векторных слоев (внесено @bullgare). #2834
  • Удален глобальный переключатель L_PREFER_CANVAS и добавлена опция preferCanvas для Map вместо него (внесено @yohanboniface). #3623

Улучшения API слоевВсе слои Leaflet (включая маркеры, всплывающие окна, плиточные и векторные слои) были переработаны для использования общего родительского класса Layer, который делит базовую логику добавления и удаления. Это приводит к следующим изменениям (основной PR #2266):

  • Добавлен класс Layer, от которого должны наследоваться все слои, добавленные на карту.
  • Добавлены события add и remove для всех слоев.
  • Добавлен метод remove для слоев и контролов (marker.remove() теперь эквивалентен map.removeLayer(marker)).
  • Улучшена производительность добавления и удаления слоев.
  • Добавлена опция pane для всех слоев, которую можно изменять (например, можно установить pane: 'overlayPane' для слоя плиток).
  • Добавлен метод createPane карты для пользовательских панелей. #1742
  • Упрощены панели карты — удалена панель objectsPane, все панели теперь находятся на одном уровне.
  • Добавлена опция shadowPane для маркеров.
  • Добавлен метод getEvents для всех слоев, который возвращает хэш {event: listener, ...}; слои теперь автоматически управляют своими слушателями без необходимости делать это в onAdd/onRemove.
  • Добавлены методы togglePopup, setPopupContent, getPopup, isPopupOpen для всех слоев. #2279 #2292* Улучшена производительность добавления/удаления слоев при наличии контрола слоев (вместо прослушивания любых событий добавления/удаления слоев, контрол прослушивает только события добавления слоев в конфигурации).
  • Исправлен метод getBounds класса FeatureGroup для корректной работы при наличии круговых маркеров.
  • Удалено событие tilelayersload класса Map.
  • Удалены события open и close класса Popup в пользу событий add и remove для последовательности.
  • Перемещена вся логика, связанная со слоями, из Map.js в Layer.js.
  • Улучшен метод bindPopup класса FeatureGroup для поддержки функции для генерации содержимого всплывающей подсказки, что значительно уменьшает потребление памяти при добавлении всплывающих подсказок к большому количеству слоев (см. @patrickarlt). #3109 #3059
  • Добавлена интерактивность ImageOverlay (мышиные события и т. д.) (см. @snkashis). #3009 #1727
  • Добавлен метод getBounds для ImageOverlay (см. @brunob). #2848
  • Переименована опция clickable в interactive (см. @AndriiHeonia). #2838 #2499
  • Изменено значение по умолчанию z-index для панелей, чтобы оставить больше места для кастомизации (с участием @patrickarlt). #3591 * Улучшено механизм пулинга событий DOM для слоев (с участием @yohanboniface). Leaflet/Leaflet#3307 #3450 #3307

Кроме того, реализация событий слоев была переписана для использования делегирования событий, что значительно улучшило производительность добавления/удаления и сократило потребление памяти. #3032 #46### Улучшения API TileLayer и проекций

Код TileLayer и все, что связано с проекциями, прошло значительную рефакторизацию, документированную в PR #2247. Включает следующие изменения (в дополнение к более чистому и простому коду):

Улучшения API TileLayer

Эти изменения делают реализацию пользовательских сеточных слоев для Leaflet намного проще.

  • Большая часть логики TileLayer была перемещена в новый класс GridLayer (который TileLayer теперь наследует, расширяя его специфической логикой для серверов плиток).
  • Удален TileLayer.Canvas в пользу более гибкого и мощного GridLayer.
  • Улучшена логика обертывания плиток и ограничений в TileLayer, чтобы она работала прозрачно и полностью зависела от используемого CRS; устранены необходимость хаков TileLayer при использовании пользовательских проекций.
  • Добавлена поддержка неправильных плиток (см. @IvanSanchez). #3573 #3570
  • Удален параметр url в событиях tileload и tileloadstart (получите его через tile.src).

Улучшения API проекцийЭти изменения были направлены на удаление жестко закодированных логик проекций из классов Leaflet, сделав их прозрачными и управляемыми выбранным CRS. Они делают использование Leaflet с пользовательскими проекциями (включая плоские карты) намного проще и устраняют необходимость в уродливых хаках в плагине Proj4Leaflet. * Добавлен CRS.Earth, который служит базой для всех земных систем координат (EPSG3857 и т. д.). #2345

  • Добавлено свойство bounds класса Projection, которое определяет границы для различных проекций (Mercator и т. д.) в проекционных координатах (автор @perliedman).
  • Добавлены свойства wrapLat и wrapLng класса CRS, которые определяют, происходит ли обертывание мира по заданной оси и в каком диапазоне. По умолчанию установлены как [-180, 180] для EPSG:3857, EPSG:4326, EPSG:3395.
  • Добавлены методы wrapLatLng классов CRS и Map (второй зависит от выбранного CRS).
  • Добавлено свойство infinite класса CRS, которое отключает границы (мир может продолжаться бесконечно в любом направлении), по умолчанию для CRS.Simple.
  • Добавлены методы getProjectedBounds класса CRS и getPixelWorldBounds класса Map, которые возвращают границы мира в проекционных координатах в зависимости от масштаба (получены из свойства bounds класса Projection) (автор @perliedman).* Добавлен метод unproject класса CRS, который преобразует координаты в единицах, зависящих от CRS, в координаты LatLng (автор @sowelie).
  • Добавлен метод distance(latlng1, latlng2) класса Map, который учитывает CRS и работает с плоскими проекциями. #2345 #1442
  • Улучшена аппроксимация Circle эллипсом в земных проекциях. #2345
  • Исправлено EPSG:4326, чтобы иметь правильную пирамиду тайлов (2x1 тайла на корневом уровне).
  • Исправлено Projection.SphericalMercator, чтобы проектировать в метрические единицы (автор @calvinmetcalf).
  • Исправлено определение worldCopyJump класса Map, чтобы работать для других проекций.
  • Исправлено Circle, чтобы работать с плоскими проекциями. #2 Yöntem #1465
  • Исправлена точность управления масштабом в проекциях, отличных от EPSG:3857. #2345
  • Исправлено некорректное поведение ImageOverlay в некоторых нестандартных проекциях. #3011

Улучшения анимаций и поддержка дробного масштабированияКод анимаций в Leaflet претерпел значительное переписывание (основной PR: #2382), что привело к улучшениям, таковым как:

  • Множественное буферное кэширование плит для более плавного масштабирования с меньшим количеством мерцаний
  • Оптимальная анимация пути (map.flyTo) для масштабирования к определенному местоположению по кривой (одновременно масштабируя и панорамируя)
  • Поддержка дробного масштабирования — теперь вы можете выполнять действия, такие как map.setZoom(12.45), и это просто работает.
  • Слои теперь используют событие zoom в дополнение к viewreset для анимации масштабирования кадр за кадром. #3278

Улучшения пользовательского опыта* Улучшена инерционная поведение панорамирования, чтобы избежать разрывов во время анимации при быстром панорамировании. #2360

  • Улучшена инерционная прокрутка для более приятного и естественного ощущения (с помощью @RickMohr). Leaflet/Leaflet#3063 #3063 #3062 #2987
  • Добавлена анимация плавного исчезновения попапов.
  • Улучшена поддержка клавиатуры для игнорирования нажатий клавиш с модификаторами (Ctrl, Alt, Meta) для избежания конфликтов с системными сочетаниями клавиш.
  • Попапы теперь закрываются при нажатии клавиши Escape (с помощью @snkashis). #951 #3000
  • Улучшена поддержка масштабирования клавиатурой для масштабирования на 3 уровня, если нажата клавиша Shift (с помощью @yohanboniface). #3024
  • Улучшена панель управления слоями для прокрутки при наличии большого количества слоев (с помощью @rowanwins). #3571 #3167### Разные улучшения производительности
  • Значительно улучшена производительность создания объекта LatLng (в 8 раз).
  • Улучшена производительность создания объектов слоев.
  • Значительно улучшена производительность добавления слоев FeatureGroup (и соответственно GeoJSON) и обработки событий (в 10 раз) за счет реализации более эффективного механизма распространения событий. #2311
  • Улучшена производительность использования памяти для событий Leaflet и событий DOM.
  • Улучшена производительность метода off класса Evented примерно в 2 раза.

Другие изменения в API, нарушающие обратную совместимость

  • Изменено, чтобы метод off класса DomUtil требовал атрибут context, если вы удаляете слушатель, который был ранее добавлен с определенным контекстом.

  • Удален метод DomUtil.getViewportOffset, так как он больше не требуется.

  • Удалены методы DomUtil.getTranslateString и DomUtil.getScaleString.

  • Удален метод DomUtil.documentIsLtr.

  • Удалены константы RAD_TO_DEG, DEG_TO_RAD и MAX_MARGIN класса LatLng.

  • Переименован метод Util.limitExecByInterval в Util.throttle.### Другие улучшения API

  • Добавлен класс Evented, от которого теперь наследуются многие классы Leaflet (вместо смешивания методов событий в каждом классе), при этом сохраняется старый синтаксис includes: L.Mixin.Events. #2310

  • Улучшена оптимизация класса Class options для прототипного наследования вместо копирования в дочерних классах, что приводит к более эффективному использованию памяти, быстрее создаваемым объектам и возможности автоматического распространения изменений родительских опций на всех дочерних классах (автор @jfirebaugh). #2300 #2294

  • Добавлен переменный {r} в url класса TileLayer для добавления префикса "@2x" на устройствах с поддержкой Retina (автор @urbaniak). #2296

  • Добавлен метод ceil класса Point (автор @perliedman).

  • Добавлен метод wrapNum класса Util для обертывания числа в определённом диапазоне.

  • Улучшен метод L.bind для использования встроенной функции bind современных браузеров и предварительного добавления реальных аргументов к привязанным.

  • Добавлен второй аргумент maxMargin в метод equals класса LatLng.

  • Добавлены методы setClass и getClass класса DomUtil.

  • Улучшен метод move класса Marker для включения oldLatlng (автор @danzel). #2412* Добавлен метод mousemove класса Marker (автор @bullgare). #2798

  • Улучшен метод on/off класса DomEvent для поддержки пространственно-отделённых событий и литералов объектов ({type: fn}).

  • Добавлены методы toFront и toBack класса DomUtil.

  • Добавлен метод listens класса Evented как сокращение для hasEventListeners.

  • Добавлена опциональная поддержка центрированного скролла для опции touchZoom класса L.map (автор @mtmail). #2527

  • Добавлен метод getElement для всех слоёв, возвращающий связанный DOM-элемент.

  • Добавлен метод clone класса LatLng (автор @yohanboniface). #3390

  • Добавлены методы setMinZoom и setMaxZoom класса Map (автор @nathancahill). #3383 #3380

  • Добавлено originalEvent в данные событий drag и move для Map и Marker (от @yohanboniface). #3264

  • Добавлено опциональное свойство autoClose для Popup (от @jfirebaugh). #3018 #2716 #1853

  • Добавлены методы enable и disable для Control.Zoom. #3172

  • Добавлен аргумент для метода L.PolyUtil.clipPolygon, который контролирует округление (от @aparshin). #2926 #2917* Добавлено опциональное свойство wheelDebounceTime для Map (от @AndriiHeonia). #2836 #2501

  • Добавлено опциональное свойство uppercase для TileLayer.WMS (по умолчанию false) (от @kdeloach). #2831 #1751

  • Добавлено опциональное свойство alt для ImageOverlay (от @francis-liberty). #2767 #2564

  • Улучшена производительность метода L.Util.extend (от @fab1an). #2746

  • Добавлен метод stop для Map, который останавливает панорамирование или анимацию flyTo.

  • Добавлено опциональное свойство maxBoundsViscosity для Map, которое контролирует, насколько сильно карта сопротивляется перетаскиванию за пределы максимальных границ (установлено на 1 для жесткого ограничения) (от @IvanSanchez). #2224 #3510 #1673

  • Добавлен метод overlaps для Bounds и LatLngBounds (от @IvanSanchez). #2981 #3508

  • Добавлено опциональное свойство crossOrigin для ImageOverlay (от @patrickarlt). #3594 #2621com/Leaflet/Leaflet/pull/2621)### Исправления ошибок

  • Исправлено поведение DomUtil on, чтобы сделать возможным добавление одного и того же слушателя к одному и тому же элементу для нескольких контекстов.

  • Исправлена ошибка, которая вызывала ошибку при попытке перезагрузки карты при выгрузке (автор @gamb). #2410

  • Исправлено чрезмерное размытие неретина-тайлов на ретина-устройствах iOS.

  • Исправлена ошибка с кнопкой закрытия попапа в IE7/8. #2351

  • Исправлено искажение проекции ImageOverlay на более низких уровнях масштабирования.

  • Исправлена ошибка, при которой слои не вызывали события popupopen и popupclose, когда создавался объект попапа вручную и передавался в bindPopup. #2354

  • Исправлено появление переключения масштабирования в виде прямоугольника под маркерами. #1813

  • Исправлено поведение Map panInsideBounds, чтобы принимать границы в виде массива (автор @RLRR). #3489

  • Исправлено сохранение состояния маркера draggable при удалении и повторном добавлении на карту (автор @IvanSanchez). #3488

  • Исправлено отсутствие работы инерции при параллельном движении к осям (автор @rikvanmechelen). #3432* Исправлено перекрытие свойства max-width для изображений и SVG внутри попапов (автор @yohanboniface). #3452

  • Исправлено поведение курсора при отключенной возможности перетаскивания (автор @juliensoret). #3219 #3233

  • Исправлено поведение LatLng wrap, чтобы не упускать высоту (автор @IvanSanchez). #3420

  • Исправлено отсутствие обнаружения Firefox для Android как мобильного устройства (автор @IvanSanchez). #3419

  • Исправлено бесконечное вращение при последовательном вызове setMaxBounds (автор @IvanSanchez). #3410 #3320

  • Исправлено странное поведение Map locate, которое могло вызывать неожиданные эффекты (автор @sindre). Leaflet/Leaflet#3404

  • Исправлена неработающая масштабировка в браузерах Project Spartan (автор @mitchless). #3379

  • Исправлен баг в методе getCenter класса Polygon, когда все точки находятся в одном пикселе (автор @yohanboniface). #3372

  • Исправлен баг в методе getCenter класса Polyline, когда линия очень мала (автор @yohanboniface). #3371 * Исправлен баг, когда масштабирование с клавиатуры не работало на клавиатурах типа azerty. #3362

    • Исправлен баг, когда переход на маркер с помощью клавиш навигации приводил к сбоям позиционирования элементов управления (автор @IvanSanchez). #3340 #3333
    • Исправлен баг, когда метод panBy класса Map не всегда возвращал this (автор @Trufi). #3303
    • Исправлен баг, когда добавление управления масштабирования с клавиатуры переключало фокус на карту (автор @Jakobud). #3275 #3159
    • Исправлены условия гонки, приводящие к заморозке карты. #3270 #3268 #2693 #2478
    • Исправлены условия гонки на iOS при очень маленьком перемещении карты. #2519
    • Исправлен баг в методе toGeoJSON класса Polygon, когда экспортировался MultiPolygon в некоторых случаях (автор @yohanboniface). #2977
    • Исправлен баг в классе TileLayer.WMS, когда все опции передавались как параметры WMS. #2972
    • Исправлен баг, когда условие гонки приводило к уменьшению масштаба при вызове map.fitBounds(map.getBounds()). #2957* Исправлен баг, когда маркер, который можно было перемещать, переставал быть перемещаемым после вызова метода setIcon. #2578
  • Исправлены проблемы производительности и стабильности при работе с касанием на IE11 (автор @danzel). #3007 #2820

  • Исправлена проблема с распараллеливанием (race condition) с TileLayer, когда maxNativeZoom = 0. #3004

  • Исправлена проблема с FeatureGroup setStyle, которая не влияла на opacity ImageOverlay (внесено @opie). #3008 #2246

  • Исправлены инициализационные хуки классов, которые не вызывались для родительских классов (внесено @jfirebaugh). #2545

  • Исправлена проблема с добавлением управления, которое уже было добавлено, или удалением управления, которое отсутствует (внесено @jfirebaugh). #3020 #2877

  • Исправлены проблемы с неправильной инерцией при низком уровне масштабирования, когда включена опция worldCopyJump у Map (внесено @flemenach). #3038 #2624

  • Исправлена проблема, когда getMaxZoom иногда возвращала неверный результат внутри события baselayerchange у Control.Layers (внесено @CloudNiner). #3040 #2625com/CloudNiner)). #3048 #2318

    • Исправлена проблема, когда при масштабировании одной карты отключалось перетаскивание на всех других картах на странице (внесено @kdeloach). #3050 #2539
    • Исправлена проблема с распараллеливанием (race condition) у Map getSize, которая могла возвращать неверный результат (внесено @kshepard). #3052 #3031
    • Исправлен фабричный метод L.latLng, чтобы он принимал altitude в качестве третьего аргумента (внесено @lonelyelk). #3070.
    • Исправлен фабричный метод L.latLng, чтобы он не выбрасывал ошибку при пустом массиве входных данных (внесено @lonelyelk). #3080 #3079
    • Исправлены всплывающие окна, чтобы они имели стандартный цвет (внесено @snkashis). #3115 #3112 #333
    • Исправлено поведение Map locate, чтобы не изменять переданный объект опций (автор @tmcw). #3173
    • Исправлено отображение Canvas полилиний, чтобы они не рисовались, если ширина линии установлена в 0 (автор @optical). #3203 * Предотвращено исчезновение векторных слоев из-за ошибки Joomla (автор @SniperSister). #2886 #2881 Leaflet/Leaflet#2881
    • Исправлено поведение IE Metro при касании объектов на верхнем слое карты Leaflet (автор @nikgavalas). #2954
    • Исправлено поведение векторных слоев, которые не отображались на сайтах с SVG max-width, установленной в 100% (автор @SniperSister). #2886 #2881
    • Исправлено поведение Marker setIcon, чтобы не сбрасывалось смещение якоря попапа (автор @bullgare). #2872
    • Исправлено поведение Map при указании zoom в опциях и последующем установлении центра (автор @AndriiHeonia). #2849 #1871
    • Исправлено поведение TileLayer setUrl, чтобы событие loading корректно срабатывало (автор @bennlich). #2802 #2675 #2827
    • Исправлено поведение слоя плиток, чтобы он корректно удалялся после превышения максимального уровня масштабирования (автор @francis-liberty). #2764 #1905* Исправлена утечка памяти при использовании Marker.setIcon (автор @jfgodoy). #2811
  • Исправлено поведение LatLng.distanceTo, чтобы оно не возвращало NaN при равных местоположениях. #2705

  • Исправлена ошибка, при которой параметр maxNativeZoom класса TileLayer не работал корректно при задании опции bounds (внесено @mlegenhausen). #2725 #2704

  • Исправлена ошибка, при которой плитки, касающиеся края области снаружи, загружались (внесено @IvanSanchez). #2981 #3508

  • Исправлена утечка памяти в методе map.remove (внесено @IvanSanchez). #3514 #2718

  • Исправлена ошибка, при которой панель управления слоями сворачивалась при наведении указателя мыши на отключенный радиокнопку (внесено @rowanwins). #3564 #2771 Leaflet#2771

  • Исправлена ошибка, при которой GeoJSON не принимал null геометрию (внесено @pglotov). #3585

  • Исправлено случайное горизонтальное смещение всплывающего окна на 1 пиксель (внесено @patrickarlt). #3587 #3526 #3586com/Leaflet/Leaflet/issues/3586) #3525

  • Исправлены некоторые несоответствия в событиях мыши для векторных слоев Canvas (внесено @wpf500). #3590 #3568 #3618

  • Исправлен контроль масштаба для нестандартных CRS (внесено @cmulders). #3614

Разнообразные улучшения* Улучшена система сборки (jake build) для отчета о размере сжатой библиотеки.

  • Добавлены имя версии и номер коммита в сборки Leaflet. #2276
  • Добавлен логотип Leaflet в векторном формате как src/images/logo.svg.
  • Добавлена ссылка на CSS Leaflet в package.json (от @bclinkinbeard). #2432
  • Переключено на ESLint для проверки стиля кода и ужесточено требование к проверкам. #3176
  • Добавлен раздел руководства по плагинам о загрузчиках модулей и публикации плагинов (от @patrickarlt). [#2955](https Yöntem: https://github.com/Leaflet/Leaflet/pull/2955)
  • Исправлена система сборки для работы в папке Leaflet, не являющейся репозиторием git (от @cschwarz). #2758

0.7.7 (2015-10-26)

  • Исправлена регрессия, которая иногда могла приводить к исчезновению плиток при пинч-зуме на устройствах iOS.
  • Исправлена регрессия, связанная с обнаружением msPointer в IE10 (влияющая на Leaflet.draw и некоторые другие плагины) (от @danzel) #3842 #3839 #3804
  • Исправлена ошибка, при которой событие mouseout могло срабатывать после удаления векторного элемента (от @sambernet). #3849 #3829
  • Исправлены взаимодействия с прикосновением в браузере Edge (от @mitchless & @Neorth). #3853 #3379
  • Исправлена ошибка, при которой удаление группы слоев из группы объектов могло вызывать ошибку (от @Lambdac0re). #3869Примечание: мы пропустили версию 0.7.6, так как случайно опубликовали сломанный билд на NPM.

0.7.5 (2015-09-02)

  • Исправлена регрессия, которая приводила к прекращению анимации в Leaflet.markercluster. #3796 ## 0.7.4 (2015-09-01)
  • Исправлена ошибка, возникшая из-за недавнего обновления Chrome, которая не позволяла карте реагировать на взаимодействия до тех пор, пока не загрузятся все плитки. #3689
  • Исправлена ошибка, при которой слои плиток не учитывали свои опции minZoom или maxZoom. (от @ivansanchez) #3778
  • Улучшена детекция веб-браузеров, поддерживающих касание, в частности исправлена проблема с касанием в режиме эмуляции устройства в Chrome и Firefox. (от @ivansanchez) #3520 #3710
  • Исправлена ошибка, при которой слои плиток с опцией maxNativeZoom не проверяли границы должным образом. (от @jlaxon) #3415
  • Исправлена ошибка, при которой всплывающие окна не запоминали, какой слой их вызвал после вызова bindPopup(popup). (от @Eschon) #3675
  • Исправлено гонение между маркерами и анимацией масштабирования. (от @perliedman) #3152
  • Исправлена ошибка с отступом Map.fitBounds. (от @bsstoner) #2489
  • Разрешено использование событий dblclick и contextmenu для путей на холсте. (от @ivansanchez) #3482
  • Разрешено использование опции fillRule для заполненных многоугольников на холсте. (от @w8r)com/w8r)) #3477
  • Разрешено использование опций lineCap и lineJoin для линий на холсте (от @northerneyes) #3156
  • Обновлены определения bower для соответствия лучшим практикам (от @guptaso2) #2726 #3448

0.7.3 (2014-05-23)* Добавлена поддержка bower и component (внесено @calvinmetcalf). #2561 #1903

  • Исправлена ошибка, при которой перетаскивание карты за пределы окна вызывало ошибку в Firefox. #2610

  • Исправлена ошибка, при которой некоторые касания на Android не работали, часто ошибочно воспринимались как перетаскивания (внесено @axefrog). #2503

  • Исправлена ошибка, при которой клики на Android игнорировались, если они происходили слишком быстро. #2303

  • Исправлена ошибка, при которой последовательное вызов setView (или аналогичных методов) мог вызвать зависание карты. #2521 #2236 #2485

  • Исправлена ошибка, при которой Control.Layers не удалялся правильно (внесено @jack-kerouac). #2569

  • Исправлена ошибка, при которой событие load для TileLayer не срабатывало правильно. #2510

  • Исправлена ошибка, при которой удаление Canvas-базированных путей не вызывало событие remove (внесено @adimitrov). #2486

  • Исправлена ошибка, при которой после сжатия карты пальцами (pinch-zoom) могли возникнуть дробные значения масштабирования (внесено @danzel). #2400 #1943## 0.7.2 (2014-01-17)

  • Исправлена ошибка, возникшая после обновления Google Chrome 32, которая смещала все мышиные события на прокрученных страницах. #2352

  • Исправлена ошибка, которая могла препятствовать загрузке плит при использовании нестандартных размеров плит. #2288

  • Исправлена ошибка, при которой опция maxNativeZoom не работала с TMS-слоями плит. (внесено @perliedman). #2321 #2314 ## 0.7.1 (2013-12-06)

  • Исправлена ошибка, при которой быстрое использование функции масштабирования с помощью пинча могло оставить карту с дробным значением масштаба, что приводило к сбоям в загрузке тайлов (внесено @danzel). #2269 #2255 #1934

  • Исправлены проблемы с мерцанием тайлов на некоторых старых устройствах Android 2/3 путем отключения уязвимого ускоренного CSS (внесено @danzel). #2216 #2198

  • Исправлена регрессия, которая иногда приводила к ошибке при начале масштабирования с помощью пинча как первого действия на карте (внесено @danzel). #2259 #2256

  • Отменены оптимизации L.Util.template, чтобы позволить использовать Leaflet в средах, запрещающих eval, таких как расширения браузеров (прирост производительности был незначительным) (внесено @calvinmetcalf). #2217 #2209 #1968

  • Исправлена регрессия, при которой Map invalidateSize могла привести к непредсказуемым результатам при вызове до инициализации карты (внесено @Zverik). #2250 #2249* Исправлена регрессия, при которой FeatureGroup содержащий другие группы перезаписывал исходное значение layer в событиях мыши (внесено @gumballhead). #2253 #2252

  • Исправлена регрессия, при которой CircleMarker.setLatLngs не возвращал this (внесено @radicalbiscuit). #2206## 0.7 (2013-11-18)

Улучшения

Улучшения удобства использования

  • Добавлена поддержка сенсорных устройств IE11 (вклад @danzel, @DanielX2 и @fnicollet). #2039 #2066 #2037 #2102
  • Добавлено сочетание клавиш Shift+Double-Click для уменьшения масштаба карты. #2185
  • Значительно улучшена дизайн элементов управления на мобильных устройствах. #1868 #2012
  • Исправлены и улучшены стили элементов управления и всплывающих окон для IE7-8.
  • Сделаны незначительные улучшения стилей элементов управления для десктопных браузеров.
  • Улучшена поддержка навигации с помощью клавиатуры, чтобы карта не теряла фокус при нажатии на элемент управления (вклад @jacobtoye). #2150 #2148
  • Улучшена работа maxBounds: теперь она не заставляет увеличивать минимальный масштаб, и правильно закрепляет границы при масштабировании (вклад @kapouer и @mourner). #2187 #1946 #2081 #2168 #1908

Улучшения API карт* Сделан аргумент zoom метода setView класса Map необязательным. #2056

  • Добавлена опция maxZoom к методу fitBounds класса Map. #2101
  • Добавлена опция bounceAtZoomLimits класса Map, которая позволяет карте "прыгать" при пинч-зуме за пределы допустимого уровня (ранее это работало так, но теперь можно отключить это поведение) (вкладка @trevorpowell). #1864 #2072
  • Добавлено свойство distance к событиям dragend классов Map и Marker. #2158 #872
  • Добавлена поддержка центрированного скролла и двойного клика для увеличения (вкладка @jfirebaugh). #1939
  • Добавлено поле timestamp к событию locationfound класса Map. #584
  • Улучшено поведение метода invalidateSize класса Map для немедленного вызова события moveend, если не указано debounceMoveend: true (вкладка @jfirebaugh). #2181

Улучшения API слоев плиток* Добавлена опция maxNativeZoom класса TileLayer, которая позволяет отображать слои плиток на уровнях масштабирования выше максимального путем увеличения плиток. #1802 #1798

  • Добавлено событие tileloadstart класса TileLayer (вкладка @tmcw). #2142 #2140
  • Улучшено определение размера мира класса TileLayer (используется для обертывания и ограничения плиток), чтобы он был выведен из CRS вместо жесткого кодирования, что делает его легче использовать с пользовательскими проекциями (вкладка @perliedman). #2160#### Улучшения API маркеров
  • Добавлены CSS-классы для перетаскиваемых маркеров для более удобной кастомизации (от @snkashis). #1902 #1916
  • Добавлено событие add для класса Marker (от @tohaocean). #1942
  • Добавлен метод getPopup для класса Marker (от @scottharvey). #618 #1197
  • Добавлена опция alt для класса Marker для добавления альтернативного текста к маркерам (от @jimmytidey). #2112

Улучшения API слоев векторных данных* Добавлена опция className для классов Path для добавления пользовательских имен классов к векторным слоям.

  • Добавлены опции lineCap и lineJoin для класса Path (внесено @palewire). #1843 #1863 #1881

  • Добавлена возможность передачи опций векторных слоев в GeoJSON (внесено @kapouer). #2075

  • Улучшена функция setLatLngs класса Polygon для поддержки отверстий (внесено @aparshin). #2095 #1518

  • Добавлена поддержка 3D формата данных GeoJSON и опциональный аргумент altitude в конструкторе LatLng (внесено @Starefossen). #1822

  • Добавлен метод openPopup для классов MultiPolygon и MultiPolyline. #2046#### Улучшения API всплывающих окон

  • Добавлен метод update для класса Popup. #1959

  • Добавлены опции autoPanPaddingTopLeft и autoPanPaddingBottomRight для класса Popup (внесено @albburtsev). #1972 #1588

  • Добавлен метод getContent для класса Popup. #2100

  • Добавлен метод getLatLng для класса Popup (внесено @AndreyGeonya). #2097#### Разные улучшения API

  • Добавлены методы setUrl и getAttribution для ImageOverlay и опция attribution (внесено @stsydow). #1957 #1958

  • Добавлена поддержка локализации для управления масштабом (внесено @Danielku15). #1953 #1643 #1953

  • Значительно улучшена производительность метода L.Util.template (влияет на L.TileLayer) за счет введения кэшированной компиляции шаблонов (внесено @calvinmetcalf). #1969 #1968 #1554

  • Добавлен метод getSize для CRS для получения размера мира в пикселях (внесено @perliedman). #2160

  • Добавлен класс CSS leaflet-drag-target к элементу под курсором при перетаскивании для более гибкой кастомизации. #2164 #1902

  • Улучшена производительность методов addClass, removeClass, hasClass для L.DomUtil и исправлено для работы с элементами SVG. #2164

Улучшения рабочего процесса разработки* Добавлена официальная FAQ.

  • Удалены и переупорядочены старые стили для IE в leaflet.css, а файл leaflet.ie.css удален, поэтому условное комментарие для IE не требуется при включении Leaflet. #2159
  • Добавлен класс CSS leaflet-oldie к контейнеру карты для IE7-8 для удобного стилирования. #2159
  • Официально поддержка IE6 прекращена. Никто не заботится об этом, и Leaflet все равно должен быть доступен на нем. #2159
  • Улучшена система сборки для проверки ошибок JavaScript в файлах спецификаций. #2151
  • Исправлено выполнение команды jake для запуска тестов перед сборкой исходного кода. #2151
  • Переключено основное имя файла в package.json на незаминифицированную версию для NPM/Browserify (автор @icetan). #2109

Исправления ошибок#### Исправления регрессии версии 0.6

  • Исправлена утечка памяти в iOS7, которая могла привести к падению Safari при обработке большого количества объектов (например, 1000 маркеров) (см. @danzel). #2149 #2122
  • Исправлена ошибка, вызывавшая задержку при начале панорамирования в Chrome (см. @jfirebaugh). #2163
  • Исправлена регрессия, которая делала слой управления неразворачиваемым в Firefox. #2029
  • Исправлена регрессия, которая приводила к ошибке при использовании опции worldCopyJump: true (см. @fastrde). #1904 #1831 #1982
  • Исправлена регрессия, при которой первый клик на карте после закрытия всплывающего окна игнорировался (см. @fastrde). #1537 #1963 #1925
  • Исправлена регрессия, при которой L.DomUtil.getMousePosition выбрасывал ошибку, если аргумент контейнера не был предоставлен (см. @scooterw). #1826 #1928 #1926
  • Исправлена регрессия с позиционированием векторных слоев при масштабировании на устройствах с поддержкой касания IE10+ (см. @danzel). #2002com/Leaflet/Leaflet/issues/2002) #2000
  • Исправлена регрессия с поведением maxBounds при инерционном панорамировании за пределы границ. #2168

Общие исправления ошибок* Исправлена ошибка, при которой карта могла зависнуть, если была центрирована и сразу же перезакреплена при инициализации. #2071

  • Исправлена ошибка, при которой все карты, кроме первой на странице, не отслеживали изменение размера окна. #1980
  • Исправлена ошибка, при которой плитки в проекции EPSG:3395 смещались (с участием @aparshin). #2020
  • Исправлена ошибка, при которой контроль масштаба отображал неверный масштаб на страницах с box-sizing: border-box.
  • Исправлена ошибка, при которой кнопка управления масштабом не отображалась как отключенная, если карта была инициализирована на пределе масштабирования. #2083
  • Исправлена ошибка, при которой прямоугольное масштабирование также активировало событие клика по карте (с участием @fastrde). #1951 #1884
  • Исправлена ошибка, при которой двойной клик на карте сразу после перетаскивания не активировал событие клика (с участием @fastrde). #1952 #1950
  • Исправлена ошибка, при которой содержимое обновлялось дважды при открытии всплывающего окна. #2137* Исправлена ошибка, которая иногда могла вызывать бесконечный цикл панорамирования при использовании maxBounds (с участием @kapouer и @mourner). #2187 #1946 #2081 #2168 #1908#### Исправления ошибок в браузерах
  • Исправлена ошибка, при которой клавиша + перестала масштабировать карту в Firefox 22+ (внесено @fastrde). #1943 #1981
  • Исправлена ошибка, при которой вызов Map.remove вызывал ошибку в IE6-8. #2015
  • Исправлена ошибка, при которой isArray не работала в редких случаях в IE9. #2077
  • Исправлена ошибка, при которой Firefox иногда выдавал предупреждения консоли при анимации маркеров. #2090
  • Исправлена ошибка, при которой мышь не обрабатывалась правильно на страницах с RTL в некоторых случаях (внесено @danzel). #1986 #2136

Устранение ошибок для мобильных устройств* Исправлена ошибка, при которой плитки могли исчезнуть после масштабирования в Chrome 30+ для Android (автор @danzel). #2152 #2078

  • Исправлена ошибка на IE10+ touch, при которой масштабирование также вызывало клик (автор @danzel). #2117 #2094

  • Исправлена ошибка на IE10+ touch, при которой контролы не теряли состояние "нажато" после нажатия (автор @danzel). #2111 #2103

  • Исправлена ошибка, при которой клик на метках управления слоями на iOS вызывал ошибку (авторы @olemarkus и @dagjomar). #1984 #1989#### Устранение ошибок для API карт

  • Исправлена ошибка, при которой Map getCenter возвращала старый результат после изменения размера контейнера карты (автор @jfirebaugh). #1940 #1919

  • Исправлены проблемы округления в Map invalidateSize при изменении размера карты на нечетное количество пикселей (автор @russelldavis). #1931

  • Исправлена ошибка, при которой Map removeLayer не возвращала this в определенном случае (автор @jfirebaugh).

  • Исправлена ошибка, при которой вызов Map setZoom до setView вызывал ошибку. #1449#### Устранение ошибок для API слоев

  • Исправлена ошибка, при которой Popup метод setLatLng необоснованно сбрасывала содержимое и обновляла макет; теперь работает намного быстрее. #2167

  • Исправлена ошибка, при которой toGeoJSON слоев, происходящих из GeoJSON GeometryCollection и MultiPoint, работала некорректно (не была round-tripped). #1956

  • Исправлены зависимости GeoJSON в конфигурации сборки, которые могли привести к поломке пользовательской сборки в некоторых ситуациях (с помощью @alubchuk). #1909

  • Исправлена ошибка, при которой обновление местоположения пула CircleMarker popup не обновлялось после вызова setLatLng (с помощью @snkashis). #1921 #1927

  • Исправлена ошибка, при которой обновление якоря пула Marker метод setIcon не обновлялось (с помощью @snkashis). #1874 #1891

  • Исправлена ошибка, при которой GeoJSON не выбрасывал описательную ошибку, если полигон имел внутренний контур с нулевой длиной (с помощью @snkashis). #1917 #1918

  • Исправлена ошибка, при которой FeatureGroup ломался при использовании дочерних слоев без событий (с помощью @tmcw). #2032 #1962* Исправлена ошибка, при которой CircleMarker.getRadius всегда возвращал null. #2016 #2017

  • Исправлена ошибка, при которой TileLayer.WMS не работала с WMS 1.3 & EPSG4326 проекцией (с помощью @Bobboya). #1897

  • Исправлена ошибка, при которой события e.layer FeatureGroup иногда были пустыми в старых версиях IE. #1938

Разные исправления ошибок API* Исправлена ошибка, при которой L.latLngBounds не принимала простую форму объекта LatLng (внесено @Gnurfos). #2025 #1915

  • Исправлена ошибка, при которой L.Util.template не работала с двойными кавычками в строке (внесено @jieter). #1968 #2121 #2120
  • Исправлена ошибка, при которой контроль атрибуции, добавленный на карту после атрибутивных слоев, не имел соответствующих атрибутивных данных (внесено @snkashis). #2177 #2178

0.6.4 (2013-07-25)

  • Исправлена регрессия, при которой fitBounds и setMaxBounds могли заморозить браузер в некоторых ситуациях. #1895 #1866
  • Исправлена ошибка, при которой клик на карте на странице с горизонтальным скроллом вызывал скролл страницы вправо (внесено @mstrelan). #1901

0.6.3 (2013-07-17)### Исправления регрессий

  • Исправлена регрессия, при которой координаты мыши были некорректными в некоторых случаях позиционирования карты (внесено @scooterw). #1826 #1684 #1745 #1
  • Исправлена регрессия, при которой карта не реагировала на перетаскивание в областях, покрытых ImageOverlay (внесено @jfirebaugh). #1821
  • Исправлена регрессия, при которой события layerremove и layeradd срабатывали до завершения соответствующих действий (внесено @jfirebaugh). #1846
  • Исправлена регрессия, при которой параметр worldCopyJump: true вызывал сбои карты на малых уровнях масштабирования (внесено @danzel). #1831
  • Исправлена регрессия, при которой тень маркера Marker не анимировалась при масштабировании после использования setIcon. #1768
  • Исправлена регрессия, при которой карта зависала при попытке анимации масштабирования до добавления слоев карты. #1484 #1845
  • Исправлена регрессия, при которой элемент управления слоями и всплывающие подсказки закрывались при клике внутри в Internet Explorer < 9. #1850* Исправлена регрессия, при которой прокрутка содержимого всплывающей подсказки не работала в Firefox (внесено @jfirebaugh). ### Исправления ошибок* Исправлено мигание векторных объектов на Safari Mac для экранов меньше 1920px. #902
  • Исправлена ошибка, при которой GeoJSON игнорировал не-объектные геометрии, переданные в массиве. #1840
  • Исправлена ошибка, при которой minZoom и maxZoom карты не всегда перезаписывали значения, полученные из добавленных слоев плиток. #1848
  • Исправлена ошибка, при которой TileLayer.Canvas не перерисовывался сразу после вызова redraw (автор @tofferrosen). #1797 #1817
  • Исправлена ошибка, при которой FeatureGroup продолжал вызывать событие layerremove при вызове removeLayer, даже если указанный слой отсутствовал в группе (автор @danzel). #1847 #1858
  • Исправлена ошибка, при которой Marker setOpacity не возвращал маркер (автор @freepius44). #1851
  • Исправлена ошибка, при которой удаление элемента карты из DOM до завершения панорамирования могло привести к бесконечному выполнению setInterval (автор @rutkovsky). #1825 #1856
  • Исправлены мобильные стили для элементов leaflet-bar.

Улучшения* Добавлена возможность передачи опций анимации масштабирования и панорамирования в setMaxBounds (автор @davidjb). #1834

  • Добавлен метод getLatLngs для MultiPolyline и MultiPolygon. #1839### Улучшения рабочего процесса разработки

  • Файлы сборки Leaflet (*.js файлы в папке dist) были удалены из репозитория и теперь создаются автоматически на каждом коммите для веток master и stable с помощью Travis CI. Ссылки на загрузку находятся на странице загрузки Leaflet.

0.6.2 (2013-06-28)

  • Исправлена ошибка, вызывавшая неправильный порядок наложения слоев плиток при использовании прозрачности < 1 (внесено @jfirebaugh). #1804 #1790 #1667
  • Исправлена регрессия, вызывавшая выбор плиток при двойном щелчке абсолютно позиционированных карт с векторными слоями на них в Firefox (WTF!) (внесено @jfirebaugh). #1807
  • Исправлена регрессия, вызывавшая неправильный курсор при перетаскивании карты с векторными слоями, а также выбор плиток при двойном щелчке (внесено @jfirebaugh). #1800
  • Исправлена регрессия, вызывавшая мерцание плиток около границы карты при анимации масштабирования в Chrome.

0.6.1 (2013-06-27) * Исправлена регрессия с быстрым масштабированием колесом мыши в Firefox (внесено @jfirebaugh). #1788

  • Исправлена регрессия с неработающим масштабированием на картах с проекцией EPSG3395. #1796
  • Исправлена ошибка, при которой кнопки масштабирования наследовали стили наведения Bootstrap. #1791## 0.6 (2013-06-26)

Критические изменения

  • Перемещено кодирование редактирования полилиний в плагин Leaflet.draw (где это гораздо лучше подходит вместе со всеми другими обработчиками редактирования и рисования). API остался прежним.
  • Удалена поддержка окружений, которые расширяют Object.prototype (к счастью, это стало историей в наши дни).
  • Метод invalidateSize класса Map больше не вызывает события move и moveend, если размер карты не изменился. #1819

Улучшения#### Улучшения удобства использования и производительности

  • Улучшенная концепция управления масштабом - чище, проще, более доступна (в основном благодаря @jacobtoye). #1313
  • Обновлен значок управления слоями (Control.Layers), разработанный Волькером Кинкелем, добавлено разрешение для Retina и SVG-источник. #1739
  • Добавлена клавиатурная доступность для маркеров (теперь можно переключаться на них с помощью клавиши Tab и нажимать Enter для поведения клика). #1355
  • Улучшена анимация масштабирования TileLayer для устранения мерцания при переключении между слоями или быстром масштабировании (разработано @mourner с множеством исправлений от @danzel). #1140 #1437 #52
  • Незначительно улучшены стандартные стили всплывающих окон
  • Улучшена атрибутивная панель для большей незаметности (без фразы "powered by", только ссылка на Leaflet). Вы можете удалить префикс с помощью map.attributionControl.setPrefix(''), если это необходимо.
  • Улучшена работа масштабирования для предотвращения смещения координат при переключении масштаба без панорамирования. #426
  • Улучшено поведение двойного клика для масштабирования с фиксацией кликнутой точки (разработано @ansis).#1582
  • Улучшено поведение перетаскивания для предотвращения застревания при перемещении мыши за пределы iframe, содержащего карту (разработано @jfirebaugh). #1277 #1782 #1786
  • Улучшено поведение выбора области для масштабирования для возможности отмены при нажатии клавиши Escape (разработано @yohanboniface). #1438
  • Улучшено поведение всплывающих окон маркеров для закрытия при клике на маркер, если окно открыто (разработано @popox). #1761
  • Значительно улучшена производительность удаления множества слоев (разработано @jfgirard с исправлениями от @danzel). #1141 #1514

Улучшения API##### Улучшения Layers API

  • Добавлен метод toGeoJSON для различных типов слоев, что позволяет сохранять ваши слои Leaflet в формате GeoJSON. (автор @jfirebaugh). #1462 #712 #1779

  • Добавлена опция coordsToLatLng для объекта GeoJSON для работы с GeoJSON, имеющим координаты, отличные от WGS84 (спасибо @moonlite). #888 #886

  • Улучшена работа Marker, чтобы переиспользовать элементы DOM иконок при изменении иконок на лету (например, решает проблемы при изменении иконки при наведении мыши) (авторы @robpvn & @danzel). #1726 #561 #1753 #1754

  • Добавлено свойство latlng в данные события мыши для Marker. #1613

  • Добавлен метод hasLayer для LayerGroup (автор @rvlasveld). #1282 #1300

  • Добавлен метод getLayers для LayerGroup (автор @tmcw). #1469

  • Добавлен метод getLayer для LayerGroup (автор @gumballhead). #1650

  • Улучшен метод removeLayer для LayerGroup, чтобы он также принимал id слоя (автор @gumballhead). #1642* Добавлена опция pointerEvents для объекта Path для установки свойства pointer-events на векторных слоях, использующих SVG (автор @inpursuit). #1053

  • Улучшена работа Polygon, чтобы фильтровать последнюю точку, если она равна первой (чтобы исправить проблемы с полигонами GeoJSON) (автор @snkashis). #1153 #1135

  • Улучшены пути с clickable: false, чтобы позволять событиям мыши проходить через нижележащие объекты (автор @snkashis). #1384 #1281

    • Улучшена функция L.Util.template (и соответствующие ей параметры TileLayer, связанные с URL) для поддержки функций для значений данных (автор @olegsmith). #1554
    • Добавлен метод getContainer для TileLayer (автор @tmcw). #1433
    • Исправлен метод redraw для TileLayer.Canvas для правильной цепочки вызовов (автор @jieter). #1287
    • Добавлен параметр crs для TileLayer.WMS для возможности использования WMS с CRS, отличным от CRS карты (автор @kengu). #942 #945
    • Добавлены события popupopen и popupclose для различных слоев (автор @Koc). #738 * Добавлен параметр keepInView для Popup, который предотвращает смещение попапа за пределы экрана при открытии (автор @lapo-luchini). #1308 #1052
    • Добавлен метод togglePopup для Marker (автор @popox). #1761
    • Добавлен параметр closeOnClick для Popup, который позволяет переопределить параметр closeOnClick для Map для конкретных попапов (автор @jfirebaugh). #1669
    • Улучшен метод bindPopup для Marker и Path для поддержки передачи объектов Popup (автор @snkashis). #1385 #1208 #1402
    • Добавлен метод setPopupContent для Marker (автор @snkashis). #1373
Улучшения Map API
  • Улучшены все методы изменения представления карты (Map) (setView, panTo, setZoom, fitBounds и т. д.), чтобы они принимали объект опций, включая возможность точного контроля анимаций масштабирования и панорамирования (включая возможность принудительного отключения/включения и т. д.). #1617 #1616 #340 #483 #1164 #1420 * Улучшена методика fitBounds карты (Map), чтобы она принимала опции padding (или paddingTopLeft и paddingBottomRight), позволяя вам масштабировать область с определенным отступом в пикселях (обычно для контролов). #859
  • Улучшена методика invalidateSize карты (Map), чтобы она принимала объект опций (animate и pan, последняя контролирует, будет ли карта панорамироваться при изменении размера). (авторы: @jacobtoye и @mourner). #1766 #1767
  • Добавлен метод setZoomAround карты (Map), который позволяет масштабировать карту, сохраняя определенную точку неподвижной (используется для масштабирования при прокрутке и двойном щелчке). #1157
  • Добавлен метод remove карты (Map), который позволяет правильно уничтожить карту и очистить все события, а также добавлен соответствующий событие unload (авторы: @jfirebaugh и @mourner). #1434 #1101 #1621
  • Добавлен обработчик tap карты (Map), который теперь содержит все мобильные хаки для включения быстрых тапов и долгих удержаний, а также опция tapTolerance, которая указывает количество пикселей, на которое можно сдвинуть палец, чтобы клик все еще срабатывал. * Добавлен параметр zoomAnimationThreshold карты (Map), который позволяет установить максимальное различие масштаба, при котором может происходить анимация масштабирования. #1377
  • Улучшена методика openPopup карты (Map), чтобы она также принимала сигнатуру (content, latlng) как сокращение.
  • Улучшена методика closePopup карты (Map), чтобы она по желанию принимала объект popup для закрытия. #1641
  • Улучшена методика stopLocate карты (Map), чтобы она прерывала сброс представления карты при вызове locate с опцией setView. #747
  • Улучшено поведение Map, чтобы выбрасывать исключение, если указанный идентификатор контейнера не найден (автор @tmcw). #1574
  • Улучшено событие locationfound для Map, чтобы передавать все данные местоположения (направление, скорость и т. д. ). #984 #584 #987 #1028
  • Добавлено событие resize для Map. #1564
  • Добавлено событие zoomlevelschange для Map, которое срабатывает при изменении текущего диапазона масштабирования (минимум/максимум) (автор @moonlite). #1376##### Улучшения API управления * Добавлены генерические классы панели инструментов для повторного использования разработчиками плагинов (используются в контроле масштабирования).
  • Добавлены события baselayerchange, overlayadd и overlayremove для Map и Control.Layers (внесены @calvinmetcalf и @Xelio). #1286 #1634
  • Добавлен метод getContainer для Control. #1409
Разные улучшения API * Добавлена совместимость классов Leaflet с синтаксисом CoffeeScript классного наследования (внесены @calvinmetcalf). #1345 #1314
  • Добавлен метод cleanAllEventListeners (сокращение off без аргументов) для всех объектов, поддерживающих события (внесены @iirvine). #1599
  • Добавлен метод addOneTimeEventListener (сокращение once) для всех объектов, поддерживающих события (внесены @iirvine). #473 #1596
  • Добавлена возможность передачи координат в виде простых объектов ({lat: 50, lng: 30} или {lat: 50, lon: 30}). #1412
  • Добавлены методы getNorth, getEast, getSouth, getWest для LatLngBounds (внесены @yohanboniface). #1318
  • Добавлена поддержка AMD (Leaflet теперь регистрирует себя как модуль leaflet для AMD) (с исправлениями от @sheppard). #1364 #1778
  • Добавлен метод L.Util.trim (внесены @kristerkari). #1607#### Улучшения рабочего процесса разработки
  • Перешли с Jasmine на Mocha с Expect.js (matcherами) и Sinon (шпионами) для тестов (внесено @tmcw и @jfirebaugh). #1479
  • Добавлена интеграция с Karma для запуска тестов в безголовом режиме PhantomJS и отчетности о покрытии кода (внесено @edjafarov). #1326 #1340
  • Добавлена интеграция с Travis CI для проверки стиля кода и автоматического запуска тестов для каждого коммита и запроса на внесение изменений (внесено @edjafarov). #1336
  • Значительно улучшено покрытие тестами
  • Добавлена совместимость с ленивой оценкой скриптов (внесено @kristerkari). #1288 #1607

Исправления ошибок#### Общие исправления ошибок

  • Исправлено множество проблем с ограничением области карты с помощью maxBounds у Map. #1491 #1475 #1194 #900 #1333
  • Исправлены случайные аварийные завершения работы, отключив анимацию при изменении масштаба более чем на 4 уровня. #1377
  • Исправлена ошибка, вызывающая рывки при панорамировании с помощью клавиатуры в некоторых случаях (с участием @tmcw). #1710
  • Исправлена ошибка, вызывающая нежелательное прокручивание страницы к верхней части карты при фокусировке. #1228 #1540
  • Исправлена ошибка, при которой клик на маркере с открытым попапом вызывал повторное появление попапа (с участием @snkashis). #506 #1386
  • Исправлена ошибка, при которой состояние отключения кнопок масштабирования не обновлялось при изменении минимального и максимального масштаба (с участием @snkashis). #1372 #1328
  • Исправлена ошибка, при которой небольшое прокручивание не всегда вызывало уменьшение масштаба карты (с участием @cschwarz). #1575com/Leaflet/Leaflet/pull/1575)
    • Исправлено отображение контура закрытого попапа после клика на кнопку закрытия и повторного открытия попапа (с участием @dotCypress). #1537
    • Исправлена ошибка, препятствующая загрузке плиток во время панорамирования.
    • Исправлена ошибка с событиями contextmenu на попапах, которые просачивались на карту (с участием @snkashis). #1730 #1732
    • Исправлены ошибки загрузки плиток 404 при просмотре карты за пределами границ мира.
    • Исправлены смещённые события мыши в некоторых случаях при наличии карты внутри родительского элемента с относительной позиционировкой (с участием @scooterw и @jec006). #1670 #1684 #1745 #1744
    • Исправлен баг, при котором порядок z-index слоев плиток иногда нарушался после сброса вида. #1422#### Устранение багов в браузерах * Устранена проблема нежелательной прокрутки страницы в Firefox 17+ при масштабировании карты прокруткой (автор @jfirebaugh). #1789 #1788
  • Устранена проблема с смещением координат мыши в Firefox, если карта находится внутри позиционированного блока на прокрученной странице (автор @joschka). #1365 #1322
  • Устранена проблема с отсутствием работы инструмента выбора области (box zoom) в некоторых случаях в Firefox 18+ (автор @fabriceds). #1405
  • Устранена проблема с невозможностью изменения прозрачности слоя TileLayer в IE 7-8 (авторы @javisantana & @danzel). #1084 #1396 #1371
  • Устранена проблема с некорректной работой Leaflet в PhantomJS (автор @rassie). #1501

Устранение багов на мобильных устройствах * Устранена проблема с панелью управления слоями на WinPhone8/IE10 Touch (автор @danzel). #1635 #1539

  • Устранена проблема с двойным срабатыванием события click на WinPhone8/IE10 Touch (автор @danzel). #1694
  • Устранена проблема с двойным срабатыванием события click при одном нажатии в Android (авторы @jerel & @mourner). #1227 #1263 #1785 #1694
  • Устранена проблема с немедленным выбором слоя при нажатии на панель управления слоями в режиме сворачивания в Android (автор @danzel). #1784 #1694#### Устранение багов в API ####

Общие исправления в API #### * Исправлено поведение события клика мыши внутри всплывающих окон не распространяющееся за пределы карты (исправляет проблемы с jQuery.live и некоторыми мобильными фреймворками, которые полагаются на прослушивание кликов по документу). #301

  • Исправлено поведение, при котором слушатель событий продолжал вызываться даже если он был удален на том же событии в другом слушателе (автор @spamdaemon). #1661 #1654

  • Исправлено поведение, при котором фабрики L.point и L.latLng не передавали значения null и undefined.

  • Исправлено цепочное выполнение функции removeListener в DomEvent (автор @pagameba).

  • Исправлено поведение, при котором removeEventListener выбрасывал ошибку, если на объекте не было зарегистрировано событий (автор @tjoekbezoer). #1632 #1631

  • Исправлено поведение, при котором методы equals и contains класса Point не принимали точки в виде массива.

  • Исправлено поведение, при котором метод extend класса LatLngBounds вызывал ошибку при расширении неопределенного объекта (автор @korzhyk). #1688

  • Исправлено поведение, при котором метод removeAttribution класса Control.Attribution вызывал ошибку при удалении несуществующего атрибута, что приводило к повреждению текста атрибуции. #1410com/Leaflet/Leaflet/issues/1410)

  • Исправлено поведение, при котором вызов метода setView на невидимой карте вызывал ошибку (автор @jfire). #1707

  • Исправлена совместимость с Browserify (автор @jfirebaugh). #1572##### Исправления в API слоев

  • Исправлена ошибка, при которой путь к умолчанию иконке маркера не всегда корректно определялся в некоторых случаях в IE6-7 (автор @calvinmetcalf). #1294

  • Исправлена ошибка, при которой параметры TileLayer.WMS не экранировались в URL (автор @yohanboniface). #1317

  • Исправлена ошибка, при которой слои, принадлежащие к нескольким группам объектов, не корректно распространяли события (автор @danzel). #1359

  • Исправлена ошибка, при которой опция tileSize для TileLayer.WMS игнорировалась (автор @brianhatchl). #1080

  • Исправлена ошибка, при которой конструктор Polyline мог перезаписывать исходный массив (авторы @snkashis и @danzel). #1439 #1092 #1246 #1426

  • Исправлена ошибка, при которой отключение/включение перетаскивания маркеров не всегда работало корректно (авторы @snkashis и @escaped). #1471 #1551

  • Исправлен TileLayer, чтобы предотвратить некорректное поддоменное имя в случае отрицательных координат плит (автор @malexeev). #1532* Исправлены полигоны для нормализации отверстий (удаление последней точки, если она равна первой) (автор @jfirebaugh). # #1459

  • Исправлена опция html для DivIcon, чтобы она принимала значение 0 (автор @stuporglue). #1633

  • Исправлена ошибка с Canvas-базированными путями, выбрасывающими ошибку при событии mousemove в определённых условиях. #1615

  • Исправлена ошибка, при которой копии мира не загружались, если вы задаёте bounds для TileLayer (автор @ansis). #1618

  • Исправлена ошибка, при которой событие load для TileLayer не всегда корректно срабатывало. #1565

    • Исправлена совместимость TileLayer.WMS с некоторыми старыми серверами, которые принимают параметры запроса только в верхнем регистре. #1751
    • Исправлена ошибка с неправильным определением L.Icon.Default.imagePath в некоторых случаях. #1657
    • Исправлена ошибка, при которой метод onRemove слоя вызывался даже если слой никогда не добавлялся (от @jfirebaugh). #1729
    • Исправлена ошибка, при которой вызов setRadius на слое CircleMarker, использующем Canvas, приводил к бесконечному циклу (от @snkashis). #1712 #1713com/Leaflet/Leaflet/issues/1713) #1728
    • Переименован файл marker-icon@2x.png в marker-icon-2x.png для устранения проблемы совместимости с Google AppEngine. #1552 #1553
    • Исправлена ошибка, при которой события popupclose и popupopen не вызывались для мультиполигонов и мультиполилиний (от @tmcw). #1681
Исправления ошибок в API карт * Исправлена ошибка, при которой Map fitBounds не работала корректно с большими границами (спасибо @MaZderMind). #1069
  • Исправлена ошибка, при которой Map hasLayer не обрабатывала null объекты (от @rvlasveld). #1282 #1302

  • Исправлена ошибка, при которой событие Map moveend срабатывало до события dragend при перетаскивании (от @oslek). #1374

  • Исправлена ошибка, при которой панорамирование с инерцией вызывало избыточное событие Map movestart при начале инерции (от @oslek). #1374

  • Исправлена ошибка, при которой событие Map moveend срабатывало повторно при изменении размера окна, даже если размер карты не изменился (от @oslek). #1374

  • Исправлена ошибка, при которой событие Map moveend иногда не срабатывало после перетаскивания (часто при использовании трекпада).

  • Исправлена ошибка, которая вызывала ошибку при попытке получить состояние карты в обработчике события Map load. #962

  • Возвращено событие Map autopanstart (оно было удалено в предыдущих версиях). #1375

  • Исправлена ошибка при удалении ранее установленных Map maxBounds (от @jec006). #1749 #1750## 0.5.1 (2013-02-06)

  • Исправлена регрессия, при которой GeoJSON не принимала массивы FeatureCollection (от @snkashis). #1299 #1298

  • Исправлена регрессия, при которой CircleMarker setRadius не работала, если была вызвана до добавления слоя на карту (от @danzel). #1342 #1297

0.5 (2013-01-17)

Поведенческие изменения

Убедитесь, что прочитали эти изменения, чтобы избежать проблем при обновлении с более старых версий:

  • Удалено стандартное обертывание/ограничение координат LatLng (-180, -90 до 180, 90), обертывание перемещено в явный метод (LatLng.wrap).
  • Отключено по умолчанию определение worldCopyJump для Map (перемещение обратно к оригинальному копию мира при панорамировании за его пределы). Включите его явно, если вам это нужно.
  • Изменены стили для управления масштабом (вам может потребоваться обновить пользовательские стили для него).

Улучшения

Улучшения удобства использования

Взаимодействие * Добавлена поддержка касания для масштабирования, панорамирования и двойного касания для устройств IE10 с поддержкой касания и Metro приложений (разработано @danzel и @veproza с помощью @oliverheilig). #1076 #871
  • Улучшена панорамирование с инерцией для более естественного и плавного перемещения.

  • Улучшены указатели мыши для перетаскивания в Chrome, Safari и Firefox (теперь используются указатели в виде хватательной руки).

  • Улучшена кривая анимации масштабирования для лучшего ощущения в целом.

  • Улучшена реактивность масштабирования с помощью колеса мыши.

  • Улучшена производительность анимации панорамирования в IE6-8.##### Управление

  • Улучшен дизайн управления масштабом для более приятного, нейтрального и соответствующего другим управлениям вида, что делает его легче кастомизировать и подстроить под различные веб-дизайны. Изображения +/- заменены на текст.

  • Улучшено управление масштабом для масштабирования на 3 уровня, если вы удерживаете Shift при нажатии на кнопку.

  • Улучшено управление масштабом для отключения визуально кнопок при достижении минимального/максимального масштаба. #917

  • Улучшены стили управления масштабом.

  • Улучшены стили запасного управления для IE6-8.##### Другое

  • Добавлена поддержка retina для маркеров (через опции iconRetinaUrl и shadowRetinaUrl в классе Icon) (внесено @danzel). #1048 #1174

  • Добавлено retina-размерное изображение маркера по умолчанию вместе с стандартным (включая SVG-источник и с некоторыми улучшениями дизайна) (внесено @danzel). #1048 #1174

  • Улучшена производительность обновления/удаления векторов на Canvas-бэкенде (внесено @danzel). #961

  • Общий размер изображений сокращен с 10КБ до 3.2КБ с помощью Yahoo Smush. it. Благодарим Петера Ронса за предложение.

Улучшения API

  • Заменён L.Transition на более простое и лучшее L.PosAnimation.
  • Добавлен метод Class addInitHook для добавления конструкторных хуков к любым классам (хорошая точка расширения для авторов плагинов). #1123
  • Добавлен метод Map whenReady (внесено @jfirebaugh). #1063
  • Добавлен необязательный аргумент delta к методам zoomIn и zoomOut класса Map (по умолчанию 1).
  • Добавлен метод isValid к классам LatLngBounds и Bounds (внесено @domoritz). #972
  • Добавлен метод equals к классу Point.
  • Добавлен метод getSize к классу Bounds.* Улучшена обработка событий клика для маркеров и векторов, теперь событие распространяется на карту, если нет слушателей (внесено @danzel). #834 #1033
  • Добавлены методы unbindPopup и closePopup к классу Path.
  • Добавлены события add и remove к классу Path.
  • Добавлены опции riseOnHover и riseOffset к классу Marker (для перемещения маркеров на передний план при наведении мыши, отключены по умолчанию) (внесено jacobtoye). #914 #920
  • Добавлены события move и remove к классу Marker.
  • Добавлено событие contextmenu к классу Marker. #223
  • Добавлена опция zoomAnimation к классу Popup (полезно отключать при отображении контента Flash внутри попапов #999).
  • Добавлены события layeradd и layerremove к классу FeatureGroup (внесено @jacobtoye). #1122
  • Добавлено событие baselayerchange к классу Control. Layers (внесено @jfirebaugh). #1064
  • Улучшена поддержка HTML в названиях слоев в классе Control. Layers (внесено @aparshin). #1055 #1099
  • Добавлен класс CRS. Simple в список встроенных CRS и улучшен для более удобного использования (теперь у него другие стандартные масштабы и преобразования), см. пример в debug/map/simple-proj.html.* Удалены свойства Browser.ua, Browser.gecko, Browser.opera (больше не нужны).
  • Добавлены сокращения L.extend, L.bind, L.stamp, L.setOptions для соответствующих методов L.Util.
  • Отключена очистка содержимого контейнера карты при инициализации карты (в результате исправления #278).
  • Добавлена функция L.Util.isArray (автор @oslek). #1279
  • Добавлены события mouseover и mouseout для векторных слоев на основе canvas (автор @snkashis). #1403
  • Добавлен метод Map.eachLayer для перебора всех слоев, добавленных на карту (автор @jfirebaugh). #1457
  • Добавлена опция bounds для TileLayer для ограничения загрузки плиток определенной областью (автор @adimitrov). #991

Исправления ошибок#### Общие исправления ошибок* Исправлена ошибка с разорванными плитками и масштабированием в RTL-разметках (автор @danzel). #1099 #1095

  • Исправлена ошибка с анимацией панорамирования, когда она прыгала к конечному положению при попытке перетащить карту.

  • Исправлена ошибка, при которой одинарный щелчок с нажатой клавишей Shift увеличивал масштаб карты до максимального уровня.

  • Исправлена ошибка, при которой увеличение масштаба происходило во время выполнения анимации панорамирования.

  • Исправлена ошибка, при которой перетаскивание карты происходило во время выполнения анимации изменения масштаба.

  • Исправлена ошибка, при которой небольшое скроллинг с помощью тачпада или одноосного колеса мыши не всегда приводило к изменению масштаба. #1039

  • Исправлена ошибка, при которой panBy не округлял значения смещения (поэтому было возможно сделать карту размытой). #1085

  • Исправлена ошибка, при которой невозможно было прокручивать панель управления слоями с помощью колеса мыши.

  • Исправлена регрессия, при которой плитки WMS не обрабатывались на линиях даты. #970

  • Исправлена ошибка, при которой взаимодействие с мышью влияло на ширину границ контейнера карты (автор @mohlendo). #1204 #1205com/Leaflet/Leaflet/pull/1205)

    • Исправлена ошибка, при которой анимация масштабирования векторов была необычной при использовании Canvas для рендеринга (автор @danzel). #1187 #1188
    • Исправлена ошибка, при которой ограничение максимальных границ не работало при навигации карты с помощью клавиатуры (автор @snkashis). #989 #1221#### Исправления ошибок API
  • Исправлена ошибка, когда метод bringToBack класса TileLayer не работал корректно в некоторых случаях (внесено @danzel). #963 #959

  • Исправлена ошибка, когда удаление слоя плиток во время перетаскивания приводило к ошибке (внесено @danzel). #965 #968

  • Исправлена ошибка, когда средний маркер не удалялся после удаления двух конечных узлов из полилинии (внесено @Svad). #1022 #1023

  • Исправлена ошибка, когда событие load класса Map происходило слишком поздно (после moveend, и т. д.) (внесено @jfirebaugh). #1027

  • Исправлен метод getBounds класса Circle, чтобы он возвращал правильные границы и работал без добавления круга на карту. #1068

  • Исправлена ошибка, когда удаление Popup на событии viewreset приводило к ошибке (внесено fnicollet и @danzel). #1098 #1094

  • Исправлена ошибка, когда метод drawTile класса TileLayer.Canvas не получал уровень масштабирования плитки в аргументах.

  • Исправлена ошибка, когда метод resetStyle класса GeoJSON не полностью сбрасывал слой на его исходный стиль. #1112* Исправлена ошибка, которая приводила к бесконечной рекурсии при использовании фабрики latLngBounds с координатами в виде строковых значений. #933

  • Исправлено цепное выполнение методов setIcon, setZIndexOffset, update класса Marker. #1176

  • Исправлена ошибка с взаимодействием мыши, когда контейнер карты содержал дочерние элементы с позиционированием, отличным от абсолютного. #278

  • Исправлена ошибка с конфликтами прозрачности заливки/линии при использовании Canvas для рендеринга (внесено @danzel). #1186 #1889

  • Исправлена ошибка, когда метод bindPopup класса FeatureGroup не учитывал опции. #1273

  • Исправлена ошибка, при которой слои на основе Canvas не правильно очищали событие клика при удалении (автор @snkashis). #1006 #1273

  • Исправлена ошибка, при которой CircleMarker setStyle не учитывал radius (автор @fdlk). #1012 #1013

  • Исправлена ошибка, при которой null геометрии GeoJSON вызывали ошибку вместо пропуска (автор @brianherbert). #1240

  • Исправлена ошибка, при которой слои на основе Canvas передавали неверное свойство события layer при клике (автор @snkashis). #1215com/Leaflet/Leaflet/issues/1215) #1243

  • Исправлена ошибка, при которой TileLayer.WMS не работала корректно, если базовый URL содержал параметры запроса (автор @snkashis). #973 #1231

  • Исправлена ошибка, при которой удаление полилинии в режиме редактирования не очищало редактирующиеся обработчики (автор @mehmeta). #1233

  • Исправлена ошибка, при которой удаление векторного слоя с привязанным попапом не очищало событие клика корректно (автор @yohanboniface). #1229

  • Исправлена ошибка, при которой GeoJSON объекты с GeometryCollection не передавали свойства в функцию pointToLayer (автор @calvinmetcalf). #1097

  • Исправлено цепочное выполнение метода eachLayer класса FeatureGroup. #1452

Исправления багов в браузере * Исправлен баг с заморозкой карты после масштабирования на Android 4.1. #1182

  • Исправлен баг, при котором иногда появлялась ошибка "Не реализовано" в IE6-8 (авторы: @bryguy и @lookfirst). #892 #893
  • Исправлена совместимость с расширением SmoothWheel для Firefox (автор: @waldir). #1011
  • Исправлен баг с разметкой попапов в IE6-7 (автор: @danzel). #1117
  • Исправлен баг с некорректной прозрачностью коробочного масштабирования в IE6-7 (автор: @jacobtoye). #1072
  • Исправлен баг с выбрасыванием ошибки JavaScript при коробочном масштабировании в IE6-7 (автор: @danzel). #1071
  • Исправлен баг, при котором TileLayer bringToFront/Back() выбрасывали ошибку в IE6-8. #1168
  • Исправлена проверка типа массива в коде для более последовательной работы в кросс-фреймовой среде (автор: @oslek). #1279
  • Исправлен баг с невозможностью использования клавиши - в Firefox 15+ (спасибо @mattesCZ). #869

0.4.5 (2012-10-25) * Исправлен баг с некорректной анимацией масштабирования в IE10 (автор: @danzel). #1007

  • Исправлен баг с некорректной анимацией масштабирования в Chrome 23+ (автор: @danzel). #1060 #1056## 0.4.4 (2012-08-07)

Улучшения

  • Улучшена функция GeoJSON setStyle, теперь она также принимает функцию (как соответствующий параметр).
  • Добавлена функция GeoJSON resetStyle(layer), полезная для сброса состояния наведения.
  • Добавлено свойство feature для слоев, созданных с помощью GeoJSON (содержащее данные GeoJSON-фичи).
  • Добавлены методы bringToFront и bringToBack для FeatureGroup (чтобы они работали для мультиполигонов).
  • Добавлен необязательный аргумент animate к методу Map invalidateSize (автор: @ajbeaven). #857

Исправления ошибок

  • Исправлена ошибка, при которой плитки иногда исчезали при первоначальной загрузке карты на Android 2/3 (автор: @danzel). #868
  • Исправлена ошибка, при которой карта иногда мигала у границы при масштабировании или панорамировании в Chrome.
  • Исправлена ошибка, при которой методы bringToFront и bringToBack класса Path не возвращали this.
  • Удалена привязка масштабирования при нажатии клавиш Win/Meta (так как это мешает глобальным клавишным сочетаниям). #869

0.4.2 (2012-08-01) * Исправлена ошибка, при которой радиокнопки управления слоями не работали корректно в IE7 (автор @danzel). #862

  • Исправлена ошибка, при которой метод removeLayer класса FeatureGroup удалял попапы удаленных слоев, даже если они не были добавлены группой (влияло на плагин Leaflet.markercluster) (автор @danzel). #861## 0.4.1 (2012-07-31)

  • Исправлена ошибка, при которой тени маркеров отображались как полностью черные в IE6-8. #850

  • Исправлена ошибка, при которой вычисление масштаба контролем масштаба было некорректным. #852

  • Исправлено повреждение класса-фабрики L.tileLayer.wms (автор @mattcurrie). #856

  • Улучшено обнаружение Retina для опции detectRetina класса TileLayer (автор @sxua). #854

0.4 (2012-07-30)

Упрощение API

Версия Leaflet 0.4 содержит несколько улучшений API, которые позволяют использовать более простую, jQuery-подобную синтаксис (пример), при этом оставаясь совместимым с предыдущим подходом (так что вы можете использовать оба стиля):

  • Улучшены большинство методов и опций для принятия значений LatLng, LatLngBounds, Point и Bounds в виде массива (например, map.panTo([lat, lng]) будет таким же, как map.panTo(new L.LatLng(lat, lng)))
  • Добавлен метод addTo ко всем классам слоев, например, marker.addTo(map) эквивалентен map.addLayer(marker)
  • Добавлены методы-фабрики к большинству классов для возможности записи кода без ключевого слова new, названные так же, как классы, но начинающиеся с маленькой буквы, например, L.map('map') эквивалентно new L.Map('map')

Заметные новые функции* Добавлена настраиваемая инерция панорамирования — после быстрого панорамирования карта замедляется в том же направлении.

  • Добавлена навигация с помощью клавиатуры для панорамирования/увеличения с помощью стрелок клавиатуры и клавиш + и - (автор @ericmmartinez). #663 #646
  • Добавлена плавная анимация увеличения маркеров, векторных слоев, изображений и всплывающих окон (автор @danzel). #740 #758
  • Добавлена поддержка пинч-зума на Android 4+ (автор @danzel). #774
  • Добавлена редактирование полилиний и полигонов. #174
  • Добавлен управление масштабом.
  • Добавлен класс DivIcon, который позволяет легко создавать легкие div-маркеры.
  • Добавлен векторный слой Прямоугольник (автор @JasonSanford). #504

Улучшения

Улучшения удобства использования* Улучшена работа увеличения так, чтобы при быстром увеличении или уменьшении карта не стала пустой (автор @danzel). #7 #729

  • Панорамирование теперь работает даже при наличии маркеров в начальной точке (что полезно для карт с большим количеством маркеров). #506
  • Улучшена производительность панорамирования (теперь нет пропущенных кадров).
  • Улучшена производительность пинч-зума на мобильных устройствах Chrome и Firefox.
  • Улучшена производительность карты при изменении размера окна.
  • Заменено использование box-shadow на border для элементов управления на мобильных устройствах для улучшения производительности.
  • Улучшена стилистика по умолчанию для всплывающих окон.
  • Добавлена опция detectRetina для класса TileLayer (по умолчанию false), которая позволяет изображениям отображаться в более высоком разрешении на дисплеях iOS с Retina (автор @Mithgol). #586#### Изменения в API GeoJSON

API GeoJSON улучшен для упрощения и повышения гибкости (пример). Изменения не совместимы с предыдущими версиями, поэтому убедитесь, что обновили старый код. Добавлена опция style для стилизации векторных слоев, которая может быть передана либо как объект, либо как функция (для стилизации векторных слоев в соответствии с свойствами GeoJSON). Добавлена опция filter для исключения объектов, которые не соответствуют определённым критериям (например, на основе свойств). Добавлена опция onEachFeature для выполнения определённого кода на каждом слое объектов на основе его свойств (привязка всплывающих окон и т.д.). Изменена сигнатура функции pointToLayer, чтобы предоставлять geojson в дополнение к latlng при создании точечных слоев для большей гибкости.

Изменения в API иконок

API иконок был улучшен для большей гибкости, но одно из изменений несовместимо с предыдущими версиями: теперь вам нужно передавать различные свойства иконок (например, iconUrl) внутри объекта опций (пример).* Свойства Icon были преобразованы в опции, сигнатура конструктора изменена на Icon(options).

  • Опции по умолчанию для маркерной иконки были перемещены в класс L.Icon.Default (который наследуется от L.Icon).

  • Добавлена опция className для Icon для назначения пользовательского класса иконке.

  • Добавлена опция shadowAnchor для Icon для установки точки прикрепления тени.

  • Все опции Icon, кроме iconUrl, стали необязательными (если они не указаны, они будут выбраны автоматически или реализованы с помощью CSS). Центральная точка по умолчанию находится в центре (если указан размер), и в противном случае может быть установлена через CSS с помощью отрицательных отступов.#### Изменения в API управления

  • Добавлены методы setPosition и getPosition ко всем элементам управления, а также возможность передачи определённой позиции как опции при создании элемента управления.

  • Упрощена реализация управления (теперь больше "магии" происходит под капотом).

  • Заменены уродливые константы позиции управления (например, L.Control.Position.TOP_LEFT) на более удобные строки ('topleft', 'bottomright', и т.д.).

Другие изменения API, несовместимые с предыдущими версиями* Улучшена сигнатура конструктора TileLayer для интерполяции значений шаблона URL из опций (удалён третий аргумент urlParams).

  • Изменена опция scheme: 'tms' на tms: true.
  • Удалён метод Map locateAndSetView (используйте locate с опцией setView: true).
  • Изменены опции minWidth и maxWidth всплывающих окон для применения к элементу содержимого, а не к целому всплывающему окну.
  • Перемещена аргумент prefix в options конструктора Control. Attribution.
  • Переименован L. VERSION на L. version.

Другие улучшения API

  • Улучшены методы on и off, чтобы они также принимали (eventHash[, context]), а также несколько событий, разделённых пробелами (спасибо @Guiswa). #770
  • Улучшен метод off, чтобы он удалял все слушатели события, если не было указано конкретное функциональное выражение (спасибо @Guiswa). #770 #691
  • Добавлен метод setZIndex для TileLayer для управления порядком слоёв (спасибо @mattcurrie). #837
  • Добавлена опция autoZIndex для Control. Layers (включена по умолчанию), чтобы сохранять порядок слоёв при переключении.
  • Добавлен метод redraw для TileLayer для перезапроса плиток (спасибо @greeninfo). #719
  • Добавлен метод setUrl для TileLayer для динамического изменения шаблона URL плиток.
  • Добавлены методы bringToFront и bringToBack для TileLayer, ImageOverlay и векторных слоёв. #185com/Leaflet/Leaflet/issues/185) #505
  • Добавлено событие loading для TileLayer, которое срабатывает, когда плитки начинают загружаться (спасибо @lapinos03). #177
  • Добавлен метод setParams для TileLayer.WMS для установки параметров WMS в реальном времени (спасибо @greeninfo). #719
  • Добавлена поддержка поддоменов для TileLayer.WMS ({s} в URL) (спасибо @greeninfo). #735
  • Добавлено свойство originalEvent для MouseEvent (спасибо @k4). #521
  • Добавлено свойство containerPoint для MouseEvent. #413
  • Добавлено событие contextmenu для векторных слоёв (спасибо @ErrorProne). #500
  • Добавлен метод eachLayer для LayerGroup для перебора его элементов.
  • Добавлены события mousemove и contextmenu для FeatureGroup (спасибо @jacobtoye). #816
  • Добавлена цепочка вызовов для методов DomEvent.
  • Добавлены псевдонимы on и off для методов addListener и removeListener класса DomEvent.
  • Добавлена глобальная переменная L_NO_TOUCH, которая отключает обнаружение касаний (установите её до подключения Leaflet), полезна для приложений для настольных компьютеров, созданных с использованием QT. #572* Добавлена опция dashArray для векторных слоёв для создания пунктирных линий (внесено @jacobtoye). #821 #165
  • Добавлен метод getBounds для класса Circle. #440
  • Добавлены методы getLatLng и getRadius для класса Circle (внесено @Guiswa). #655
  • Добавлен метод openPopup для всех векторных слоёв. #246
  • Добавлен публичный метод redraw для векторных слоёв (полезен, если вы напрямую изменяете их точки LatLng).
  • Добавлена опция opacity и метод setOpacity для класса Marker.
  • Добавлен метод update для класса Marker. #392
  • Улучшена работа метода openPopup для класса Marker, чтобы он не вызывал ошибку, если попап не существует. #507
  • Добавлена опция opacity и метод setOpacity для класса ImageOverlay. #438
  • Добавлена опция maxHeight для класса Popup, которая прокручивает содержимое попапа, если оно не помещается в заданную максимальную высоту.
  • Добавлен метод openOn(map) для класса Popup (аналогичен методу openPopup для класса Map).
  • Добавлен метод getContainer для класса Map (внесено @Guiswa). #654
  • Добавлены методы containerPointToLatLng и latLngToContainerPoint для класса Map. #474
  • Добавлен метод addHandler для класса Map.* Добавлены события mouseup и autopanstart для класса Map.
  • Добавлен метод pad для класса LatLngBounds, который возвращает расширенные границы на заданный процент (внесено @jacobtoye). #492
  • Перемещены стили курсора для перетаскивания из кода на JavaScript в CSS.

Исправления ошибок#### Общие исправления ошибок

  • Исправлена ошибка, при которой карта увеличивалась некорректно внутри контейнера с position: fixed (автор @chx007). #602

  • Исправлена ошибка, при которой масштабированные плитки не удалялись после увеличения в некоторых случаях (автор @cfis). #683

  • Исправлена ошибка, при которой карта не могла быть перетащена над многоугольником с обработчиком событий mousedown. #834#### Исправления ошибок API

  • Исправлена регрессия, при которой метод removeLayer не удалял соответствующую атрибуцию. #488

  • Исправлена ошибка, при которой кнопка закрытия попапа не работала для вручную добавленных попапов. #423

  • Исправлена ошибка, при которой событие клика на маркере переставало работать, если маркер был перемещен и затем отключено перемещение. #434

  • Исправлена ошибка, при которой метод setOpacity для TileLayer не работал, когда значение прозрачности устанавливалось обратно в 1.

  • Исправлена ошибка, при которой метод setStyle({stroke: false}) для векторного слоя не удалял линию и заливку. #441

  • Исправлена ошибка, при которой метод bindPopup для Marker не учитывал опцию offset.

  • Исправлена ошибка, при которой событие load для TileLayer не срабатывало, если некоторые плитки не загружались (внесено @lapinos03 и @cfis). #682

  • Исправлена ошибка, при которой удаление слоя GeoJSON вызывало ошибку. #685

  • Исправлена ошибка, при которой вызов метода clearLayer для GeoJSON вызывал ошибку (внесено @runderwood). #617

  • Исправлена ошибка, при которой метод setPosition для Control не всегда работал корректно (внесено @ericmmartinez). #657com/Leaflet/Leaflet/pull/657)

  • Исправлена ошибка, при которой метод Util.bind иногда терял аргументы (внесено @johtso). #588

  • Исправлена ошибка, при которой событие drag иногда срабатывало после события dragend. #555

  • Исправлена ошибка, при которой событие load для TileLayer срабатывало только один раз (внесено @lapinos03 и shintonik). #742 #177

  • Исправлена ошибка, при которой события попапа для FeatureGroup не очищались после удаления слоя из группы (внесено @danzel). #775

  • Исправлена ошибка, при которой метод DomUtil.removeClass не удалял пробелы в конце строки (внесено @jieter). #784

  • Исправлена ошибка, при которой попап маркера не учитывал смещение попапа.

  • Исправлена ошибка, приводившая к появлению ошибки при удалении полилинии внутри слушателя moveend.

  • Исправлена ошибка, при которой метод LayerGroup.addLayer не проверял, добавлен ли слой уже (от @danzel). 798

Исправления багов в браузерах * Исправлен баг с поломанным масштабированием на IE10 beta (автор @danzel). #650 #751

  • Исправлен баг, который мешал работе Leaflet на сайтах, использующих заголовок типа XHTML (автор lars-sh). #801
  • Исправлен баг, который приводил к пустым всплывающим окнам в IE при передаче узла DOM как содержимого (автор @nrenner). #472
  • Исправлен баг, который мешал использовать прокручиваемое содержимое внутри всплывающего окна из-за распространения события колеса мыши.
  • Исправлен баг, который приводил к прыганию/дребезжанию анимации панорамирования в некоторых случаях.
  • Исправлен баг, при котором размер всплывающего окна вычислялся неправильно в IE.
  • Исправлен баг, при котором курсор мигал при перетаскивании маркера.
  • Исправлен баг, при котором на IE9 у кликабельных путей отсутствовал курсор руки (автор naehrstoff). #671
  • Исправлен баг в IE, при котором иконки исчезали при изменении прозрачности (авторы @tagliala и DamonOehlman). #667 #600
  • Исправлен баг с установкой прозрачности на IE10 (автор @danzel). #796
  • Исправлен баг, при котором Control.Layers не работал на IE7. #652com/Leaflet/Leaflet/issues/652)
  • Исправлен баг, который мог вызывать ложные события mousemove при клике в Chrome (автор @stsydow). #757
  • Исправлен баг в IE6-8, при котором добавление заливки или контура на векторных слоях после инициализации с помощью setStyle могло сломать карту. #641
  • Исправлен баг с setOpacity в IE, при котором он не работал корректно, если использовался более одного раза на одном и том же элементе (автор @ajbeaven). #827
  • Исправлен баг в Chrome, при котором прозрачные углы управления иногда не могли быть нажаты (автор @danzel). #836 #575

Устранение ошибок в мобильных браузерах * Исправлена ошибка, которая иногда приводила к исчезновению карты полностью после масштабирования на iOS (автор @fr1n63). #580 #777

  • Исправлена ошибка, которая часто приводила к мерцанию векторных слоев при окончании перетаскивания на iOS (автор @krawaller). #18

  • Исправлена ошибка с ложными событиями клика на карте при сжатии-растяжении и клике на контроле слоев. #485

  • Исправлена ошибка, при которой одновременное касание карты двумя или более пальцами вызывало ошибку.

  • Исправлена ошибка, при которой контроль масштабирования не всегда был видимым на Android 3. #335

  • Исправлена ошибка, при которой открытие контрола слоев приводило к передаче клика на карту (автор @jacobtoye). #638

  • Исправлена ошибка, при которой ImageOverlay не растягивался правильно при масштабировании на Android 2. #651

  • Исправлена ошибка, при которой clearLayers для векторных слоев на базе Canvas (например, на Android 2) занимал неоправданно много времени. #785

  • Исправлена ошибка, при которой setLatLngs и подобные методы для векторных слоев на базе Canvas не обновляли слои сразу. #732## 0.3.1 (2012-02-14)

  • Исправлена регрессия, при которой стандартные иконки маркеров не работали, если URL включения Leaflet содержал строку запроса.

  • Исправлена регрессия, при которой плитки иногда мерцали черным при панорамировании на iOS.

0.3 (2012-02-13)

Основные возможности

  • Добавлен бэкенд Canvas для векторных слоев (полилинии, полигоны, круги). Это позволяет поддерживать векторные данные на Android < 3, и он также может быть предпочтительным для SVG в некоторых случаях для повышения производительности. Благодарим @florianf за большую часть этой работы.
  • Добавлен контроль слоев (Control.Layers) для удобного переключения слоев.
  • Добавлена возможность задания максимальных границ внутри которых пользователи могут панорамировать/масштабировать. #93

Улучшения

Улучшения удобства использования * Карта теперь сохраняет центр после изменения размера.

  • При прокрутке на другую копию мира (что возможно бесконечно горизонтально), картографические слои теперь прыгают на соответствующие позиции. #273

  • Ограничен максимальное изменение масштаба за одно движение колеса мыши (чтобы вы не увеличивали масштаб на весь диапазон в одном прокрутке). #149

  • Значительно улучшена производительность упрощения линий (заметна при рендеринге полилиний/полигонов с десятками тысяч точек).

  • Улучшена производительность кругов за счет того, что они не рисуются, если они находятся вне области обрезки.

  • Улучшена стабильность анимации масштабирования (меньше мерцания плиток).#### Улучшения API

  • Добавлена возможность добавления слоя плиток под всеми другими (map.addLayer(layer, true)), полезна для переключения базовых слоев плиток.

  • Добавлено событие zoomstart для класса Map (спасибо @Fabiz). #377

  • Улучшена методика locate для класса Map, добавлена возможность непрерывного отслеживания местоположения и больше опций. #212

  • Добавлен второй аргумент inside для метода getBoundsZoom класса Map, который позволяет получить соответствующий уровень масштабирования, чтобы область вписывалась внутрь заданных границ.

  • Добавлен метод hasLayer для класса Map.

  • Добавлено опциональное третье аргумент urlParams для конструктора TileLayer для удобства: объект с свойствами, которые будут оцениваться в шаблоне URL.

  • Добавлена опция continuousWorld для класса TileLayer для отключения проверки/обертывания координат плиток.

  • Добавлено событие tileunload для класса TileLayer, срабатывает при удалении плитки после панорамирования (спасибо @CodeJosch). #256

  • Добавлена опция zoomOffset для класса TileLayer, полезна для плиток, размер которых не 256 пикселей (спасибо @msaspence).

  • Добавлена опция zoomReverse для класса TileLayer, которая позволяет перевернуть нумерацию масштабирования (спасибо @Majiir). #406

  • Добавлен метод redraw для класса TileLayer.Canvas` (спасибо @mortenbekditlevsen). #459

  • Добавлен метод closestLayerPoint для класса Polyline, полезен для функций взаимодействия (спасибо @anru). #186

  • Добавлен метод setLatLngs для классов MultiPolyline и MultiPolygon (спасибо @anru). #194

  • Добавлен метод getBounds для классов Polyline и Polygon (спасибо @JasonSanford). #253

  • Добавлен метод getBounds для класса FeatureGroup (спасибо @JasonSanford). #557

  • Добавлен метод setStyle для класса FeatureGroup (также наследуется классами MultiPolyline и MultiPolygon). #353

  • Добавлен метод invoke для FeatureGroup, который позволяет вызвать определенный метод на всех слоях группы с указанными аргументами.

  • Добавлено событие load для ImageOverlay. #213

  • Добавлена опция minWidth для Popup (внесено @marphi). #214

  • Улучшен конструктор LatLng для большей терпимости (и вывод ошибки с описанием, если широта или долгота не могут быть интерпретированы как число). #136

  • Добавлен метод distanceTo для LatLng (расстояние по большому кругу) (внесено @mortenbekditlevsen). #462

  • Добавлен метод toBBoxString для LatLngBounds для удобства (внесено @JasonSanford). #263

  • Добавлен метод intersects(otherBounds) для LatLngBounds (спасибо @pagameba). #350

  • Метод extend для LatLngBounds теперь принимает другие LatLngBounds в дополнение к LatLng (внесено @JasonSanford). #553

  • Добавлен метод intersects(otherBounds) для Bounds. #461

  • Добавлен метод L.Util.template для простой оценки строковых шаблонов.

  • Добавлен метод DomUtil.removeClass (внесено @anru).

  • Улучшена браузерная специфическая кодировка для большей зависимости от обнаружения функций, а не от строки агента пользователя.

  • Улучшена механика доступа к суперклассу для работы с цепочками наследования из трех или более классов; теперь следует использовать Klass.superclass вместо this.superclass (внесено @anru). #179

  • Добавлены события boxzoomstart и boxzoomend для Map (внесено @zedd45). #554

  • Добавлено событие contentupdate для Popup (внесено @mehmeta). #548

Важные изменения в API * Опция/свойство карты shiftDragZoom переименована в boxZoom.

  • Метод mouseEventToLatLng удалён (возвращён в 0.4).

Улучшения рабочего процесса разработки

  • Система сборки полностью переработана на основе Node.js, Jake, JSHint и UglifyJS.
  • Все скрипты теперь проверяются на наличие ошибок и соответствуют строгому стилю кодирования (с помощью JSHint), сборка не будет запущена, если проверка не пройдена.

Исправления ошибок#### Общие исправления ошибок

  • Исправлена ошибка, при которой Circle рисовался с неправильным радиусом (не учитывалось преувеличение проекции). #331
  • Исправлена ошибка, при которой getBounds для Map работала некорректно на пересечении даты. #295
  • Исправлена ошибка, при которой полилинии и полигонами иногда рисовались некорректно на определенных уровнях масштабирования. #381
  • Исправлена ошибка, при которой быстрое масштабирование колесом мыши работало некорректно при приближении к минимальному или максимальному значению масштабирования.
  • Исправлена ошибка, при которой опция pointToLayer для GeoJSON не работала в GeometryCollection. #391
  • Исправлена ошибка, при которой GeoJSON рисовался некорректно на пересечении даты. #354
  • Исправлена ошибка, при которой панорамирование карты застревало после отпускания мыши над iframe или flash объектом (спасибо @sten82). #297 #64
  • Исправлена ошибка, при которой колесо мыши работало некорректно при масштабировании карты внутри прокручиваемого контейнера (частично @chrillo). #206
  • Исправлена ошибка, при которой можно было добавить один и тот же слушатель дважды. #281* Исправлена ошибка, при которой Circle рисовался с неправильным радиусом (не учитывалось преувеличение проекции). #331
  • Исправлена ошибка, при которой setIcon для Marker работала некорректно (спасибо @marphi). #218 #311
  • Исправлена ошибка, при которой setLatLng для Marker не работала, если она устанавливалась до добавления маркера на карту. #222
  • Исправлена ошибка, при которой всплывающее окно маркера не перемещалось при setLatLng для Marker (спасибо @tjarratt). #272
  • Исправлена ошибка, при которой статические свойства дочернего класса не перезаписывали свойства родительского класса.
  • Исправлена ошибка, при которой опция closePopup для всплывающего окна была сломана (спасибо @jgerigmeyer).
  • Исправлена ошибка, при которой возникала ошибка при перетаскивании маркера без тени. (спасибо @anru). #178
    • Исправлена ошибка в методе contains класса Bounds (внесено @anru). #180
    • Исправлена ошибка, возникающая при создании пустого Polygon с помощью new L.Polygon().
    • Исправлена ошибка, при которой событие перетаскивания срабатывало до фактического перемещения слоя (внесено @anru). #197 * Исправлена ошибка, при которой щелчок по карте вызывал ошибку, если перетаскивание было отключено изначально. #196
    • Исправлена ошибка, при которой событие movestart срабатывало после анимации масштабирования.
    • Исправлена ошибка, при которой префикс атрибуции не обновлялся при вызове setPrefix. #195
    • Исправлена ошибка, при которой событие load класса TileLayer не срабатывало в некоторых краевых случаях (внесено @dravnic).
    • Исправлена ошибка, связанная с очисткой фоновых плит после масштабирования (внесено @neno-giscloud и @dravnic).
    • Исправлена ошибка, вызывающая мерцание карты после анимации масштабирования.
    • Исправлена ошибка, связанная с очисткой после удаления слоев плит (внесено @dravnic). #276
    • Исправлена ошибка, делающая невозможным выделение текста в элементе управления атрибуции. #279
    • Исправлена ошибка, возникающая при инициализации карты в непустом div. #278
    • Исправлена ошибка, при которой событие movestart не срабатывало при анимации панорамирования.
    • Исправлена ошибка в формуле эллиптического меркатора, влияющая на CRS EPSG:3395 (внесено @Savvkin). #358

Исправления ошибок в браузерах * Исправлена редкая ошибка аварийного завершения работы на Mac Safari (спасибо @lapinos03). #191

  • Исправлена ошибка, при которой изменение размера карты иногда приводило к размытию на WebKit (внесено @mortenbekditlevsen). #453
  • Исправлена ошибка, вызывающая ошибку в IE6-8 при нажатии на кнопку закрытия всплывающего окна. #235
  • Исправлена ошибка, при которой Safari не перерисовывал интерфейс сразу после закрытия всплывающего окна. #296
  • Исправлена ошибка, вызывающая снижение производительности и высокую загрузку ЦП при вызове setView или panTo к текущему центру. #231
  • Исправлена ошибка, при которой слои карты выглядели размытыми в некоторых случаях в браузерах на основе WebKit.
  • Исправлена ошибка, вызывающая ошибки в некоторых сборках Webkit/Linux (связанные с requestAnimationFrame), спасибо Chris Martens.

Исправления ошибок в мобильных браузерах * Исправлена ошибка, вызывающая ошибку при нажатии на векторные слои под iOS. #204

  • Исправлена ошибка аварийного завершения работы на Android 3+ при панорамировании или масштабировании (внесено @florian). #137

  • Исправлена ошибка на Android 2/3, при которой карта иногда исчезала после масштабирования. #69

  • Исправлена ошибка на Android 3, при которой плитки смещались на большой карте.

  • Исправлена ошибка, при которой карта панорамировалась при касании внутри всплывающего окна. #452

  • Исправлена ошибка, при которой задерживались клики на контроле масштабирования.## 0.2.1 (2011-06-18)

  • Исправлена регрессия, вызывающая ошибку в TileLayer.Canvas.

0.2 (2011-06-17)

Основные возможности

  • Добавлена поддержка WMS (TileLayer.WMS слой).
  • Добавлена поддержка различных проекций, включая EPSG:3857, EPSG:4326 и EPSG:3395 из коробки (через опцию crs в Map). Спасибо @Miroff & @Komzpa за отличные советы и объяснения по этому поводу.
  • Добавлена поддержка GeoJSON слоев.

Улучшения

Улучшения удобства использования

  • Улучшена производительность панорамирования в Chrome и FF с помощью requestAnimationFrame. #130
  • Улучшена отзывчивость клика на мобильных устройствах с WebKit (теперь клик происходит без задержки). #26
  • Добавлена терпимость к тапам (теперь клик происходит даже если палец слегка сдвинулся при нажатии).
  • Улучшено обработание ошибок геолокации: улучшены сообщения об ошибках, явно указан таймаут, установлена мировая карта при неудаче метода locateAndSetView. #61

Улучшения API * Добавлены слои MultiPolyline и MultiPolygon. #77

  • Добавлены слои LayerGroup и FeatureGroup для группировки других слоев.
  • Добавлен слой TileLayer.Canvas для простого создания слоев на основе canvas.
  • Изменено поведение Circle на зависимость от масштаба (радиус в метрах); круг постоянного размера теперь называется CircleMarker.
  • Добавлены события mouseover и mouseout для карты, маркеров и путей; добавлено событие mousemove для карты.
  • Добавлены методы setLatLngs, spliceLatLngs, addLatLng, getLatLngs для полилиний и полигонов.
  • Добавлены методы setLatLng и setRadius для Circle и CircleMarker.
  • Улучшена методом LatLngBounds contains возможность принимать LatLng в дополнение к LatLngBounds, то же самое для Bounds contains и Point.
  • Улучшены LatLngBounds и Bounds для возможности их инициализации без аргументов (от @snc).
  • Добавлена поддержка нумерации TMS через опцию scheme: 'tms' в TileLayer (от @tmcw).
  • Добавлена опция noWrap в TileLayer для отключения обёртки x координаты плитки (от @jasondavies).
  • Добавлена опция opacity и метод setOpacity для TileLayer.
  • Добавлены методы setLatLng и setIcon для Marker.
  • Добавлена опция title для Marker.
  • Добавлен аргумент maxZoom для метода map.locateAndSetView.
  • Добавлена возможность передачи опций геолокации в методы locate и locateAndSetView карты (от @JasonSanford).
  • Улучшена возможность Popup принимать HTML элементы в дополнение к строкам в качестве содержимого.#### Улучшения рабочего процесса разработки
  • Добавлен Makefile для сборки leaflet.js на неВиндовских машинах (автор @tmcw).
  • Улучшена скрипт debug/leaflet-include.js, чтобы его можно было использовать вне папки debug (автор @antonj).
  • Улучшено определение L, чтобы оно было совместимо с CommonJS. #122

Исправления ошибок

Общие исправления ошибок * Исправлена ошибка, при которой масштабирование не работает, если карта содержит полигон и вы масштабируете до области, где полигон не виден. #47

  • Исправлена ошибка, при которой закрытые полилинии не отображаются на карте.

  • Исправлена ошибка, при которой маркер, добавленный, удаленный и затем добавленный снова, не отображается на карте. #66

  • Исправлена ошибка, при которой слой плиток, добавленный, удаленный и затем добавленный снова, не отображается на карте.

  • Исправлена ошибка, при которой некоторые плитки не загружаются при панорамировании через линию дат. #97

  • Исправлена ошибка, при которой div карты с position: absolute сбрасывается на relative. #100

  • Исправлена ошибка, при которой добавление маркера без тени в его иконке вызывает ошибку.

  • Исправлена ошибка, при которой содержимое попапа не обновляется при вызове setContent. #94

  • Исправлена ошибка, при которой двойное щелчок для масштабирования не работает, если попап открыт при щелчке на карте.

  • Исправлена ошибка с распространением клика на кнопке закрытия попапа. #99

  • Исправлена невозможность удаления слоя ImageOverlay.#### Исправления ошибок для браузеров

  • Исправлена ошибка, при которой пути не отображаются в IE8.

  • Исправлена ошибка, при которой были периодические замедления перед анимацией масштабирования в WebKit. #123

  • Исправлена некорректная анимация масштабирования и стили попапов в Opera 11.11.

  • Исправлена анимация затухания попапов в Firefox и Opera.

  • Исправлена ошибка, при которой карта не отображается в Firefox при наличии правила img { max-width: 100% }.#### Исправления ошибок для мобильных браузеров

  • Исправлена ошибка, которая препятствовала панорамному скроллу на некоторых устройствах с Android 2.1 (и, возможно, более старых). #84

  • Отключена анимация приближения/отдаления по умолчанию на устройствах с Android из-за ошибок на некоторых устройствах (будет включена обратно, когда будет достаточно стабильной). #32

  • Исправлена ошибка, при которой карта иногда ломалась при многотачечном масштабировании на iOS. #32

  • Исправлена ошибка, которая препятствовала панорамному скроллу/кликам на планшетах с Android 3. #121

  • Исправлена ошибка, которая препятствовала панорамному скроллу/кликам на устройствах с Opera Mobile. #138

  • Исправлен потенциальный утечка памяти на WebKit при удалении плиток, благодаря @Scalar4eg. #107

0.1 (2011-05-13)Первый релиз Leaflet.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/lianggit-Leaflet.git
git@api.gitlife.ru:oschina-mirror/lianggit-Leaflet.git
oschina-mirror
lianggit-Leaflet
lianggit-Leaflet
main