1. Карта

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

Параметры

Название
Тип
Описание
container HTMLElement | string

HTML элемент или id блока, в который MMR GL JS будет рендерить карту.

Указанный элемент не должен содержать дочерних элементов.

minZoom number
default: 0
Минимальный уровень zoom (0-20).
maxZoom number
default: 20
Максимальный уровень zoom (0-20).
minPitch number
default: 0
Минимальный уровень наклона карты (0-85).
maxPitch

number
default: 85

Максимальный уровень наклона карты (0-85).
style object | string

Стиль карты в формате JSON или ссылка на стиль. Это JSON объект, составленный по правилами оформления стилей.

  • light_style.json  mmr://api/styles/light_style.json
  • dark_style.json  mmr://api/styles/dark_style.json
  • main_style.json  mmr://api/styles/main_style.json
hash boolean | string
default: false

Если true, все параметры страницы (zoomlatitudelongitude and pitch) будут синхронизированы в URL через # параметра.

interactive boolean
default: false
Если false, карта не будет реагировать ни на какой элемент управления (мышь, экран, клавиатура).
bearingSnap number
default: 7
Граница, измеряемая в градусах, которая определяет когда пеленг карты будет привязан к северу.
pitchWithRotate boolean
default: true
Если false, управление наклоном карты с помощью «drag and rotate» будет отключено.
clickTolerance number
default: 3
Максимальное количество пикселей, на которое пользователь может переместить указатель мыши во время щелчка, чтобы он считался допустимым щелчком (в отличие от перетаскивания мыши).
attributionControl boolean
default: true
Если true, AttributionControl будет добавлен на карту.
customAttribution string | Array<string> Строка или строки для отображения в AttributionControl . Возможно только если attributionControl = true.
failIfMajorPerfomanceCaveat boolean
default: false
Если true, инициализация карты завершится с ошибкой если производительность карты будет не приемлемой.
preserveDrawingBuffer boolean
default: false

Если true, холст карты можно экспортировать в PNG изображение используя map.getCanvas().toDataUrl()

По умолчанию установлен в false, для улучшения производительности.

antialias boolean
default: false

Если true, gl контекст будет создан с применением MSAA сглаживания, которое может быть полезно для сглаживания кастомных слоев.

По умолчанию установлен в false, для улучшения производительности.

refreshExpiredTiles boolean
default: true
Если false, то карта не будет запрашивать тайлы после истечения срока их жизни в соответствии с заголовками cacheControl / expires.
maxBounds LngLatBoundsLike Если установлено, карта будет ограничена заданными границами.
scrollZoom boolean | object
default: true
Если true, то увеличение с помощью скролла работает. Значение объекта передается в качестве параметров ScrollZoomHandler.
boxZoom boolean
default: true
Если true, взаимодействие типа «box zoom» включено (подробнее BoxZoomHandler)
dragRotate boolean
default: true
Если true, взаимодействие типа «drag to rotate» включено (подробнее DragRotateHandler)
dragPan boolean | object
default: true
Если true, взаимодействие типа «drag to pan» включено (подробнее DragPanHandler)
keyboard

boolean
default: true

Если true, можно использовать клавиатуру и сочетания клавиш для взаимодействия с картой (подробнее KeyboardHandler)
doubleClickZoom boolean
default: true
Если true, взаимодействие типа «double click to zoom» включено (подробнее DoubleClickZoomHandler)
touchZoomRotate boolean | object
default: true
Если true, взаимодействие типа «pinch to rotate and zoom» включено  (подробнее TouchZoomRotateHandler)
touchPitch boolean | object
default: true
Если true, взаимодействие типа «drag to pitch» включено (подробнее TouchPitchHandler)
trackResize boolean
default: true
Если true, карта будет автоматически менять свой размер при изменении окна.
center LngLatLike
default: [0,0]

Начальная точка карты.

Если центр не указан в параметрах конструктора, MMR GL JS будет смотреть его в объекте стиля карты. Если он также не указан в стиле, то по умолчанию он будет равен [0, 0].

Примечание: используется порядок координат долготы, широты (в отличие от широты, долготы) для соответствия GeoJSON.

zoom number
default: 0

Начальный уровень масштаба карты.

Если уровень масштаба не указан в параметрах конструктора, MMR GL JS будет смотреть его в объекте стиля карты. Если он также не указан в стиле, то по умолчанию он будет равен 0.

bearing number
default: 0

Начальный пеленг (поворот) карты, измеренный в градусах против часовой стрелки с севера.

Если пеленг не указан в параметрах конструктора, MMR GL JS будет искать его в объекте стиля карты. Если он также не указан в стиле, то по умолчанию он будет равен 0.

pitch number
default: 0

Начальный шаг (наклон) карты, измеряемый в градусах от плоскости экрана (0-85).

Если шаг не указан в параметрах конструктора, MMR GL JS будет искать его в объекте стиля карты. Если он также не указан в стиле, то по умолчанию он будет равен 0.

bounds LngLatBoundsLike Начальные границы карты. Если заданы границы, то он переопределяет center и zoom.
fitBoundsOptions object Map#fitBounds Параметры объекта следует использовать только при подгонке исходных границ приведенных выше (bounds).
renderWorldCopies boolean
default: true

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

Если установлено значение false:

  • когда карта будет увеличена настолько, что ни одно изображение мира не заполнит весь контейнер карты, за пределами 180 и -180 градусов долготы останется пустое пространство.
  • объекты, пересекающие 180 и -180 градусов долготы, будут разрезаны надвое (одна часть находится на правом краю карты, а другая - на левом) на каждом уровне масштабирования.
maxTileCache number
default: null
Максимальное количество плиток, хранящихся в кэше для данного источника (source). Если этот параметр опущен, размер кэша будет динамически определяться в зависимости от текущего окна просмотра.
localIdeographFontFamily string
default: sans-serif

Определяет CSS font-family для локального переопределения генерации глифов в 'CJK Unified Ideographs', 'Hiragana', 'Katakana' и 'Hangul Syllables'.

В этих языковых структурах настройки шрифта из стиля карты будут игнорироваться, кроме font-weight (light/regular/medium/bold).

Установите значение false, чтобы включить настройки шрифта из стиля карты для этих глифов.

localFontFamily string
default: false

Определяем CSS font-family для переопределения генерации всех глифов. 

Настройки шрифта из стиля карты будут игнорироваться, кроме font-weight (light/regular/medium/bold).

Если этот параметр установлен, то он переопределяет настройку в localIdeographFontFamily.

transformRequest RequestTransformFunction
default: null
Функция выполняется до выполнения URL запроса. Она может использоваться для изменения URL, установки заголовков или свойства credentials для кросс-доменных запросов.
collectResourceTiming boolean
default: false
Если true, то информация Resource Timing API будет доступна для запросов выполняемых GeoJSON и Vector Tile (эта информация обычно недоступна из основного потока JavaScript). Информация будет возвращена в свойстве ResourceTiming.
fadeDuration number
default: 300
Управление длительности анимации fade-in/fade-out для коллизий подписей в миллисекундах. Этот параметр не влияет на продолжительность переходов стиля во время выполнения или перекрестного затухания растровых плиток.
crossSourceCollisions boolean
default: true
Если true, то символы из нескольких источников могут сталкиваться друг с другом во время обнаружения столкновения. Если значение false, обнаружение коллизий выполняется отдельно для символов в каждом источнике.
accessToken string
default: null
Если указан, тогда будет использоваться этот токен вместо того, который указан в mmrgl.accessToken
locale object
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 | 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 | 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, если пеленг ненулевой. Если на карте заданы отступы, границы будут соответствовать вставке.

Параметры:
bounds:LngLatBoundsLike центрирует эти границы в окне и используйте самый высокий уровень масштабирования вплоть до 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()

Возвращает элемент <canvas> карты.

getCanvasContainer()

Возвращает 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() Возвращает HTML-элемент, содержащий карту.
getFeatureState(feature)

Возвращает состояние объекта. Состояние объекта  это набор определяемых пользователем пар ключ-значение, которые назначаются объекту во время выполнения. Фичи (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();
});
getTerrain() Возвращает спецификацию terrain или null, если terrain не задан на карте.
getZoom()

Возвращает текущий уровень масштабирования карты.

map.getZoom();
hasControl(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);
// 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
});
Copy
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
mousedown yes
mouseup yes
mouseover yes
mouseout yes
mousemove yes
mouseenter yes (required)
mouseleave yes (required)
click yes
dbclick yes
contextmenu yes
touchstart yes
touchend yes
touchcancel yes
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
        }
    });
});
// Set an event listener that will fire
// when a feature on the countries layer of the map is clicked
map.on('click''countries'function(e) {
    new mmrgl.Popup()
        .setLngLat(e.lngLat)
        .setHTML(`Country name: ${e.features[0].properties.name}`)
        .addTo(map);
});
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});
project(lnglat)

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

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

Параметры:
lnglat:LngLatLike Географическое положение проекта.

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 для запроса.

parameters:

Название
Описание
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 м
инимальный уровень масштабирования для установки (-2 - 24). Если задано значение 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 | 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]
});

События

Название
Описание
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

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

Это событие совместимо с необязательным параметром 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);
});
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.');
});
mouseleave

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

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

// 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.');
});

 

Was this information helpful?