Конфигурационный файл формирует элементы интерфейса приложения и список слоев, загружаемых на карту.
Схема описания делится на четыре основные секции:
app
- для конфигурации приложения (настройки интерфейса, виджетов, и прочие параметры, влияющие на пользовательский интерфейс)state
- для хранения начального состояния карты (начальное положение, активные слои, текущая дата - т.е. те функции, которые доступны для управления пользователем)layers
- для переопределения параметров слоёв (режимы отображения, дополнительные свойства)user
- для хранения настроек, специфичных для конкретного приложения. Содержимое этого раздела не регламентируется
В итоге корень конфига выглядит следующим образом:
{
"app": { },
"state": { },
"layers": { },
"user": { }
}
Ни один из ключей не является обязательным.
Конфигурационный файл описывается в формате json. Это значит, что каждый ключ должен быть заключён в двойные кавычки, а в качестве значения может быть строка в двойных кавычках, число, булево значение (true
/false
) или объект { ... }
. Пары ключ: значение
разделяются запятыми. Лишних запятых быть не должно. Комментарии не допускаются.
Секция app
имеет линейную структуру. Это означает, что каждый её ключ соответствует описываемому объекту и содержит хеш с настройками, касающимися только этого компонента.
Примечание: почти всегда хеш с настройками передаётся конструктору соответствующего класса, однако может дополняться параметрами, не входящими в оригинальную документацию. Ниже будут приведены ссылки на описание классов, объектов или функций, которым передаются эти хеши.
Секция state
в конструкторе приложений скрыта от пользователя и заполняется автоматически.
За основные настройки карты отвечают два ключа, расположенные в секции app
: map
и gmxMap
.
Пример:
{
"app": {
"map": {
"minZoom": 3
},
"gmxMap": {
"mapID": "37TYY",
}
}
}
<Number> minZoom
- минимальный допустимый зум карты<Number> maxZoom
- максимальный допустимый зум карты<Boolean> scrollWheelZoom
- можно ли зумить карту колёсиком мыши
<String> mapID
- ID загружаемой карты с сервера Kosmosnimki<String> apiKey
- API-ключ клиента. (в конструкторе приложений этот параметр скрыт)
Контролы - это элементы пользовательского интерфейса, помещаемые непосредственно на карту. Настройки всех контролов располагаются в секции app
. Ключ обозначает контрол, который мы настраеваем, а в качестве значения может передаваться как хеш с настройками, так и булево значение (в этом случае true
эквивалентно {}
, а false
эквивалентно undefined
, что означает, что контрол не будет добавлен на карту).
Примечание: так же, как и для настроек карты, для каждого контрола указана ссылка на документацию
Пример:
{
"app": {
"zoomControl": false,
"centerControl": {
"color": "#ef33b9"
},
"baseLayersControl": true
}
}
Параметры отсутствуют
Параметры отсутствуют, однако в качестве значения можно указать строку 'leaflet'
. В этом случае вместо контрола Геомиксера будет использован стандартный контрол Leaflet.
<String> color
- цвет в hex (например'#fedcba'
)
<String> position
- положение контрола (см. Leaflet control positions)<String> type
- тип отображения (line
- в одной строке,window
- в виде всплывающего списка)<String> mapCopyright
- копирайт карты
<String> position
- положение контрола (см. Leaflet control positions)<String> scaleFormat
- формат отображения масштаба. Возможны значенияbar
иtext
<String> notHide
- не скрывать контрол при переключении видимости контролов
<Number> maxLayersInRow
- максимальное количество подложек, после которого будет образован следующий ряд
<String> type
- тип календарика (fire
(режим 24+n) илиcommon
)<Boolean> minimized
- свёрнут ли календарик по умолчанию<Boolean> showSwitcher
- показывать ли кнопку переключения режима
<Boolean> useAnimation
- использовать ли анимацию
Сайдбар включается автоматически, если указан какой-либо виджет, который в него встраивается.
nsGmx.StorytellingControl, nsGmx.StorytellingAccordeonControl
<String> type
- тип виджета (accordeon
илиflipper
)<String> position
- если тип -accordeon
, то этот параметр влияет на положение виджета (см. Leaflet control positions)<Number|Boolean> openBookmark
- номер закладки, которую нужно открывать по умолчанию (нумерация с 0). Если указано значениеfalse
, то ни одна из закладок не будет открыта.
nsGmx.TransparencySliderWidget
Параметры отсутствуют
<String> apiKey
- ключ доступа<String> serviceBase
- адрес сервисов Геомиксера<String>[] layers
- список идентификаторов слоев<String> column
- редактируемый атрибут объектаmenus
- элементы меню в виде {'ключ': 'значение', ...}
Ниже приведен список виджетов, которые автоматически встраиваются в сайдбар. Они описываются также в секции app
и для них справедливы те же примечания, что и для контролов.
Конфиг дерева слоёв - двухуровневый и имеет следующий вид (указаны значения по умолчанию):
{
"maxDepth": 0,
"showCenterIcon": false,
"popoversContent": "description",
"popoversOptions": {
"trigger": "hover"
}
}
<Number> maxDepth
- максимальная глубина отображения дерева<Boolean> showCenterIcon
- показывать ли иконку перецентровки<String> popoversContent
- что будет отображаться во всплывающей подсказке кнопкиi
<String> popoversOptions.trigger
- действие, приводящее к появлению подсказки (click
илиhover
)
Параметры отсутствуют
Слои настраиваются в секции layers
. Каждый ключ соответствует идентификатору слоя или группы. Его значением, в свою очередь, является объект, описывающий настройки данного слоя или группы.
Пример секции layers
:
{
"Sx8AdnMZ3yFg0LVi": {
"title": {
"eng": "Objects and boundaries"
}
},
"0EF727A0FB804921B039AC99DF44A2E2": {
"heatmap": {
"intensityField": "HotSpotCount",
"intensityScale": 3,
"blur": 11,
"radius": 16,
"minRadius": 7,
"minOpacity": 0.65
}
},
"0063FE5347284163B43E863FCFFA9161": {
"clusters": {
"maxClusterRadius": 50
}
}
}
Ниже приведен список всех настроек слоёв:
Используется, если необходимо перевести заголовок слоя.
<String> eng
- in english<String> rus
- по-русски
Используется, если необходимо перевести описание слоя.
<String> eng
- in english<String> rus
- по-русски
<Number> maxClusterRadius
- максимальный радиус кластеризации (охват), по умолчанию80
(в пикселях)<Number> maxZoom
- пороговый зум, после которого к слою применяются кластеры<Boolean> showCoverageOnHover
- показывать ли полигон охвата кластера
<String> intensityField
- наименование атрибута значение которого используется для расчета интенсивности точки<String> intensityScale
- множитель, используемый при расчете интенсивности точки<String> blur
- коэффициент размытия (по умолчанию15
)<String> radius
- максимальный радиус точки теплокарты (по умолчанию25
)<String> minRadius
- минимальный радиус точки теплокарты<String> minOpacity
- минимальный коэффициент непрозрачности