Перейти к основному содержимому

1. Карта

Карта на странице связана с объектом Map. Он предоставляет методы и свойства, позволяющие изменять карту из кода. При создании карты MMR GL JS инициализирует ее и возвращает объект Map.

Параметры

НазваниеТипОписание
containerHTMLElement | stringHTML-элемент или id блока, в который MMR GL JS будет рендерить карту. Указанный элемент не должен содержать дочерних элементов.
minZoomnumber
default: 0
Минимальный уровень zoom (0-20).
maxZoomnumber
default: 20
Максимальный уровень zoom (0-20).
minPitchnumber
default: 0
Минимальный уровень наклона карты (0-85).
maxPitchnumber
default: 85
Максимальный уровень наклона карты (0-85).
styleobject | stringСтиль карты в формате JSON или ссылка на стиль. Это JSON-объект, составленный по правилами оформления стилей.
  • light_style.jsonmmr://api/styles/light_style.json.
  • dark_style.jsonmmr://api/styles/dark_style.json.
  • main_style.jsonmmr://api/styles/main_style.json.
hashboolean | string
default: false
Если true, все параметры страницы (zoom, latitude, longitude и pitch) будут синхронизированы в URL через # параметра.
interactiveboolean
default: false
Если false, карта не будет реагировать ни на какой элемент управления (мышь, экран, клавиатура).
bearingSnapnumber
default: 7
Граница, измеряемая в градусах, которая определяет когда пеленг карты будет привязан к северу.
pitchWithRotateboolean
default: true
Если false, управление наклоном карты с помощью «drag and rotate» будет отключено.
clickTolerancenumber
default: 3
Максимальное количество пикселей, на которое пользователь может переместить указатель мыши во время щелчка, чтобы он считался допустимым щелчком (в отличие от перетаскивания мыши).
attributionControlboolean
default: true
Если true, AttributionControl будет добавлен на карту.
customAttributionstring | Array<string>Строка или строки для отображения в AttributionControl. Возможно только если attributionControl = true.
failIfMajorPerfomanceCaveatboolean
default: false
Если true, инициализация карты завершится с ошибкой если производительность карты будет не приемлемой.
preserveDrawingBufferboolean
default: false
Если true, холст карты можно экспортировать в PNG-изображение используя map.getCanvas().toDataUrl(). По умолчанию установлен в false, для улучшения производительности.
antialiasboolean
default: false
Если true, gl-контекст будет создан с применением MSAA-сглаживания, которое может быть полезно для сглаживания кастомных слоев. По умолчанию установлен в false, для улучшения производительности.
refreshExpiredTilesboolean
default: true
Если false, то карта не будет запрашивать тайлы после истечения срока их жизни в соответствии с заголовками cacheControl / expires.
maxBoundsLngLatBoundsLikeЕсли установлено, карта будет ограничена заданными границами.
scrollZoomboolean | object
default: true
Если true, то увеличение с помощью скролла работает. Значение объекта передается в качестве параметров ScrollZoomHandler.
boxZoomboolean
default: true
Если true, взаимодействие типа «box zoom» включено (подробнее BoxZoomHandler)
dragRotateboolean
default: true
Если true, взаимодействие типа «drag to rotate» включено (подробнее DragRotateHandler)
dragPanboolean | object
default: true
Если true, взаимодействие типа «drag to pan» включено (подробнее DragPanHandler)
keyboardboolean
default: true
Если true, можно использовать клавиатуру и сочетания клавиш для взаимодействия с картой (подробнееKeyboardHandler)
doubleClickZoomboolean
default: true
Если true, взаимодействие типа «double click to zoom» включено (подробнее DoubleClickZoomHandler)
touchZoomRotateboolean | object
default: true
Если true, взаимодействие типа «pinch to rotate and zoom» включено (подробнееTouchZoomRotateHandler)
touchPitchboolean | object
default: true
Если true, взаимодействие типа «drag to pitch» включено (подробнее TouchPitchHandler)
trackResizeboolean
default: true
Если true, карта будет автоматически менять свой размер при изменении окна.
centerLngLatLike
default: [0,0]
Начальная точка карты.
Если центр не указан в параметрах конструктора, MMR GL JS будет смотреть его в объекте стиля карты. Если он также не указан в стиле, то по умолчанию он будет равен [0, 0].
Примечание: используется порядок координат долготы, широты (в отличие от широты, долготы) для соответствия GeoJSON.
zoomnumber
default: 0
Начальный уровень масштаба карты.
Если уровень масштаба не указан в параметрах конструктора, MMR GL JS будет смотреть его в объекте стиля карты. Если он также не указан в стиле, то по умолчанию он будет равен 0.
bearingnumber
default: 0
Начальный пеленг (поворот) карты, измеренный в градусах против часовой стрелки с севера.
Если пеленг не указан в параметрах конструктора, MMR GL JS будет искать его в объекте стиля карты. Если он также не указан в стиле, то по умолчанию он будет равен 0.
pitchnumber
default: 0
Начальный шаг (наклон) карты, измеряемый в градусах от плоскости экрана (0-85).
Если шаг не указан в параметрах конструктора, MMR GL JS будет искать его в объекте стиля карты. Если он также не указан в стиле, то по умолчанию он будет равен 0.
boundsLngLatBoundsLikeНачальные границы карты. Если заданы границы, то он переопределяет center и zoom.
fitBoundsOptionsobjectMap#fitBounds-параметры объекта следует использовать только при подгонке исходных границ приведенных выше (bounds).
renderWorldCopiesboolean
default: true
Если это true, то несколько копий мира будут отображаться бок о бок за пределами -180 и 180 градусов долготы.
Если установлено значение false:
  • когда карта будет увеличена настолько, что ни одно изображение мира не заполнит весь контейнер карты, за пределами 180 и -180 градусов долготы останется пустое пространство;
  • объекты, пересекающие 180 и -180 градусов долготы, будут разрезаны надвое (одна часть находится на правом краю карты, а другая - на левом) на каждом уровне масштабирования.
maxTileCachenumber
default: null
Максимальное количество плиток, хранящихся в кэше для данного источника (source). Если этот параметр опущен, размер кэша будет динамически определяться в зависимости от текущего окна просмотра.
localIdeographFontFamilystring
default: sans-serif
Определяет CSS font-family для локального переопределения генерации глифов в _CJK Unified Ideographs, Hiragana, Katakana и Hangul Syllables_.
В этих языковых структурах настройки шрифта из стиля карты будут игнорироваться, кроме font-weight (light/regular/medium/bold).
Установите значение false, чтобы включить настройки шрифта из стиля карты для этих глифов.
localFontFamilystring
default: false
Определяем CSS font-family для переопределения генерации всех глифов.
Настройки шрифта из стиля карты будут игнорироваться, кроме font-weight (light/regular/medium/bold).
Если этот параметр установлен, то он переопределяет настройку в localIdeographFontFamily.
transformRequestRequestTransformFunction
default: null
Функция выполняется до выполнения URL-запроса. Она может использоваться для изменения URL, установки заголовков или свойства credentials для кросс-доменных запросов.
collectResourceTimingboolean
default: false
Если true, то информация Resource Timing API будет доступна для запросов выполняемых GeoJSON и Vector Tile (эта информация обычно недоступна из основного потока JavaScript). Информация будет возвращена в свойстве ResourceTiming.
fadeDurationnumber
default: 300
Управление длительности анимации fade-in/fade-out для коллизий подписей в миллисекундах. Этот параметр не влияет на продолжительность переходов стиля во время выполнения или перекрестного затухания растровых плиток.
crossSourceCollisionsboolean
default: true
Если true, то символы из нескольких источников могут сталкиваться друг с другом во время обнаружения столкновения. Если значение false, обнаружение коллизий выполняется отдельно для символов в каждом источнике.
accessTokenstring
default: null
Если указан, тогда будет использоваться этот токен вместо того, который указан в mmrgl.accessToken
localeobject
default: null
Патч для применения к таблице локализации по умолчанию для строк пользовательского интерфейса, например подсказок управления. Объект locale сопоставляет идентификаторы строк пользовательского интерфейса в пространстве имен с переведенными строками на целевом языке; см. src/ui/default_locale.js, например, со всеми поддерживаемыми строковыми идентификаторами. Объект может указывать все строки пользовательского интерфейса (тем самым добавляя поддержку нового перевода) или только подмножество строк (тем самым исправляя таблицу перевода по умолчанию).

Пример

var map = new mmrgl.Map({
container: 'map',
center: [37.6165, 55.7505],
zoom: 8,
style: styleObject,
hash: true ,
transformRequest: (url, resourceType)=> {
if (resourceType === 'Source' && url.startsWith('http://myHost' )) {
return {
url: url.replace('http', 'https' ),
headers: { 'my-custom-header': true },
credentials: 'include' // Include cookies for cross-origin requests
}
}
}
});

Методы

НазваниеОписание
addControl(control, position?)

Добавляет IControl на карту, вызывая control.onAdd(this).

Параметры:

control:iControl — добавляемый IControl;

position:string — позиция на карте (top-left , top-right , bottom-left , and bottom-right). По умолчанию top-right.

addImage(id, image, options)

Добавьте изображение в стиль. Это изображение может быть отображено на карте, как и любой другой значок в спрайте, используя ID изображения с icon-image, background-pattern, fill-pattern или line-pattern. Событие Map.event:error будет вызвано, если в спрайте недостаточно места для добавления этого изображения.

Параметры:

id:string — ID изображения

image:HTMLImageElement | ImageBitmap | ImageData | {width: number, height: number, data: (Uint8Array &#124; Uint8ClampedArray)} | StyleImageInterface — изображение в виде HTMLImageElement, ImageData, ImageBitmap или объекта со свойствами width, height и data в том же формате, что и ImageData.

options {

pixelRatio — отношение пикселей в изображении к физическим пикселям на экране.

sdf следует ли интерпретировать изображение как SDF-изображение.

stretchX [[x1, x2], ...] если icon-text-fit используется в слое с этим изображением, эта опция определяет часть (части) изображения, которая может быть растянута горизонтально.

stretchY [[y1, y2], ...] если icon-text-fit используется в слое с этим изображением, эта опция определяет часть (части) изображения, которая может быть растянута вертикально.

content [x1, y1, x2, y2] если icon-text-fit используется в слое с этим изображением, эта опция определяет часть изображения, которая может быть покрыта содержимым в текстовом поле.

// If the style's sprite does not already contain an image with ID 'cat',
// add the image 'cat-icon.png' to the style's sprite with the ID 'cat'.
map.loadImage('https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Cat_silhouette.svg/400px-Cat_silhouette.svg.png', function (error, image) {
if (error) throw error;
if (!map.hasImage('cat' )) map.addImage('cat', image);
});


// Add a stretchable image that can be used with icon-text-fit
// In this example, the image is 600px wide by 400px high.
map.loadImage('https://upload.wikimedia.org/wikipedia/commons/8/89/Black_and_White_Boxed_%28bordered%29.png', function (error, image) {
if (error) throw error;
if (!map.hasImage('border-image' )) {
map.addImage('border-image', image, {
content: [16, 16, 300, 384], // place text over left half of image, avoiding the 16px border
stretchX: [[16, 584]], // stretch everything horizontally except the 16px border
stretchY: [[16, 384]], // stretch everything vertically except the 16px border
});
}
});
addLayer(layer, beforedId?)

Добавляет слой стиля к стилю карты.

Слой определяет, как будут стилизованы данные из указанного источника.

Параметры:

layer ((Object &#124; CustomLayerInterface))** добавляемый слой, соответствует либо спецификации стиля, либо спецификации CustomLayerInterface`.

Ниже представлено Описание объекта Layer.

   • id:string — уникальный идентификатор слоя.

   • type:string — Тип слоя (например, заливка или символ ). Список типов слоев доступен в Спецификации стиля.

(Так же может быть кастомным. Дополнительные сведения см. в разделе CustomLayerInterface.

   • source:(string | object) — источник данных для слоя. Ссылка на источник, который уже был определен с использованием уникального идентификатора. Непосредственно ссылайтесь на новый источник с помощью исходного объекта (как определено в спецификации стиля). Это необходимо для всех параметров layer.type, за исключением custom.

   • sourceLayer — (необязательно) имя слоя в указанном layer.source, который будет использоваться для слоя стиля. Это применимо только для векторных тайлов и требуется, если layer.source имеет тип vector.

   • filter:array — (необязательный) выражение, задающее условия для объектов. Отображаются только те объекты, которые соответствуют фильтру. Спецификация стиля содержит дополнительную информацию об ограничениях параметра фильтра и полный список доступных выражений. Если фильтр не предусмотрен, будут показаны все объекты.

   • layer:object — (необязательно) свойства слоя. Доступные свойства зависят от типа слоя. Полный список свойств для каждого типа слоя доступен в Спецификации стиля. Если свойства макета не заданы, будут использоваться значения по умолчанию.

   • maxzoom:number — (необязательно) максимальный уровень масштабирования для слоя. При уровнях масштабирования, равных или превышающих maxzoom, слой будет скрыт. Значение может быть любым числом от 0 до 24 (включительно). Если maxzoom не указан, слой будет виден на всех уровнях масштабирования, для которых доступны тайлы.

   • minzoom:number — (необязательно) минимальный уровень масштабирования для слоя. При уровнях масштабирования меньше, чем minzoom, слой будет скрыт. Значение может быть любым числом от 0 до 24 (включительно). Если minzoom не предусмотрен, слой будет виден на всех уровнях масштабирования, для которых доступны тайлы.

   • metadata:object — (необязательно) Произвольные свойства, полезные для отслеживания со слоем, но не влияющие на рендеринг.

   • renderingMode:string — это применимо только для слоев с типом custom. Дополнительные сведения см. в разделе CustomLayerInterface.

beforeId:string — вставки нового слоя до существующего слоя по ID, в результате чего новый слой визуально появляется под существующим слоем. Если этот аргумент не указан, слой будет добавлен в конец массива слоев и визуально появится над всеми остальными слоями.

// Add a circle layer with a vector source
map.addLayer({
id: 'points-of-interest',
source: {
type: 'vector',
url: 'path-to-source'
},
'source-layer': 'poi_label',
type: 'circle',
paint: {
// Style Specification paint properties
},
layout: {
// Style Specification layout properties
}
});
// Define a source before using it to create a new layer
map.addSource('state-data', {
type: 'geojson',
data: 'path/to/data.geojson'
});

map.addLayer({
id: 'states',
// References the GeoJSON source defined above
// and does not require a source-layer
source: 'state-data',
type: 'symbol',
layout: {
// Set the label content to the
// feature's name property
text-field: ['get ', ' name']
}
});
// Add a new symbol layer before an existing layer
map.addLayer({
id: 'states',
// References a source that's already been defined
source: 'state-data ',
type: ' symbol ',
layout: {
// Set the label content to the
// feature' s name property
text-field: [ 'get', 'name' ]
}
// Add the layer before the existing cities layer
}, 'cities' );
addSource(id, source)

Добавляет источник в стиль карты.

Параметры:

id:string — идентификатор добавляемого источника. Не должно конфликтовать с существующими источниками.

source:object — исходный объект, соответствующий спецификации источника или CanvasSourceOptions.

map.addSource('my-data', {
type: 'vector',
url: 'path-to-source'
});
| map.addSource('my-data', {
"type": "geojson" ,
"data": {
"type": "Feature" ,
"geometry": {
"type": "Point" ,
"coordinates": [-77.0323, 38.9131]
},
"properties": {
"title": "title" ,
"marker-symbol": "monument"
}
}
});
areTilesLoaded()

Возвращает логическое значение, указывающее, загружены ли все плитки в окне просмотра из всех источников стиля.

var tilesLoaded = map.areTilesLoaded();
boxZoom

BoxZoomHandler карты, который реализует масштабирование с помощью жеста перетаскивания с нажатой клавишей Shift. Более подробную информацию и примеры использования boxZoom можно найти в разделе BoxZoomHandler

cameraForBounds(bounds, options?)

Параметры:

bounds:LngLatBoundsLike — вычисляет центр границ в окне, используя самый высокий уровень масштабирования вплоть до Map#getMaxZoom(), который помещается в окне. LngLatBounds представляет собой коробку, которая всегда выровнена по оси с пеленгом 0.

НазваниеОписание

padding:number|PaddingOptions

Количество отступов в пикселях, добавляемых к заданным границам.
bearing:numberЖелаемый пеленг карты в конце анимации, в градусах.

offset:PointLike

Центр заданных границ относительно центра карты, измеренный в пикселях.
maxZoom:numberМаксимальный уровень масштабирования, допускаемый при переходе камеры в заданные границы.
var bbox = [[-79, 43], [-73, 45]];
var newCameraTransform = map.cameraForBounds(bbox, {
padding: {top: 10, bottom:25, left: 15, right: 5}
});
doubleClickZoom

DoubleClickZoomHandler карты, который позволяет пользователю увеличивать масштаб двойным щелчком мыши. Более подробную информацию и примеры использования doubleClickZoom можно найти в разделе DoubleClickZoomHandler

dragPan

DragPanHandler карты, который реализует перетаскивание карты с помощью мыши или сенсорного жеста. Более подробную информацию и примеры использования dragPan вы найдете в разделе DragPanHandler.

dragRotate

DragRotateHandler карты, который реализует поворот карты при перетаскивании правой кнопкой мыши или нажатой клавишей управления. Более подробную информацию и примеры использования dragRotate можно найти в разделе DragRotateHandler.

easeTo(options, eventData?)

Изменяет любую комбинацию center, zoom, bearing, pitch и padding с анимированным переходом между старыми и новыми значениями. Карта сохранит свои текущие значения для любых деталей, не указанных в опциях.

предупреждение

Переход произойдет мгновенно, если пользователь включил функцию уменьшенной доступности движения (reduced motion), включенную в его операционной системе, если только опции не включают essential: true.

Параметры:

options параметры, описывающие пункт назначения и анимацию перехода. Принимает CameraOptions и AnimationOptions.

eventData дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

fitBounds(bounds, options?, eventData?)

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

Параметры:

boundsLngLatBoundsLike — центрирует эти границы в окне и используйте самый высокий уровень масштабирования вплоть до Map#getMaxZoom(), который соответствует им в окне.

options:Object опции поддерживают все свойства из AnimationOptions и CameraOptions в дополнение к полям ниже.

НазваниеОписание

padding:number|PaddingOptions

Количество отступов в пикселях, добавляемых к заданным границам.
linear:boolean

Если true, то карта переходит с помощью Map#easeTo. Если false, то карта переходит с помощью Map#flyTo. Эти функции и AnimationOptions для получения информации о доступных опциях.

easing:function?

Функция ослабления для анимированного перехода. См. раздел AnimationOptions

offset:PointLike

Центр заданных границ относительно центра карты, измеренный в пикселях.
maxZoom:numberМаксимальный уровень масштабирования, допускаемый при переходе камеры в заданные границы.

eventData дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

var bbox = [[-79, 43], [-73, 45]];
map.fitBounds(bbox, {
padding: {top: 10, bottom:25, left: 15, right: 5}
});
fitScreenCoordinates(p0, p1, bearing, options?, eventData?)

Панорамирует, поворачивает и масштабирует карту так, чтобы она соответствовала коробке, сделанной точками p0 и p1, как только карта повернута к указанному пеленгу. Чтобы увеличить масштаб без поворота, передайте текущий пеленг карты.

Параметры:

p0:PointLike — первая точка на экране в пиксельных координатах.

p1:PointLike вторая точка на экране в пиксельных координатах.

bearing:number — желаемый пеленг карты в конце анимации, в градусах. Это значение игнорируется, если карта имеет ненулевой шаг.

options:

НазваниеОписание

padding:number|PaddingOptions

Количество отступов в пикселях, добавляемых к заданным границам.

linear:boolean

Если true, то карта переходит с помощью Map#easeTo. Если false, то карта переходит с помощью Map#flyTo. Эти функции и AnimationOptions для получения информации о доступных опциях.

easing:function?

Функция ослабления для анимированного перехода. См. раздел AnimationOptions

offset:PointLikeЦентр заданных границ относительно центра карты, измеренный в пикселях.
maxZoom:numberМаксимальный уровень масштабирования, допускаемый при переходе камеры в заданные границы.

eventData — дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

var p0 = [220, 400];
var p1 = [500, 900];
map.fitScreenCoordinates(p0, p1, map.getBearing(), {
padding: {top: 10, bottom:25, left: 15, right: 5}
});
flyTo(options, eventData?)

Изменяет любую комбинацию center, zoom, bearing и pitch, анимируя переход вдоль кривой, вызывающей передвижение. Анимация плавно включает в себя масштабирование и панорамирование, чтобы помочь пользователю сохранять ориентацию даже после прохождения большого расстояния.

предупреждение

Анимация будет пропущена, и это будет вести себя эквивалентно jumpTo, если пользователь включил функцию уменьшенной доступности движения (reduced motion) в своей операционной системе, если только «параметры» не включают essential: true.

НазваниеОписание
curve:number
default: 1.42
Масштабирование curve, которое будет происходить вдоль траектории движения. Высокое значение максимизирует масштабирование для преувеличенной анимации, в то время как низкое значение минимизирует масштабирование в результате эффект получается близким к Map#easeTo. 1.42 — это среднее значение, выбранное участниками исследования пользователей, обсуждаемого в van Wijk (2003). Значение Math.pow(6, 0.25) было бы эквивалентно среднеквадратичной средней скорости. Значение 1 будет производить круговое движение.
minZoom:numberНулевой уровень масштабирования на пике траектории движения. Если указан параметр options.curve, то этот параметр игнорируется.
speed:number
default: 1.2
Средняя скорость анимации определяется по отношению к options.curve. Скорость 1.2 означает, что карта, по-видимому, движется по траектории полета в 1.2 раза быстрее. Screenful — это видимый промежуток карты. Он не соответствует фиксированному физическому расстоянию, но изменяется в зависимости от уровня масштабирования.
screenSpeed:number?Средняя скорость анимации измеряется в секундах экрана, предполагая линейную временную кривую. Если указан параметр options.speed, то этот параметр игнорируется.
maxDuration:number?Максимальная продолжительность анимации, измеряемая в миллисекундах. Если длительность превышает максимальную продолжительность, она сбрасывается на 0.

eventData — дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

// fly with default options to null island
map.flyTo({center: [0, 0], zoom: 9});
// using flyTo options
map.flyTo({
center: [0, 0],
zoom: 9,
speed: 0.2,
curve: 1,
easing(t) {
return t;
}
});
getBearing()Возвращает текущий пеленг карты. Пеленг — это направление компаса, которое «вверх»; например, пеленг 90° ориентирует карту так, чтобы восток был вверх.
getBounds()

Возвращает географические границы карты. Когда пеленг или тангаж ненулевой, видимая область не является прямоугольником, выровненным по оси, и в результате получается наименьшая граница, охватывающая видимую область. Если на карте заданы отступы, то возвращаемые границы относятся к вставке.

var bounds = map.getBounds();
getCanvas()

Возвращает HTML-элемент, содержащий элемент <canvas> карты.

Если вы хотите добавить не-GL оверлеи на карту, вы должны добавить их к этому элементу.

Это элемент, к которому привязаны события для интерактивности карты (например, панорамирование и масштабирование). Он будет получать события от дочерних элементов, таких как <canvas>, но не от элементов управления картой.

getCenter()

Возвращает географическую центральную точку карты.

// return a LngLat object such as {lng: 0, lat: 0}
var center = map.getCenter();
// access longitude and latitude values directly
var {longitude, latitude} = map.getCenter();

getContainer()

Возвращает состояние объекта. Состояние объекта — это набор определяемых пользователем пар ключ-значение, которые назначаются объекту во время выполнения. Фичи (features) определяются через feature.id атрибут, который может быть любым числом или строкой.

Чтобы получить доступ к значениям объекта для целей стилизации объекта, используйте фича-выражения.

к сведению

Чтобы получить доступ к значениям объекта для целей стилизации объекта, используйте фича-выражения.

Параметры:

feature:Object — идентификатор объекта. Объекты фичи, возвращаемые из Map#queryRenderedFeatures или обработчиков событий, могут использоваться в качестве идентификаторов объектов.

options:

НазваниеОписание
id:number|stringУникальный идентификатор функции. Может быть целым числом или строкой, но поддерживает строковые значения только тогда, когда параметр promoteId был применен к источнику или строка может быть приведена к целому числу.
source:stringИдентификатор вектора или источника GeoJSON для объекта.
sourceLayer:string

(необязательно) Для источников векторных тайлов требуется sourceLayer.

// When the mouse moves over the `my-layer` layer,
// get the feature state for the feature under the mouse
map.on('mousemove', 'my-layer', function(e) {
if (e.features.length > 0) {
map.getFeatureState({
source: 'my-source',
sourceLayer: 'my-source-layer',
id: e.features[0].id
});
}
});
getFilter(layerId)Возвращает фильтр, примененный к указанному слою стиля.
getFreeCameraOptions()Возвращает положение и ориентацию объекта камеры.
getLayer(id)

Возвращает слой с указанным идентификатором в стиле карты.

Параметры:

id:string идентификатор слоя, который нужно получить.

var stateDataLayer = map.getLayer('state-data');
getLayoutProperty(layerId, name)

Возвращает значение свойства layout в указанном слое стиля.

Параметры:

layerId:string — идентификатор слоя, из которого будет получено свойство layout.

name:string — название свойства слоя, которое нужно получить.

getLight()Возвращает значение светового объекта.
getMaxBounds()Возвращает максимальные географические границы, к которым привязана карта, или null, если они не установлены.
var maxBounds = map.getMaxBounds();
getMaxPitch()Возвращает максимально допустимый наклон карты.
getMaxZoom()Возвращает максимально допустимый уровень масштабирования карты
var maxZoom = map.getMaxZoom();.
getMinPitch()Возвращает минимально допустимый шаг карты.
getMinZoom()Возвращает минимально допустимый уровень масштабирования карты.var minZoom = map.getMinZoom();
getPadding()Возвращает текущее отступы, примененное вокруг видового экрана карты.
getPaintProperty(layerId, name)

Возвращает значение свойства paint в указанном слое стиля.

Параметры:

layerId:string идентификатор слоя, из которого будет получено свойство paint.

name:string имя свойства paint, которое нужно получить.

getPitch()Возвращает текущий наклон карты.
getRenderWorldCopies()

Возвращает состояние renderWorldCopies. Если это true, то несколько копий мира будут отображаться бок о бок за пределами -180 и 180 градусов долготы. Если установлено значение false:

• когда карта будет увеличена настолько, что ни одно изображение мира не заполнит весь контейнер карты, за пределами 180 и -180 градусов долготы останется пустое пространство.

• объекты, пересекающие 180 и -180 градусов долготы, будут разрезаны надвое (одна часть находится на правом краю карты, а другая-на левом) на каждом уровне масштабирования.

var worldCopiesRendered = map.getRenderWorldCopies();
getSource(id)

Возвращает источник с указанным идентификатором в стиле карты.

Этот метод часто используется для обновления источника с использованием элементов экземпляра для соответствующего типа источника, определенного в источниках. Например, установка данных для источника GeoJSON или обновление URL-адреса и координат источника изображения.

Параметры:

id:string — идентификатор источника, который нужно получить.

var sourceObject = map.getSource('points');
getStyle()

Возвращает объект стиля карты, объект JSON, который может быть использован для воссоздания стиля карты.

map.on('load', function() {
var styleJson = map.getStyle();
});
``

</td>
</tr>
<tr>
<td><code>getTerrain()</code></td>
<td>Возвращает спецификацию <code>terrain</code> или <code>null</code>, если <code>terrain</code> не задан на карте.</td>
</tr>
<tr>
<td><code>getZoom()</code></td>
<td>Возвращает текущий уровень масштабирования карты.<br /><code>map.getZoom();</code></td>
</tr>
<tr>
<td><code>hasControl(control)</code></td>
<td>

Проверяет, есть ли на карте элемент управления.

Параметры:

`control:IControl`IControl для проверки.

```js
// Define a new navigation control.
var navigation = new mmrgl.NavigationControl();
// Add zoom and rotation controls to the map.
map.addControl(navigation);
// Check that the navigation control exists on the map.
const added = map.hasControl(navigation);
// added === true
hasImage(id)

Проверяет, существует ли в стиле изображение с определенным идентификатором. Проверяет как изображения в оригинальном спрайте стиля, так и любые изображения, добавленные с помощью метода Map#addImage.

Параметры:

id:string идентификатор изображения.

// Check if an image with the ID 'cat' exists in
// the style's sprite.
var catIconExists = map.hasImage('cat');
isMoving()Возвращает true, если карта перемещается, масштабируется, вращается или наклоняется из-за анимации камеры или жеста пользователя.
var isMoving = map.isMoving();
isRotating()Возвращает true, если карта вращается из-за анимации камеры или жеста пользователя.
map.isRotating();
isSourceLoaded(id)

Возвращает логическое значение, указывающее, загружен ли источник (source). Возвращает true, если источник с заданным идентификатором в стиле карты не имеет сетевых запросов, в противном случае false.

Параметры:

id:string идентификатор источника (source), подлежащего проверке.

var sourceLoaded = map.isSourceLoaded('bathymetry-data');
isStyleLoaded()Возвращает логическое значение, указывающее, полностью ли загружен стиль карты.
var styleLoadStatus = map.isStyleLoaded();
isZooming()Возвращает true, если карта масштабируется из-за анимации камеры или жеста пользователя.
var isZooming = map.isZooming();
jumpTo(options, eventData?)

Изменяет любую комбинацию center, zoom, bearing и pitch без анимированного перехода. Карта сохранит свои текущие значения для любых деталей, не указанных в опциях.

Параметры:

options:CameraOptions — объект опции

eventData — дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

| // jump to coordinates at current zoom
map.jumpTo({center: [0, 0]});
// jump with zoom, pitch, and bearing options
map.jumpTo({
center: [0, 0],
zoom: 8,
pitch: 45,
bearing: 90
});
keyboard

KeyboardHandler карты, который позволяет пользователю масштабировать, поворачивать и панорамировать карту с помощью сочетаний клавиш. Более подробная информация в разделе KeyboardHandler

listImages()Возвращает массив строк, содержащий идентификаторы всех изображений, доступных в данный момент на карте. Сюда входят как изображения из исходного спрайта стиля, так и любые изображения, добавленные с помощью метода Map#addImage.
var allImages = map.listImages();
loaded()Возвращает логическое значение, указывающее, полностью ли загружена карта.
Возвращает false, если стиль еще не полностью загружен, или если произошли изменения в источниках или стиле, которые еще не полностью загружены.
loadImage(url, callback)

Загружает изображение с внешнего URL-адреса для использования с Map#addImage. Внешние домены должны поддерживать CORS.

Параметры:

url:string — URL-адрес файла изображения. Файл изображения должен быть в формате PNG, WEBP или JPG.

callback:Function — ожидание callback(error, data). Вызывается при загрузке изображения или с аргументом error, если есть ошибка.

// Load an image from an external URL.
map.loadImage('http://placekitten.com/50/50', function(error, image) {
if (error) throw error;
// Add the loaded image to the style's sprite with the ID 'kitten'.
map.addImage('kitten', image);
});
moveLayer(id, beforeId?)

Перемещает слой в другое z-положение.

Параметры:

id:string — идентификатор слоя для перемещения.

beforeId:string — идентификатор слоя до которого будет вставлен новый слой. При просмотре карты слой id появится под слоем BeforeID. Если параметр BeforeID опущен, то слой будет добавлен в конец массива слоев и появится над всеми другими слоями на карте.

// Move a layer with ID 'polygon' before the layer with ID 'country-label'. The `polygon` layer will appear beneath the `country-label` layer on the map.
map.moveLayer('polygon', 'country-label');
off(type, listener)

Удаляет слушатель событий, ранее добавленный с Map#on.

Параметры:

type:string — тип события, ранее использовавшийся для установки слушателя (listener).

listener:Function — функция, ранее установленная в качестве слушателя (listener).

off(type, layerId, listener)

Удаляет лисенер событий для конкретных событий слоя, ранее добавленных с помощью Map#on.

Параметры:

type:string — тип события, ранее использовавшийся для установки слушателя (listener).

layerId:string — идентификатор слоя, ранее использовавшийся для установки слушателя (listener).

listener:Function — функция, ранее установленная в качестве слушателя (listener).

on(type, layerId, listener)

Добавляет слушеталь (listener) для событий заданного типа, необязательно ограниченных объектами в заданном слое стиля.

Параметры:

type:string тип события для слушателя (listener). События, совместимые с необязательным параметром layerId, запускаются, когда курсор входит в видимую часть указанного слоя снаружи этого слоя или за пределами холста карты.

СобытиеСовместимость с layerId
mousedownyes
mouseupyes
mouseoveryes
mouseoutyes
mousemoveyes
mouseenteryes (обязательно)
mouseleaveyes (обязательно)
clickyes
dbclickyes
contextmenuyes
touchstartyes
touchendyes
touchcancelyes
wheel
resize
remove
touchmove
movestart
move
moveend
dragstart
drag
dragend
zoomstart
zoom
zoomend
rotatestart
rotate
rotateend
pitchstart
pitch
pitchend
boxzoomstart
boxzoomend
boxzoomcancel
webglcontextlost
webglcontextrestored
load
render
idle
error
data
styledata
sourcedata
dataloading
styledataloading
sourcedataloading
styleimagemissing

layerId:string (необязательно) идентификатор слоя стиля. Событие будет вызвано только в том случае, если его местоположение находится в пределах видимого объекта в этом слое. Событие будет иметь свойство features, содержащее массив соответствующих объектов. Если layerId не указан, событие не будет иметь свойства features. Обратите внимание, что многие типы событий несовместимы с дополнительным параметром layerId.

listener:Function функция, вызываемая при запуске события.


// Set an event listener that will fire
// when the map has finished loading
map.on('load', function() {
// Once the map has finished loading,
// add a new layer
map.addLayer({
id: 'points-of-interest',
source: {
type: 'vector',
url: 'path-to-source'
},
'source-layer': 'poi_label',
type: 'circle',
paint: {
// Style Specification paint properties
},
layout: {
// Style Specification layout properties
}
});
});

once(type, listener)

Добавляет лисенер (listener), который будет вызываться только один раз для указанного типа события.

Параметры: layerId:string (необязательно) идентификатор слоя стиля. Событие будет вызвано только в том случае, если его местоположение находится в пределах видимого объекта в этом слое. Событие будет иметь свойство features, содержащее массив соответствующих объектов. Если layerId не указан, событие не будет иметь свойства features. Обратите внимание, что многие типы событий несовместимы с дополнительным параметром layerId. listener:Function — функция, вызываемая при запуске события.

once(type, layerId, listener)

Добавляет слушатель (listener), который будет вызываться только один раз для указанного типа события, происходящего на объектах в указанном слое стиля.

Параметры:

type:string — тип события для слушателя (listener); доступные значения: mousedown , mouseup , click , dblclick , mousemove , mouseenter , mouseleave , mouseover , mouseout , contextmenu , touchstart , touchend или touchcancel . События mouseenter и mouseover запускаются, когда курсор входит в видимую часть указанного слоя снаружи этого слоя или за пределами холста карты. события mouseleave и mouseout запускаются, когда курсор покидает видимую часть указанного слоя или покидает холст карты.

layerId:string идентификатор слоя стиля. Только события, расположение которых находится в пределах видимого объекта в этом слое, вызовут слушатель (listener). Событие будет иметь свойство features, содержащее массив соответствующих объектов.

listener:Function — функция, вызываемая при запуске события.

panBy(offset, options?, eventData?)

Панорамирование карты по заданному смещению.

Параметры:

offset:PointLike — координаты x и y для панорамирования карты;

options:AnimationOptions - объект опций;

eventData — дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

panTo(lnglat, options?, eventData?)

Перемещает карту в указанное место с анимированным переходом.

Параметры:

lnglat:LngLatLike — место для панорамирования карты.

options:AnimationOptions — объект опций

eventData — дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

map.panTo([-74, 38]);
// Specify that the panTo animation should last 5000 milliseconds.
map.panTo([-74, 38], {duration: 5000});
``

</td>
</tr>
<tr>
<td><code>project(lnglat)</code></td>
<td>

Возвращает точку, представляющую пиксельные координаты относительно контейнера карты, соответствующие указанному географическому местоположению.

Когда карта наклонена и lnglat полностью находится за камерой, нет никаких пиксельных координат, соответствующих этому местоположению. В этом случае компоненты x и y возвращаемой точки имеют значение `Number.MAX_VALUE`.

Параметры:

`lnglat`:[LngLatLike](/sdk/rustore-geo/map-display-services/interactive-map/geometry) — географическое положение проекта.

```js
var coordinate = [-122.420679, 37.772537];
var point = map.project(coordinate);
queryRenderedFeatures(geometry? options?)

Возвращает массив объектов GeoJSON Feature, представляющих видимые объекты, удовлетворяющие параметрам запроса.

Параметры:

geometry: PointLike | Array<PointLike> — геометрия области запроса в пикселях: либо одна точка, либо нижняя левая и верхняя правая точки, описывающие ограничивающую рамку, где начало координат находится в верхнем левом углу. Пропуск этого параметра (т. е. вызов Map#queryRenderedFeatures с нулевыми аргументами или только с аргументом options) эквивалентен передаче ограничивающего прямоугольника, охватывающего весь видовой экран карты.

options:

НазваниеОписание

layers:Array<string>

Массив идентификаторов слоя стиля для проверки запроса. Будут возвращены только объекты внутри этих слоев. Если этот параметр не определен, то будут проверены все слои.
filter:ArrayФильтр для ограничения результатов запроса.
validate:booleanСледует проверить, соответствует ли спецификации стиля. Отключение проверки — это оптимизация производительности, которую следует использовать только в том случае, если вы предварительно проверили значения, которые будете передавать этой функции.

Возвращает:

Array Object: Массив объектов GeoJSON.

Значение свойств каждого возвращаемого объекта содержит свойства его исходного объекта. Для источников GeoJSON поддерживаются только строковые и числовые значения свойств (т. е. значения null, Array и Object не поддерживаются).

Каждый объект включает в себя свойства слоя верхнего уровня, источника и исходного слоя. Свойство layer - это объект, представляющий слой стиля, к которому принадлежит объект. Свойства layout и paint в этом объекте содержат значения, которые полностью оцениваются для данного уровня масштабирования и объекта.

Включены только те функции, которые в данный момент визуализируются. Некоторые функции не будут включены, например:

• объекты из слоев, свойство видимости которых равно none;

• объекты из слоев, диапазон масштабирования которых исключает текущий уровень масштабирования;

• функции символов, которые были скрыты из-за столкновения текста или значков.

Включаются объекты из всех других слоев, включая объекты, которые могут не иметь визуализируемый результат.

Самый верхний визуализированный объект появляется первым в возвращаемом массиве, а последующие объекты сортируются по убыванию z-порядка. Объекты, которые визуализируются несколько раз (из-за обертывания по антимеридиану при низких уровнях масштабирования), возвращаются только один раз.

Поскольку объекты берутся из векторных тайлов или данных GeoJSON, которые преобразуются в тайлы, геометрия объектов может быть разделена или дублирована через границы тайлов, и в результате объекты могут появляться несколько раз в результатах запроса. Например, предположим, что существует шоссе, проходящее через ограничивающий прямоугольник запроса. Результатом запроса будут те части шоссе, которые лежат внутри тайлов карты, покрывающих ограничивающий прямоугольник, даже если шоссе простирается на другие тайлы, и часть шоссе внутри каждой плитки карты будет возвращена как отдельный объект. Точно так же точечный объект вблизи границы тайлов может появиться в нескольких тайлах из-за буферизации тайла.

// Find all features at a point
var features = map.queryRenderedFeatures(
[20, 35],
{ layers: ['my-layer-name'] }
);
// Find all features within a static bounding box
var features = map.queryRenderedFeatures(
[[10, 20], [30, 50]],
{ layers: ['my-layer-name'] }
);
// Find all features within a bounding box around a point
var width = 10;
var height = 20;
var features = map.queryRenderedFeatures([
[point.x - width / 2, point.y - height / 2],
[point.x + width / 2, point.y + height / 2]
], { layers: ['my-layer-name'] });
// Query all rendered features from a single layer
var features = map.queryRenderedFeatures({ layers: ['my-layer-name'] });
querySourceFeatures(sourceId, parameters?)`

Возвращает массив объектов GeoJSON Feature, представляющих объекты в пределах указанной векторной плитки или источника GeoJSON, которые удовлетворяют параметрам запроса.

Параметры:

sourceId:string идентификатор векторных тайлов или источника GeoJSON для запроса.

параметры:

НазваниеОписание
sourceLayer:stringИмя исходного слоя для запроса. Для источников векторных тайлов этот параметр является обязательным. Для источников GeoJSON он игнорируется.
filter:ArrayФильтр для ограничения результатов запроса.
validate:booleanСледует проверить, соответствует ли спецификации стиля. Отключение проверки — это оптимизация производительности, которую следует использовать только в том случае, если вы предварительно проверили значения, которые будете передавать этой функции.

Возвращает:

Array <Object>: Массив объектов GeoJSON.

В отличие от Map#queryRenderedFeatures эта функция возвращает все объекты, соответствующие параметрам запроса, независимо от того, отображаются они текущим стилем (т. е. видимыми) или нет. Домен запроса включает в себя все загруженные в данный момент векторные тайлы и исходные тайлы GeoJSON: эта функция не проверяет тайлы за пределами видимого в данный момент окна просмотра.

Поскольку объекты берутся из тайлов векторных данных или данных GeoJSON, которые преобразуются в тайлы внутренне, геометрия объектов может быть разделена или дублирована через границы тайлов, и в результате объекты могут появляться несколько раз в результатах запроса. Например, предположим, что существует шоссе, проходящее через ограничивающий прямоугольник запроса. Результатом запроса будут те части шоссе, которые лежат внутри тайлов карты, покрывающих ограничивающий прямоугольник, даже если шоссе простирается на другие тайлах, и часть шоссе внутри каждого тайла карты будет возвращена как отдельный объект. Точно так же точечный объект вблизи границы тайла может появиться в нескольких тайлах из-за буферизации тайлов.

| // Find all features in one source layer in a vector source
var features = map.querySourceFeatures('your-source-id', {
sourceLayer: 'your-source-layer'
});
remove()Очистите и освободите все внутренние ресурсы, связанные с картой. Сюда входят элементы DOM, привязки событий, веб-воркеры и ресурсы WebGL. Используйте этот метод, когда вы закончите использовать карту и хотите убедиться, что она больше не потребляет ресурсы браузера. После этого вы не должны вызывать никаких других методов на карте.
removeControl(control)

Удаляет элемент управления с карты.

Параметры:

control:iControl удаляемый IControl.

// Define a new navigation control.
var navigation = new mmrgl.NavigationControl();
// Add zoom and rotation controls to the map.
map.addControl(navigation);
// Remove zoom and rotation controls from the map.
map.removeControl(navigation);
removeFeatureState(feature, key)

Удаляет состояние объекта, возвращая ему поведение по умолчанию. Если указан только feature.source, он удалит состояние для всех объектов из этого источника. Если также указано feature.id, то он удалит все ключи для состояния этого объекта. Если также указан ключ, он удаляет только этот ключ из состояния этого объекта. Объекты определяются через feature.id, который может быть любым числом или строкой.

Параметры:

feature:Object — идентификатор места удаления состояния. Это может быть источник, объект или определенный ключ объекта. Объекты, возвращаемые из Map#queryRenderedFeatures или обработчиков событий, могут использоваться в качестве идентификаторов объектов.

НазваниеОписание
id:number|stringУникальный идентификатор объекта. Может быть целым числом или строкой, но поддерживает строковые значения только тогда, когда параметр promoteId был применен к источнику или строка может быть приведена к целому числу.
source:stringИдентификатор вектора или источника GeoJSON для объекта.
sourceLayer:string(необязательно) Для источников векторных тайлов требуется sourceLayer.

key:string (необязательно) ключ в состоянии объекта для сброса.

// Reset the entire state object for all features
// in the my-source source
map.removeFeatureState({
source: 'my-source'
});
// When the mouse leaves the my-layer layer, 
// reset the entire state object for the
// feature under the mouse
map.on('mouseleave', 'my-layer', function (e) {
map.removeFeatureState({
source: 'my-source',
sourceLayer: 'my-source-layer',
id: e.features[0].id
});
});
// When the mouse leaves the my-layer layer, 
// reset only the hover key-value pair in the
// state for the feature under the mouse
map.on('mouseleave', 'my-layer', function (e) {
map.removeFeatureState({
source: 'my-source',
sourceLayer: 'my-source-layer',
id: e.features[0].id
}, 'hover' );
});
removeImage(id)

Удалите изображение из стиля. Это может быть изображение из оригинального спрайта стиля или любые изображения, добавленные с помощью метода Map#addImage.

Параметры:

id:string идентификатор изображения.

// If an image with the ID 'cat' exists in
// the style's sprite, remove it.
if (map.hasImage('cat ')) map.removeImage(' cat');
removeLayer(id)

Удаляет слой с заданным идентификатором из стиля карты. Если такого слоя не существует, запускается событие ошибки.

Параметры:

id:string идентификатор слоя для удаления.

// If a layer with ID 'state-data' exists, remove it.
if (map.getLayer('state-data' )) map.removeLayer('state-data' );
removeSource(id)

Удаляет источник из стиля карты.

Параметры:

id:string идентификатор источника для удаления.

map.removeSource('bathymetry-data'); 
repaintВозвращает и задает логическое значение, указывающее, будет ли карта непрерывно перерисовываться. Эта информация полезна для анализа производительности.
resetNorth(options?, eventData?)

Поворачивает карту так, чтобы север был вверх (пеленг 0°), с анимированным переходом.

Параметры:

options:AnimationOptions — объект опций;

eventData дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

resetNorthPitch(options?, eventData?)

Поворачивает и наклоняет карту так, чтобы север был вверх (азимут 0°), а тангаж — 0°, с анимированным переходом.

Параметры:

options:AnimationOptions — объект опций;

eventData — дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

resize(eventData?)

Изменяет размер карты в соответствии с размерами ее контейнерного элемента.

Проверяет, изменился ли размер контейнера карты, и обновляет карту, если она изменилась. Этот метод должен быть вызван после того, как контейнер карты будет изменен программно или когда карта будет показана после первоначального скрытия с помощью CSS.

Параметры:

eventData:Object — дополнительные свойства, передаваемые событиям movestart, move, resizeиmoveend`, которые запускаются в результате изменения размера. Это может быть полезно для дифференциации источника события (например, инициированных пользователем или программно инициированных событий).

// Resize the map when the map container is shown
// after being initially hidden with CSS.
var mapDiv = document.getElementById('map' );
if (mapDiv.style.visibility === true ) map.resize();
rotateTo(bearing, options?, eventData?)

Поворачивает карту на заданный пеленг с анимированным переходом. Пеленг — это направление компаса «вверх»; например, пеленг 90° ориентирует карту так, что восток находится вверху.

Параметры:

bearing:number — желаемый пеленг;

options:AnimationOptions — объект опций;

eventData дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

scrollZoom

ScrollZoomHandler карты, который реализует увеличение и уменьшение масштаба с помощью колеса прокрутки или трекпада. Более подробная информация в разделе ScrollZoomHandler

setBearing(bearing, eventData?)

Устанавливает пеленг карты (вращение). Пеленг - это направление компаса «вверх»; например, пеленг 90° ориентирует карту так, чтобы восток был вверху.

Эквивалентно jumpTo({bearing: bearing}).

Параметры:

bearing:number — желаемый пеленг;

eventData — дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

// rotate the map to 90 degrees
map.setBearing(90);
setCenter(center, eventData?)

Устанавливает географическую центральную точку карты. Эквивалентно jumpTo({center: center}).

Параметры:

center:LngLatLike — центральная точка для установки.

eventData — дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

map.setCenter([-74, 38]);
setFeatureState(feature, state)

Задает состояние объекта. Состояние объекта — это набор определяемых пользователем пар ключ - значение, которые назначаются объекту. При использовании этого метода состояние объединяется с любыми существующими парами ключ-значение в состоянии объекта. Объекты определяются через feature.id атрибут, который может быть любым числом или строкой.

Этот метод можно использовать только с источниками, имеющими feature.id атрибут. Feature.id атрибут может быть определен тремя способами.

• Для векторных источников или источников GeoJSON, включая атрибут id в исходном файле данных. • Для векторных источников или источников GeoJSON используйте опцию promoteId во время определения источника. • Для источников GeoJSON используйте опцию generateId для автоматического назначения идентификатора на основе индекса объекта в исходных данных. Если вы изменяете данные объектов с помощью map.getSource('some id').setData(..), вам может потребоваться повторно применить состояние с учетом обновленных значений идентификаторов.

Параметры:

feature:Object — идентификатор объекта. Объекты, возвращаемые из Map#queryRenderedFeatures или обработчиков событий, могут использоваться в качестве идентификаторов объектов.

НазваниеОписание
id:number | stringУникальный идентификатор объекта. Может быть целым числом или строкой, но поддерживает строковые значения только тогда, когда параметр promoteId был применен к источнику или строка может быть приведена к целому числу.
source:stringИдентификатор вектора или источника GeoJSON для объекта.
sourceLayer:string(необязательно) Для источников векторных тайлов требуется sourceLayer.

state:Object — набор пар ключ-значение. Значения должны быть допустимыми типами JSON.

// When the mouse moves over the my-layer layer, update
// the feature state for the feature under the mouse
map.on('mousemove', 'my-layer', function (e) {
if (e.features.length > 0) {
map.setFeatureState({
source: 'my-source',
sourceLayer: 'my-source-layer',
id: e.features[0].id,
}, {
hover: true
});
}
});
setFilter(layerId, filter, options = )

Устанавливает фильтр для указанного слоя стиля.

Фильтры управляют тем, какие объекты слоя стиля визуализируются из его источника. Любой объект, для которого выражение фильтра имеет значение true, будет отображен на карте. Те, что false, будут скрыты.

Используйте setFilter для отображения подмножества исходных данных.

Чтобы очистить фильтр, передайте null или undefined в качестве второго параметра.

Параметры:

layerId:string идентификатор слоя, к которому будет применен фильтр;

filter: Array | null | undefined — фильтр, соответствующий определению фильтра спецификации стиля. Если задано значение null или undefined, функция удаляет любой существующий фильтр из слоя;

options:object — по умолчанию {} объект опций.

НазваниеОписание
validate:boolean
default: true
Следует проверить, соответствует ли фильтр спецификации стиля. Отключение проверки — это оптимизация производительности, которую следует использовать только в том случае, если вы предварительно проверили значения, которые будете передавать этой функции.
// display only features with the 'name' property 'USA'
map.setFilter('my-layer', [ '==', [ 'get', 'name' ], 'USA' ]);
// display only features with five or more 'available-spots'
map.setFilter('bike-docks', [ '>=', [ 'get', 'available-spots' ], 5]);
// remove the filter for the 'bike-docks' style layer
map.setFilter('bike-docks', null );
setFreeCameraOptions(options, eventData?)

FreeCameraOptions обеспечивает более прямой доступ к базовому объекту камеры. Для обратной совместимости набор состояний, использующий этот API, также должен быть представлен с помощью CameraOptions. Параметры зажимаются в допустимый диапазон или отбрасываются как недопустимые, если преобразование в представление тангажа и пеленга неоднозначно. Например, ориентация может быть недопустимой, если она приводит к тому, что камера находится вверх ногами, кватернион имеет нулевую длину или шаг превышает максимальный предел шага.

Параметры:

options:FreeCameraOptions — объект опций;

eventData — дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

setLayerZoomRange(layerId, minzoom, maxzoom)

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

предупреждение

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

Параметры:

layerId:string — идентификатор слоя, к которому будет применена степень масштабирования.

minzoom:number — минимальный масштаб для установки (0-24).

maxzoom:number максимальный масштаб для установки (0-24`).

map.setLayerZoomRange('my-layer', 2, 5);
setLayoutProperty(layerId, name, value, options = )

Задает значение свойства слоя в указанном слое стиля.

Параметры:

layerId:string — идентификатор слоя, в котором задается свойство.

name:string — имя устанавливаемого свойства.

value:any — значение свойства. Должен иметь тип, соответствующий этому свойству, как определено в спецификации стиля.

options:object — по умолчанию {} объект опций.

НазваниеОписание
validate:boolean
default: true
Следует проверить, соответствует ли фильтр спецификации стиля. Отключение проверки — это оптимизация производительности, которую следует использовать только в том случае, если вы предварительно проверили значения, которые будете передавать этой функции.
map.setLayoutProperty('my-layer', 'visibility', 'none' );
setLight(light, options = )

Устанавливает любую комбинацию значений освещенности.

Параметры:

light:LightSpecification — свойства освещенности. Должен соответствовать спецификации стиля.

options:object — по умолчанию {} объект опций.

НазваниеОписание
validate:boolean
default: true
Следует проверить, соответствует ли фильтр спецификации стиля. Отключение проверки — это оптимизация производительности, которую следует использовать только в том случае, если вы предварительно проверили значения, которые будете передавать этой функции.
var layerVisibility = map.getLayoutProperty('my-layer', 'visibility' );
setMaxBounds(bounds)

Устанавливает или очищает географические границы карты.

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

Параметры:

bounds:LngLatBoundsLike | null | undefined — максимальные границы для установки. Если задано значение null или undefined, функция удаляет максимальные границы карты.

// Define bounds that conform to the LngLatBoundsLike object.
var bounds = [
[-74.04728, 40.68392], // [west, south]
[-73.91058, 40.87764] // [east, north]
];
// Set the map's max bounds.
map.setMaxBounds(bounds);
setMaxPitch(maxPitch)

Устанавливает или очищает максимальный наклон карты. Если текущий наклон карты выше нового максимума, карта будет наклонена к новому максимуму.

Параметры:

maxPitch:number | null | undefined — максимальный наклон для установки. Если задано значение null или undefined, функция удаляет текущий максимальный наклон (устанавливает его равным 85).

setMaxZoom(maxZoom)

Устанавливает или очищает максимальный уровень масштабирования карты. Если текущий уровень масштабирования карты выше нового максимума, карта увеличится до нового максимума.

Параметры:

maxZoom:number | null | undefined — максимальный уровень масштабирования для установки. Если задано значение null или undefined, функция удаляет текущий максимальный масштаб (устанавливает его равным 22).

map.setMaxZoom(18.75);
setMinPitch(minPitch)

Устанавливает или очищает минимальный шаг карты. Если текущий шаг карты ниже нового минимума, карта будет наклонена к новому минимуму.

Параметры:

minPitch:number | null | undefined — минимальный шаг установки (0-85). Если задано значение null или undefined, функция удаляет текущий минимальный шаг (т. е. устанавливает его равным 0)

setMinZoom(minZoom)

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

Не всегда можно уменьшить масштаб и достичь установленного minZoom. Другие факторы, такие как высота карты, могут ограничить масштабирование. Например, если карта имеет высоту 512 пикселей, то масштабирование ниже zoom 0 будет невозможно, независимо от того, на что установлен minZoom.

Параметры:

minZoom:number | null | undefined минимальный уровень масштабирования для установки (1-2 - 241). Если задано значение null или undefined, функция удаляет текущий минимальный масштаб (т. е. устанавливает его равным -2).

map.setMinZoom(12.25);
setPadding(padding, eventData?)

Задает отступ в пикселях вокруг экрана.

Эквивалентно jumpTo({padding: padding}).

Параметры:

padding:PaddingOptions желаемые отступы. Формат: { left: number, right: number, top: number, bottom: number };

eventData дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

// Sets a left padding of 300px, and a top padding of 50px
map.setPadding({ left: 300, top: 50 });
setPaintProperty(layerId, name, value, options = )

Задает значение свойства paint в указанном слое стиля.

Параметры:

layerId:string — идентификатор слоя, в котором задается свойство.

name:string имя устанавливаемого свойства.

value:any значение свойства. Должен иметь тип, соответствующий этому свойству, как определено в спецификации стиля.

options:object по умолчанию {} объект опций.

НазваниеОписание
validate:boolean
default: true
Следует проверить, соответствует ли фильтр спецификации стиля. Отключение проверки — это оптимизация производительности, которую следует использовать только в том случае, если вы предварительно проверили значения, которые будете передавать этой функции.
map.setPaintProperty('my-layer', 'fill-color', '#faafee' );
setPitch(pitch, eventData?)

Устанавливает высоту наклона карты. Эквивалентно jumpTo({pitch: pitch}).

Параметры:

pitch:number — шаг установки измеряется в градусах от плоскости экрана (0-60);

eventData — дополнительные свойства, которые будут добавлены к объектам событий событий, вызванных этим методом.

setRenderWorldCopies(renderWorldCopies)

Устанавливает состояние renderWorldCopies.

Параметры:

renderWorldCopies:boolean — если true, то несколько копий мира будут отображаться бок о бок за пределами -180 и 180 градусов долготы. Если установлено значение false:

• когда карта будет увеличена настолько, что ни одно изображение мира не заполнит весь контейнер карты, за пределами 180 и -180 градусов долготы останется пустое пространство.

• объекты, пересекающие 180 и -180 градусов долготы, будут разрезаны надвое (одна часть находится на правом краю карты, а другая — на левом) на каждом уровне масштабирования.

undefined трактуется как true, null — как false.

map.setRenderWorldCopies( true );
setStyle(style, options?)

Обновляет объект стиля карты с новым значением.

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

Параметры:

style:StyleSpecification | string | null объект JSON, соответствующий схеме, описанной в спецификации стиля, или URL-адрес такого JSON;

options:Object объект опции.

НазваниеОписание
diff:boolean
default: true
Если false, принудительно выполните полное обновление, удалив текущий стиль и создав данный, вместо того чтобы пытаться обновить его на основе diff.
localIdeographFontFamily:string
default: sans-serif
Определяет семейство шрифтов CSS для локально переопределяющей генерации глифов в рамках «CJK Unified Ideographs»,«Hiragana»,«Katakana» и «Hangul Syllables». В этих рамках настройки шрифта из стиля карты будут игнорироваться, за исключением ключевых слов с весом шрифта (light/regular/medium/bold). Установите значение false, чтобы включить настройки шрифта из стиля карты для этих диапазонов глифов. Форсирует полное обновление.
map.setStyle( "path-to-style" );
setTerrain(terrain)

Задает свойство terrain стиля.

Параметры:

terrain:TerrainSpecification — свойства для установки. Должен соответствовать спецификации стиля. Если задано значение null или undefined, функция удаляет terrain.

map.addSource('mmr-dem', {
'type': 'raster-dem',
'url': 'path-to-source',
'tileSize': 512,
'maxzoom': 14
});
// add the DEM source as a terrain layer with exaggerated height
map.setTerrain({ 'source': 'mmr-dem', 'exaggeration': 1.5 });
setZoom(zoom, eventData?)

Устанавливает уровень масштабирования карты. Эквивалентно jumpTo({zoom: zoom}).

Параметры:

zoom:number уровень масштабирования для установки (0-20).

eventData:Object дополнительные свойства, которые будут добавлены к объектам событий событий, вызванных этим методом.

// Zoom to the zoom level 5 without an animated transition
map.setZoom(5);
showCollisionBoxesВозвращает и задает логическое значение, указывающее, будет ли карта отображать поля вокруг всех символов в источнике данных, показывая, какие символы были отрисованы или какие были скрыты из-за коллизий. Эта информация полезна для отладки.
showPaddingВозвращает и задает логическое значение, указывающее, будет ли карта визуализировать отступы.
showTerrainWireframe

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

Каркас всегда красный и рисуется только при активном рельефе.

map.showTerrainWireframe = true;
showTileBoundaries

Возвращает и задает логическое значение, указывающее, будет ли карта отображать контур вокруг каждого тайла и идентификатор тайла. Эти границы тайлов полезны для отладки.

Размер несжатого файла первого векторного источника отображается в верхнем левом углу каждой плитки рядом с идентификатором плитки.

map.showTileBoundaries = true;
snapToNorth(options?, eventData?)

Привязывает карту так, чтобы север был вверх (пеленг 0°), если текущий пеленг находится достаточно близко к нему (т. е. в пределах порога bearingSnap).

Параметры:

options:AnimationOptions — объект опций;

eventData — дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

stop()Останавливает любой анимированный переход.
touchPitch

TouchPitchHandler карты, который позволяет пользователю передавать карту с помощью сенсорных жестов. Более подробную информацию и примеры использования touchPitch можно найти в разделе TouchPitchHandler

touchZoomRotate

TouchZoomRotateHandler карты, который позволяет пользователю масштабировать или поворачивать карту с помощью сенсорных жестов. Более подробную информацию и примеры использования touchZoomRotate можно найти в разделе TouchZoomRotateHandler

triggerRepaint()

Запуск рендеринга одного кадра. Используйте этот метод с пользовательскими слоями для перерисовки карты при изменении слоя. Вызов этого метода несколько раз до того, как будет отрисован следующий кадр, все равно приведет к отрисовке только одного кадра.

map.triggerRepaint();
unproject(point)

Возвращает LngLat, представляющий географические координаты, соответствующие указанным координатам пикселей. Если горизонт виден, а указанный пиксель находится над горизонтом, возвращает LngLat, соответствующий точке на горизонте, ближайшей к точке.

Параметры:

point:PointLike** — пиксельные координаты для unproject.

map.on('click', function (e) {
// When the map is clicked, get the geographic coordinate.
var coordinate = map.unproject(e.point);
});
updateImage(id, image)

Обновите существующее изображение в стиле. Это изображение может быть отображено на карте, как и любой другой значок в спрайте стиля, используя идентификатор изображения со значком-изображением (icon-image), фоновым рисунком (background-pattern), рисунком паттерном (fill-pattern) или линейным рисунком (line-pattern).

Параметры:

id:string — идентификатор изображения;

image:(HTMLImageElement | ImageBitmap | ImageData | {width: number, height: number, data: (Uint8ClampedArray &#124; Uint8ClampedArray)} | StyleImageInterface ) — изображение в виде HTMLImageElement, ImageData, ImageBitmap или объекта со свойствами width, height и data в том же формате, что и ImageData.

// If an image with the ID 'cat' already exists in the style's sprite,
// replace that image with a new image, 'other-cat-icon.png'.
if (map.hasImage('cat ')) map.updateImage(' cat ', ' ./other-cat-icon.png');
versionВерсия MMR GL JS, как указано в package.json.
zoomIn(options?, eventData?)

Увеличивает масштаб карты на 1.

Параметры:

options:AnimationOptions — объект опций;

eventData — дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

// zoom the map in one level with a custom animation duration
map.zoomIn({duration: 1000});
zoomOut(options?, eventData?)

Уменьшает масштаб карты на 1.

Параметры:

options:AnimationOptions — объект опций;

eventData — дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

// zoom the map out one level with a custom animation offset
map.zoomOut({offset: [80, 60]});
zoomTo(zoom, options, eventData?)

Масштабирование карты до заданного уровня масштабирования с анимированным переходом.

Параметры:

zoom:number — уровень масштабирования для перехода;

options:AnimationOptions — объект опций;

eventData — дополнительные свойства, добавляемые к объектам событий, инициируемых этим методом.

// Zoom to the zoom level 5 without an animated transition
map.zoomTo(5);
// Zoom to the zoom level 8 with an animated transition
map.zoomTo(8, {
duration: 2000,
offset: [100, 50]
});

События

Срабатывает при нажатии.

к сведению

Это событие совместимо с необязательным параметром layerId. Если layerId включен в качестве второго аргумента в Map#on, слушатель событий будет срабатывать только тогда, когда точка, которая нажата, содержит видимую часть указанного слоя.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener
map.on('click', function (e) {
console.log('A click event has occurred at ' + e.lngLat);
});
// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener for a specific layer
map.on('click', 'poi-label', function (e) {
console.log('A click event has occurred on a visible portion of the poi-label layer at ' + e.lngLat);
});
НазваниеОписание
boxzoomcancel

Срабатывает, когда пользователь отменяет взаимодействие «масштабирование коробки» или когда ограничивающий прямоугольник не соответствует минимальному порогу размера. См. BoxZoomHandler.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// the user cancels a "box zoom" interaction.
map.on('boxzoomcancel', function () {
console.log('A boxzoomcancel event occurred.' );
});
boxzoomend

Срабатывает, когда заканчивается «box zoom». См. BoxZoomHandler.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// just after a "box zoom" interaction ends.
map.on('boxzoomend', function () {
console.log('A boxzoomend event occurred.' );
});
boxzoomstart

Срабатывает при запуске «box zoom». См. BoxZoomHandler.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// just before a "box zoom" interaction starts.
map.on('boxzoomstart', function () {
console.log('A boxzoomstart event occurred.' );
});
click
contextmenu

Срабатывает при нажатии правой кнопки мыши или клавиши контекстного меню внутри карты.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when the right mouse button is
// pressed within the map.
map.on('contextmenu', function () {
console.log('A contextmenu event occurred.' );
});
data

Срабатывает при загрузке или изменении любых картографических данных.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when map data loads or changes.
map.on('data', function () {
console.log('A data event occurred.' );
});
dataloading

Срабатывает, когда любые картографические данные (стиль, источник, плитка и т. д.) Начинают загружаться или изменяться асинхронно. За всеми dataloading следует событие data или error.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when any map data begins loading
// or changing asynchronously.
map.on('dataloading', function () {
console.log('A dataloading event occurred.' );
});
dbclick

Срабатывает, когда нажимается дважды в одной и той же точке карты в быстрой последовательности.

к сведению

Это событие совместимо с необязательным параметром layerId. Если layerId включен в качестве второго аргумента в Map#on, слушатель событий будет срабатывать только тогда, когда дважды щелкнутая точка содержит видимую часть указанного слоя.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener
map.on('dblclick', function (e) {
console.log('A dblclick event has occurred at ' + e.lngLat);
});
| // Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener for a specific layer
map.on('dblclick', 'poi-label', function (e) {
console.log('A dblclick event has occurred on a visible portion of the poi-label layer at ' + e.lngLat);
});
drag

Срабатывает неоднократно во время взаимодействия «drag to pan». См. DragPanHandler.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// repeatedly during a "drag to pan" interaction.
map.on('drag', function () {
console.log('A drag event occurred.' );
});
dragend

Срабатывает, когда заканчивается взаимодействие «drag to pan». См. DragPanHandler.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when a "drag to pan" interaction ends.
map.on('dragend', function () {
console.log('A dragend event occurred.' );
});
dragstart

Срабатывает, когда начинается взаимодействие «drag to pan». См. DragPanHandler.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when a "drag to pan" interaction starts.
map.on('dragstart', function () {
console.log('A dragstart event occurred.' );
});
error

Срабатывает при возникновении ошибки. Это основной механизм отчетности об ошибках GL JS. Мы используем event вместо throw, чтобы лучше приспособиться к асинхронным операциям. Если слушатель не привязан к событию error, то ошибка будет выведена в консоль.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when an error occurs.
map.on('error', function () {
console.log('A error event occurred.' );
});
idle

Срабатывает после последнего кадра, отрисованного до того, как карта перейдет в состояние «простоя»:

• никаких переходов камеры не происходит; • все запрошенные в данный момент тайлы загружены; • все анимации затухания/перехода завершены;

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// just before the map enters an "idle" state.
map.on('idle', function () {
console.log('A idle event occurred.' );
});
load

Выстрелил сразу после того, как все необходимые ресурсы были загружены и произошел первый визуально полный рендеринг карты.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when the map has finished loading.
map.on('load', function () {
console.log('A load event occurred.' );
});
mousedown

Срабатывает при нажатии внутри карты.

к сведению

Это событие совместимо с необязательным параметром layerId. Если layerId включен в качестве второго аргумента в Map#on, слушатель событий будет срабатывать только при нажатии курсора, находясь внутри видимой части указанного слоя.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener
map.on('mousedown', function () {
console.log('A mousedown event has occurred.' );
});
// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener for a specific layer
map.on('mousedown', 'poi-label', function () {
console.log('A mousedown event has occurred on a visible portion of the poi-label layer.' );
});
mouseenter

Срабатывает, когда курсор входит в видимую часть указанного слоя снаружи этого слоя или за пределами холста карты.

к сведению

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

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener
map.on('mouseenter', 'water', function () {
console.log('A mouseenter event occurred on a visible portion of the water layer.' );
});

</td>
</tr>
<tr>
<td><code>mouseleave</code></td>
<td>

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

:::info

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

:::

```js
// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when the pointing device leaves
// a visible portion of the specified layer.
map.on('mouseleave', 'water', function () {
console.log('A mouseleave event occurred.' );
});
mousemove

Срабатывает при перемещении курсора, когда курсор находится внутри карты. При перемещении курсора по карте событие будет срабатывать каждый раз, когда курсор меняет свое положение на карте.

к сведению

Это событие совместимо с необязательным параметром layerId. Если layerId включен в качестве второго аргумента в Map#on, лисенер событий будет срабатывать только тогда, когда курсор находится внутри видимой части указанного слоя.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener
map.on('mousemove', function () {
console.log('A mousemove event has occurred.' );
});
// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener for a specific layer
map.on('mousemove', 'poi-label', function () {
console.log('A mousemove event has occurred on a visible portion of the poi-label layer.' );
});
mouseout

Срабатывает, когда курсор мыши покидает холст карты.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when the pointing device leave's
// the map's canvas.
map.on('mouseout', function () {
console.log('A mouseout event occurred.' );
});
mouseover

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

к сведению

Это событие совместимо с необязательным параметром layerId. Если layerId включен в качестве второго аргумента в Map#on, лисенер событий будет срабатывать только при перемещении курсора внутри видимой части указанного слоя.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener
map.on('mouseover', function () {
console.log('A mouseover event has occurred.' );
});
| // Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener for a specific layer
map.on('mouseover', 'poi-label', function () {
console.log('A mouseover event has occurred on a visible portion of the poi-label layer.' );
});
mouseup

Срабатывает, когда курсор мыши «высвобождается» в пределах карты.

к сведению

Это событие совместимо с необязательным параметром layerId. Если layerId включен в качестве второго аргумента в Map#on, прослушиватель событий будет срабатывать только тогда, когда курсор будет отпущен, находясь внутри видимой части указанного слоя.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener
map.on('mouseup', function () {
console.log('A mouseup event has occurred.' );
});
// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener for a specific layer
map.on('mouseup', 'poi-label', function () {
console.log('A mouseup event has occurred on a visible portion of the poi-label layer.' );
});
move

Многократно срабатывает во время анимированного перехода от одного вида к другому в результате взаимодействия с пользователем или таких методов, как Map#flyTo.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// repeatedly during an animated transition.
map.on('move', function () {
console.log('A move event occurred.' );
});
moveend

Срабатывает сразу после того, как карта завершает переход от одного вида к другому, в результате либо взаимодействия с пользователем, либо таких методов, как Map#jumpTo.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// just after the map completes a transition.
map.on('moveend', function () {
console.log('A moveend event occurred.' );
});
movestart

Срабатывает непосредственно перед тем, как карта начинает переход от одного вида к другому, в результате либо взаимодействия пользователя, либо таких методов, как Map#jumpTo.

| // Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// just before the map begins a transition
// from one view to another.
map.on('movestart', function () {
console.log('A movestart event occurred.' );
}); | |
pitch

Многократно срабатывает во время анимации тангажа (наклона) карты между одним состоянием и другим в результате взаимодействия пользователя или таких методов, как Map#flyTo.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// repeatedly during a pitch (tilt) transition.
map.on('pitch', function () {
console.log('A pitch event occurred.' );
});
pitchend

Срабатывает сразу же после того, как тангаж (наклон) карты заканчивается в результате взаимодействия с пользователем или таких методов, как Map#flyTo.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// just after a pitch (tilt) transition ends.
map.on('pitchend', function () {
console.log('A pitchend event occurred.' );
});
pitchstart

Срабатывает всякий раз, когда тангаж (наклон) карты начинает меняться в результате взаимодействия с пользователем или таких методов, как Map#flyTo.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// just before a pitch (tilt) transition starts.
map.on('pitchstart', function () {
console.log('A pitchstart event occurred.' );
});
remove

Срабатывает сразу после удаления карты с помощью Map.event:remove.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// just after the map is removed.
map.on('remove', function () {
console.log('A remove event occurred.' );
});
render

Срабатывает всякий раз, когда карта рисуется на экране, в результате:

• изменение положения карты, масштабирования, высоты тона или пеленга;

• изменение стиля карты;

• изменение источника GeoJSON;

• загрузка векторного тайла, файла GeoJSON, глифа или спрайта.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// whenever the map is drawn to the screen.
map.on('render', function () {
console.log('A render event occurred.' );
});
resize

Срабатывает сразу же после изменения размера карты.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// immediately after the map has been resized.
map.on('resize', function () {
console.log('A resize event occurred.' );
});
rotate

Срабатывает неоднократно во время взаимодействия «drag to rotate». См. раздел DragRotateHandler.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// repeatedly during "drag to rotate" interaction.
map.on('rotate', function () {
console.log('A rotate event occurred.' );
});
rotateend

Срабатывает, когда заканчивается взаимодействие «drag to rotate». См. раздел DragRotateHandler.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// just after a "drag to rotate" interaction ends.
map.on('rotateend', function () {
console.log('A rotateend event occurred.' );
});
rotatestart

Срабатывает, когда начинается взаимодействие «drag to rotate». См. раздел DragRotateHandler

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// just before a "drag to rotate" interaction starts.
map.on('rotatestart', function () {
console.log('A rotatestart event occurred.' );
});
sourcedata

Срабатывает при загрузке или изменении одного из источников карты, в том числе при загрузке или изменении тайла, принадлежащей источнику.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when one of the map's sources loads or changes.
map.on('sourcedata ', function() {
console.log(' A sourcedata event occurred.');
});
sourcedataloading

Срабатывает, когда один из источников карты начинает загружаться или изменяться асинхронно. За всеми событиями sourcedataloading следует событие sourcedata или error. Дополнительные сведения см. в разделе MapDataEvent.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// map's sources begin loading or
// changing asyncronously.
map.on('sourcedataloading ', function() {
console.log(' A sourcedataloading event occurred.');
});
styledata

Срабатывает при загрузке или изменении стиля карты. Дополнительные сведения см. в разделе MapDataEvent.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when the map's style loads or changes.
map.on('styledata ', function() {
console.log(' A styledata event occurred.');
});
styledataloading

Срабатывает, когда стиль карты начинает загружаться или меняться асинхронно. За всеми событиями styledataloading следует событие styledata или error. Дополнительные сведения см. в разделе MapDataEvent.

| // Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// map's style begins loading or
// changing asyncronously.
map.on('styledataloading ', function() {
console.log('A styledataloading event occurred.');
});
styleimagemissing

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

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// an icon or pattern is missing.
map.on('styleimagemissing', function () {
console.log('A styleimagemissing event occurred.' );
});
touchcancel

Срабатывает, когда на карте происходит событие touchcancel.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when a touchcancel event occurs within the map.
map.on('touchcancel', function () {
console.log('A touchcancel event occurred.' );
});
touchend

Срабатывает, когда на карте происходит событие touchend.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when a touchstart event occurs within the map.
map.on('touchstart', function () {
console.log('A touchstart event occurred.' );
});
touchmove

Срабатывает, когда на карте происходит событие touchmove.

| // Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when a touchmove event occurs within the map.
map.on('touchmove', function () {
console.log('A touchmove event occurred.' );
});
touchstart

Срабатывает, когда на карте происходит событие touchstart

Параметры:

data:MapMouseEvent.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when a touchstart event occurs within the map. map.on('touchstart', function() {
console.log('A touchstart event occurred.' );
});
webglcontextlost

Срабатывает при потере контекста WebGL.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when the WebGL context is lost.
map.on('webglcontextlost', function () {
console.log('A webglcontextlost event occurred.' );
});
webglcontextrestored

Срабатывает при восстановлении контекста WebGL.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when the WebGL context is restored.
map.on('webglcontextrestored', function () {
console.log('A webglcontextrestored event occurred.' );
});
wheel

Срабатывает, когда на карте происходит прокрутка колесом.

Параметры:

data:MapMouseEvent.

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// when a wheel event occurs within the map.
map.on('wheel', function () {
console.log('A wheel event occurred.' );
});
zoom

Многократно срабатывает во время анимированного перехода с одного уровня масштабирования на другой в результате взаимодействия с пользователем или таких методов, как Map#flyTo.

Параметры:

data:(MapMouseEvent | MapTouchEvent).

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// repeatedly during a zoom transition.
map.on('zoom', function () {
console.log('A zoom event occurred.' );
});
zoomend

Срабатывает сразу после того, как карта завершает переход с одного уровня масштабирования на другой, в результате либо взаимодействия пользователя, либо таких методов, как Map#flyTo.

Параметры:

data:(MapMouseEvent | MapTouchEvent).

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// just after a zoom transition finishes.
map.on('zoomend', function () {
console.log('A zoomend event occurred.' );
});
zoomstart

Срабатывает непосредственно перед тем, как карта начинает переход от одного уровня масштабирования к другому, в результате либо взаимодействия пользователя, либо таких методов, как Map#flyTo.

Параметры:

data:(MapMouseEvent | MapTouchEvent)

// Initialize the map
var map = new mmrgl.Map({ // map options });
// Set an event listener that fires
// just before a zoom transition starts.
map.on('zoomstart', function () {
console.log('A zoomstart event occurred.' );
});