skip to Main Content

Справочник JavaScript API

Leaflet-GeoMixer – плагин для интеграции данных с серверов GeoMixer в любую карту, созданную с использованием библиотеки Leaflet.

Плагин добавляет несколько новых классов для работы с данными и функции для создания экземпляра этих классов.

Исходные тексты плагина и багтрекер доступны в репозитории Github.

Cодержание

  • Простой пример
  • Добавление плагина
  • Структуры данных в GeoMixer
  • Загрузка слоёв
  • Класс L.gmx.VectorLayer
  • Класс L.gmx.RasterLayer
  • Класс L.gmx.Map

Простой пример

<div id="map"></div>
<script src="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet-src.js"></script>

<script src="/leaflet-geomixer.js?key=U92596WMIH"></script>

<script>

      var map = L.map('map').setView([60, 50], 3);
      L.gmx.loadLayer('7VKHM', '295894E2A2F742109AB112DBFEAEFF09').then(function(satelliteLayer) 
      {satelliteLayer.addTo(map);});
      L.gmx.loadMap('AZR6A', {leafletMap: map});
</script>

Добавление плагина

Чтобы добавить плагин, просто загрузите JS файл на вашей странице:

<script src="/leaflet-geomixer.js?key=GeoMixerAPIKey"></script>

GeoMixerAPIKey – это специальный ключ, который должен быть получен для каждого домена, на котором загружаются данные из GeoMixer’а.

Этот ключ может быть указан как параметр к подключаемому скрипту или передан как параметр при загрузке слоёв.

Структуры данных в GeoMixer

Основной сущностью в GeoMixer является слой. Каждый слой имеет ряд свойств, включающих в себя ID, type и title.

ID слоя уникально в пределах одного сервера. Основными типами слоёв являются векторные и растровые.

Каждый векторный слой состоит из геометрических объектов. Объекты имеют следующие атрибуты: type, geometry и properties.

Слои в GeoMixer-е объединяются в карты.

Загрузка слоёв

Слои загружаются при помощи фабричных методов в асинхронном режиме. Для удобной работы с асинхронными операциями в плагине активно используются промисы (Promises).

Есть несколько способов загрузить слой.

L.gmx.loadLayer

L.gmx.loadLayer(mapID, layerID, options): Promise

mapID – ID карты GeoMixer-а, а layerID – ID слоя в этой карте.

options – хеш дополнительных параметров со следующими возможными ключами.

Параметр

Описание

Тип

Значение по умолчанию

hostName Хост сервера GeoMixer (без http:// и / в конце) String maps.kosmosnimki.ru
apiKey Ключ для загрузки данных. Также может быть задан один раз при подключении скрипта плагина (см. выше). Для работы с localhost ключ не требуется. String
beginDate Начальная дата временного интервала (только для мультивременных слоёв) Date
endDate Конечная дата временного интервала (только для мультивременных слоёв) Date

Функция возвращает Promise, который будет выполнен с экземпляром слоя (L.gmx.VectorLayer или L.gmx.RasterLayer) в качестве первого параметра. Этот экземпляр может быть использован для добавления слоя на карту, настройки отображения и т.п.

Пример

L.gmx.loadLayer('7VKHM', '295894E2A2F742109AB112DBFEAEFF09').then(function(satelliteLayer) { //...});

L.gmx.loadLayers

L.gmx.loadLayers(layers, commonOptions): Promise

Вспомогательная функция для загрузки сразу нескольких слоёв. layers – массив объектов со следующими свойствами:

  • mapID – ID карты
  • layerID – ID слоя
  • options – дополнительные опции слоя

Каждый элемент массива соответствует отдельному вызову L.gmx.loadLayer. commonOptions применяются ко всем слоям.

Возвращает Promise, который будет выполнен (fulfill) после загрузки всех слоёв. Слои передаются как отдельные параметры.

L.gmx.loadMap

L.gmx.loadMap(mapID, options): Promise

Загружает все слои из определённой карты GeoMixer-а.

options – набор дополнительных параметров

Параметр

Описание

Тип

leafletMap Карта Leaflet для добавления к ней всех слоёв, включённых в исходной карте GeoMixer-а L.Map

Функция возвращает Promise, который выполняется (fulfilled) при загрузке всех слоёв. При этом в ф-ции выполнения передаётся объект типаL.gmx.Map.

Класс L.gmx.VectorLayer

Класс gmxVectorLayer предоставляет интерфейс для рендеринга векторных слоёв GeoMixer-а на карте Leaflet.

Слои могут быть добавлены к карте стандартным способом при помощи ф-ций L.Map.addLayer() или L.gmx.VectorLayer.addTo().

Методы

Метод

Синтаксис

Возвращаемое значение

Описание

setFilter setFilter(function(item): Boolean) this Установить ф-цию для фильтрации объектов перед рендерингом. Единственный аргумент – ф-ция, которая получает объект из слоя и возвращает булево значение (false – отфильтровать)
removeFilter removeFilter() Удалить ф-цию фильтрации объектов перед рендерингом.
setDateInterval setDateInterval(beginDate, endDate) this Задаёт временной интервал для мультиврменных слоёв. Только объекты из этого интервала будут загружены и показаны на карте. beginDate иendDateимеют тип Date.
addTo addTo(map) this Добавить слой на карту. Аргумент map имеет типL.Map.
bindPopup bindPopup(html |el |popup , options ? ) this Показывает баллун по клику на объекте слоя.
repaint repaint() Перерисовать слой. В отличае отL.TileLayer.redraw(), не пересоздаёт тайлы слоя, а лишь перерисовывает их. Работает быстрее и без моргания слоя на экране.
setImageProcessingHook setImageProcessingHook( function(image, options): Canvas|Deferred) Установка функции предобработки растров объектов слоя. Единственный аргумент – ф-ция, которая принимает растр объекта (image) и описание этого растра (). Возвращает: Canvas – объект замещающий исходный растр, null – не показывать растр. Может возвращать Deferredпри асинхронном режиме.
removeImageProcessingHook removeImageProcessingHook() Удалить функцию предобработки растров объектов слоя.
addObserver addObserver(Observer options) Добавление функции отбора объектов слоя по заданным условиям.

Observer options

Параметр

Тип

Значение по умолчанию

Описание

type update Тип обсервера. Возможные значения (update – передача изменений, resend – передача всех объектов)
bbox Весь мир Прямоугольник отслеживания объектов
dateInterval null Временной интервал. (Для не мультивременных слоев null).
filters [] Массив идентификаторов фильтров применяемых в обсервере (на данный момент толькоuserFilterпредварительно воспользовавшись методом слоя setFilter).
callback Func(Observer data) Производится отбор объектов по заданным условиям: bbox, dateInterval и filters.

Observer data

Параметр

Тип

Значение по умолчанию

Описание

count 0 Количество объектов отобранных по условиям отбора объектов указанным в обсервере.
added [] Массив объектов (при type=»update» только объекты ранее не удовлетворявшие условиям отбора).
removed null Массив идентификаторов удаляемых объектов т.е. переставших удовлетворять условиям отбора(при type=»resend» атрибут отсутствует).

Класс L.gmx.RasterLayer

Класс L.gmx.RasterLayer рисует на карте растровые слои из GeoMixer-а.

Method

Syntax

Return type

Description

addTo addTo(map) this Добавить слой на карту. Аргумент map имеет тип L.Map.

Класс L.gmx.Map

Класс L.gmx.Map используется для работы с картой (как с набором слоёв). Он включает ряд свойств для итерирования и поиска слоёв из карты.

Свойства

Свойство

Тип

Описание

layers L.gmx.VectorLayer[] или L.gmx.RasterLayer[] Массив всех слоёв из карты GeoMixer-а
layersByID Object Хеш слоёв с ID слоя в качестве ключа хеша
layersByTitle Object Хеш слоёв с заголовком (title) слоя в качестве ключа хеша
Back To Top