Map — JavaScript — Дока
Кратко
СкопированоMap
— коллекция для хранения данных любого типа в виде пар [ключ
, то есть каждое значение сохраняется по уникальному ключу, который потом используется для доступа к этому значению. Причём в качестве ключей тоже принимаются значения любого типа.
Основные методы для работы с коллекцией Map
:
set
— устанавливает значение;( ключ , значение ) get
— возвращает значение;( ключ ) has
— проверяет наличие переданного ключа;( ключ ) values
— возвращает итератор всех значений коллекции;( ) keys
— возвращает итератор всех ключей коллекции;( ) entries
— возвращает итератор пар( ) [ключ
;, значение ] delete
— удаляет конкретное значение;( ключ ) clear
— полностью очищает коллекцию;( ) for
— перебирает ключи и значения коллекции.Each ( колбэк )
Содержит свойство size
для получения количества значений в коллекции.
Пример
Скопированоconst someData = new Map()someData.set('1', 'Значение под строковым ключом 1')someData.set(1, 'Значение под числовым ключом 1')someData.set(true, 'Значение под булевым ключом true')console.log(someData.size)// 3console.log(someData.get(1))// Значение под числовым ключом 1console.log(someData.get('1'))// Значение под строковым ключом 1console.log(someData.has(true))// truesomeData.clear()console.log(someData.size)// 0
const someData = new Map()
someData.set('1', 'Значение под строковым ключом 1')
someData.set(1, 'Значение под числовым ключом 1')
someData.set(true, 'Значение под булевым ключом true')
console.log(someData.size)
// 3
console.log(someData.get(1))
// Значение под числовым ключом 1
console.log(someData.get('1'))
// Значение под строковым ключом 1
console.log(someData.has(true))
// true
someData.clear()
console.log(someData.size)
// 0
Как понять
СкопированоСоздание коллекции
СкопированоКоллекция создаётся при помощи конструктора.
Map
:const map = new Map()console.log(map.size)// 0
const map = new Map()
console.log(map.size)
// 0
А можно сразу передать начальные значения. Для этого в конструктор нужно передать массив, состоящий из других массивов. Эти массивы должны состоять из двух элементов: первый элемент — ключ, а второй — значение:
const map = new Map([['js', 'JavaScript'], ['css', 'Cascading Style Sheets']])console.log(map.size)// 2console.log(map.get('js'))// JavaScriptconst map = new Map([['js', 'JavaScript'], ['css', 'Cascading Style Sheets']]) console.log(map.size) // 2 console.log(map.get('js')) // JavaScript
Работа с коллекцией
СкопированоMap
предоставляет небольшой набор удобных методов для работы с данными.
Чтобы сохранить значение в коллекции, нужно использовать метод set
. Первым аргументом передаём ключ, а вторым — значение:
const map = new Map()map. set('js', 'JavaScript')
const map = new Map()
map.set('js', 'JavaScript')
Получить значение можно при помощи метода get
единственным аргументом которого передаём ключ, данные которого хотим получить. Если в коллекции нет значения для переданного ключа, get
вернёт undefined
.
const map = new Map()map.set('js', 'JavaScript')console.log(map.get('js'))// JavaScript
const map = new Map()
map.set('js', 'JavaScript')
console.log(map.get('js'))
// JavaScript
Узнать, есть ли в коллекции значение с конкретным ключом, можно с помощью метода has
:
const map = new Map()map.set('js', 'JavaScript')console.log(map.has('js'))// trueconsole.log(map.has('css'))// false
const map = new Map()
map.set('js', 'JavaScript')
console.log(map.has('js'))
// true
console. log(map.has('css'))
// false
Удалять конкретное значение можно методом delete
, который также принимает ключ в качестве аргумента. delete
возвращает true
, если элемент для переданного ключа существовал и был удалён. Полностью очищает коллекцию метод clear
:
const map = new Map()map.set('html', 'HTML')map.set('css', 'CSS')map.set('js', 'JavaScript')console.log(map.size)// 3map.delete('css')console.log(map.size)// 2map.clear()console.log(map.size)// 0
const map = new Map()
map.set('html', 'HTML')
map.set('css', 'CSS')
map.set('js', 'JavaScript')
console.log(map.size)
// 3
map.delete('css')
console.log(map.size)
// 2
map.clear()
console.log(map.size)
// 0
Обход значений
СкопированоMap
предоставляет встроенный итератор для обхода значений:
const map = new Map()map. set('html', 'HTML')map.set('css', 'CSS')map.set('js', 'JavaScript')for (let [key, value] of map) { console.log(`${key} - ${value}`)}// html - HTML// css - CSS// js - JavaScript
const map = new Map()
map.set('html', 'HTML')
map.set('css', 'CSS')
map.set('js', 'JavaScript')
for (let [key, value] of map) {
console.log(`${key} - ${value}`)
}
// html - HTML
// css - CSS
// js - JavaScript
А ещё можно сделать то же самое при помощи метода for
:
const map = new Map()map.set('html', 'HTML')map.set('css', 'CSS')map.set('js', 'JavaScript')map.forEach((value, key) => { console.log(`${key} - ${value}`)})// html - HTML// css - CSS// js - JavaScriptconst map = new Map() map.set('html', 'HTML') map.set('css', 'CSS') map.set('js', 'JavaScript') map.forEach((value, key) => { console.log(`${key} - ${value}`) }) // html - HTML // css - CSS // js - JavaScript
⚠️
Обратите внимание: когда вызывается метод for
, в колбэк передаются текущий ключ и соответствующее ему значение — индексов в Map
нет.
При обходе значений Map
всегда выводит их в том порядке, в котором они были добавлены.
Отличия от объектов
СкопированоОбычные объекты тоже подходят для хранения данных. Однако ключи в них могут быть только строками или символами:
const obj = { 1: 'String', '2': 'Number', true:'Bool',}console.log(Object.keys(obj))// [ '1', '2', 'true' ]
const obj = {
1: 'String',
'2': 'Number',
true:'Bool',
}
console.log(Object.keys(obj))
// [ '1', '2', 'true' ]
Map
же позволяет использовать в качестве ключа любое значение: объект, функцию, примитивные значения и даже null
, undefined
и NaN
. Для сравнения ключей используется алгоритм SameValueZero.
Кратко
Алгоритм SameValueZero работает так же, как и строгое сравнение при помощи
с единственным отличием: для SameValueZero NaN
равен NaN
. Именно по этой причине в качестве ключей Map
можно использовать NaN
— мы можем найти такой ключ простым сравнением.
Подробно
Алгоритм SameValueZero для сравнения переменных x
и y
согласно спецификации:
- Если типы
x
иy
отличаются, возвращаем false (Возможные типы: Undefined, Null, Boolean, String, Number, BigInt, Object или Symbol. Не путать с результатом выполнения оператора
). - Если тип
x
иy
Number, то:- Если значение
x
NaN и значениеy
NaN, возвращаем true. - Если значение
x
-0, а значениеy
+0, возвращаем true. - Если значение
x
+0, а значениеy
-0, возвращаем true. - Возвращаем true, если значение
равно значениюy
. В противном случае возвращаем false.
- Если значение
- Если тип
x
иy
BigInt, то возвращаем true, если значениеx
равно значениюy
. В противном случае возвращаем false. - Если тип
x
иy
Undefined, то возвращаем true. - Если тип
x
иy
Null, то возвращаем true. - Если тип
x
иy
String, то возвращаем true, еслиx
иy
одинаковые последовательности символов (одинаковая длина и такие же коды символов на соответствующих индексах). В противном случае возвращаем false. - Если тип
x
иy
Boolean, то возвращаем true, если оба значенияx
иy
true или оба значенияx
иy
false. В противном случае возвращаем false. - Если тип
x
иy
Symbol, то возвращаем true, еслиx
иy
являются одним и тем же значением символа. В противном случае возвращаем - Если типы
x
иy
наследуются от Object, то возвращаем true, еслиx
иy
ссылаются на один и тот же объект. В противном случае возвращаем false.
const func = (name) => `Hello, ${name}`const obj = { foo: 'bar' }const map = new Map()map.set(func, 'func value')map.set(obj, 'object value')map.set(undefined, 'undefined value')map.set(NaN, 'NaN value')map.set(null, 'null value')console.log(map.get(func))// func valueconsole.log(map.get(obj))// object valueconsole.log(map.get(undefined))// undefined valueconsole.log(map.get(NaN))// NaN valueconsole.log(map.get(null))// null value
const func = (name) => `Hello, ${name}`
const obj = { foo: 'bar' }
const map = new Map()
map. set(func, 'func value')
map.set(obj, 'object value')
map.set(undefined, 'undefined value')
map.set(NaN, 'NaN value')
map.set(null, 'null value')
console.log(map.get(func))
// func value
console.log(map.get(obj))
// object value
console.log(map.get(undefined))
// undefined value
console.log(map.get(NaN))
// NaN value
console.log(map.get(null))
// null value
При использовании SameValueZero для сравнения ключей, приведение типов не происходит. Поэтому, число и строковое представление этого же числа будут являться двумя разными ключами:
const map = new Map()map.set(1, 'numeric 1')map.set('1', 'string 1')console.log(map.size)// 2console.log(map.get(1))// numeric 1console.log(map.get('1'))// string 1
const map = new Map()
map.set(1, 'numeric 1')
map.set('1', 'string 1')
console.log(map.size)
// 2
console.log(map.get(1))
// numeric 1
console.log(map.get('1'))
// string 1
При использовании непримитивных типов в качестве ключей стоит помнить, что они хранятся по ссылке, поэтому для доступа к заданному с помощью объекта ключу, необходимо передавать тот же самый объект.
Создадим две переменные, которые указывают на один и тот же объект и добавим их ключами в Map:
const dataObject = { position: 'left' }const sameObject = dataObjectconsole.log(dataObject === sameObject)// trueconst map = new Map()map.set(dataObject, 'value for dataObject')map.set(sameObject, 'value for sameObject')console.log(map.size)// 1console.log(map.get(dataObject))// value for sameObjectconsole.log(map.get(sameObject))// value for sameObject
const dataObject = { position: 'left' }
const sameObject = dataObject
console.log(dataObject === sameObject)
// true
const map = new Map()
map.set(dataObject, 'value for dataObject')
map.set(sameObject, 'value for sameObject')
console.log(map.size)
// 1
console.log(map.get(dataObject))
// value for sameObject
console.log(map.get(sameObject))
// value for sameObject
А вот если мы возьмём два отдельных объекта с одинаковым содержимым, то мы получим два разных ключа:
const playerOne = { position: 'left' }const playerTwo = { position: 'left' }console. log(playerOne === playerTwo)// falseconst map = new Map()map.set(playerOne, 'player 1')map.set(playerTwo, 'player 2')console.log(map.size)// 2console.log(map.get(playerOne))// player 1console.log(map.get(playerTwo))// player 2
const playerOne = { position: 'left' }
const playerTwo = { position: 'left' }
console.log(playerOne === playerTwo)
// false
const map = new Map()
map.set(playerOne, 'player 1')
map.set(playerTwo, 'player 2')
console.log(map.size)
// 2
console.log(map.get(playerOne))
// player 1
console.log(map.get(playerTwo))
// player 2
javascript. Можно ли отсортировать объект карты ES6?
Краткий ответ
new Map([...map].sort((a, b) => // Некоторая функция сортировки, сравнивающая ключи с a[0] b[0] или значения с a[1] b[1] ))
Если вы ожидаете строки: Как обычно для .sort
вам нужно вернуть -1 если меньше и 0 если равно; для строк рекомендуется использовать .localeCompare()
, который делает это правильно и автоматически обрабатывает неудобные символы, такие как ä
, где позиция зависит от языкового стандарта пользователя.
Вот простой способ отсортировать карту по строке ключей :
new Map([...map].sort((a, b) => String(a[0]).localeCompare(b[ 0])))
…и по строке значений :
new Map([...map].sort((a, b) => String(a[1]).localeCompare(b[1])))
Они типобезопасны в том смысле, что они не будут выдавать ошибку, если попадут на нестроковый ключ или значение. String()
в начале заставляет a
, чтобы быть строкой (и это хорошо для удобочитаемости), а .localeCompare()
сама заставляет свой аргумент быть строкой, не вызывая ошибки.
Подробно с примерами
tldr: ...map.entries()
избыточно, просто ...map
подойдет; и ленивый .sort()
без передачи функции сортировки рискует странными ошибками пограничного случая, вызванными принуждением строки.
.entries()
в [...map.entries()]
(предлагается во многих ответах) является избыточным, возможно, добавляет дополнительную итерацию карты, если JS-движок не оптимизирует это для вас.
В простом тестовом примере вы можете сделать то, о чем просит вопрос, с помощью:
new Map([...map].sort())
… который, если все ключи являются строками, сравнивает сжатые и принудительно соединенные запятыми строки ключ-значение, такие как '2-1,foo'
и '0-1,[object Object]'
, возвращая новая карта с новым порядком размещения:
Примечание: если вы видите только {}
в выводе консоли SO, посмотрите в своей реальной консоли браузера
const map = new Map([ ['2-1', 'фу'], ['0-1', {бар: 'бар'}], ['3-5', () => 'фуз'], ['3-2', ['баз']] ]) console.log(new Map([...map].sort()))
ОДНАКО , не рекомендуется полагаться на подобное принуждение и строковое преобразование. Вы можете получить такие сюрпризы, как:
const map = new Map([ ['2', '3, а?'], ['2,1', 'фу'], ['0,1', {бар: 'бар'}], ['3,5', () => 'фуз'], ['3,2', ['баз']], ]) // Сравнивает '2,3, ну?' с «2,1, фу» // Поэтому сортирует ['2', '3,buh?'] ******ПОСЛЕ****** ['2,1', 'foo'] console. log('А?', новая карта([...карта].sort())) // Посмотрим, что именно каждая итерация использует в качестве компаратора for (постоянная итерация карты) { console.log(итерация.toString()) }
Такие ошибки очень сложно отлаживать — не рискуйте!
Если вы хотите выполнить сортировку по ключам или значениям, лучше всего получить к ним явный доступ с помощью a[0]
и b[0]
в функции сортировки, как указано выше; или с деструктуризацией массива в аргументах функции:
const map = new Map([ ['2,1', 'это перезаписано'], ['2,1', '0,1'], ['0,1', '2,1'], ['2,2', '3,5'], ['3,5', '2,1'], ['2', ',9,9'] ]) // Примеры использования деструктуризации массива. Мы говорим «ключи» и «ценности». // в именах функций, чтобы было ясно и понятно, каково их намерение. const sortStringKeys = ([a], [b]) => String(a).localeCompare(b) const sortStringValues = ([a], [b]) => String(a).localeCompare(b) console.log('По ключам:', new Map([...map].sort(sortStringKeys))) console. log('По значениям:', new Map([...map].sort(sortStringValues)))
И если вам нужно сравнение, отличное от алфавитного порядка строк, не забывайте всегда возвращать -1
и 1
для до и после, а не false
или 0
, как с необработанным a[0] > b[0]
, потому что это считается равным.
Карта | Mapbox GL JS
Карта | Картбокс GL JS | MapboxAll docschevron-rightMapbox GL JSchevron-rightarrow-leftAPI Referencechevron-rightMap
src/ui/map.js
Объект Map
представляет карту на вашей странице. Он раскрывает методы
и свойства, позволяющие программно изменять карту,
и запускает события, когда пользователи взаимодействуют с ним.
Вы создаете карту
, указав контейнер
и другие параметры.
Затем Mapbox GL JS инициализирует карту на странице и возвращает вашу карту
.
объект.
Расширяется по событию.
новый класс карты (варианты: объект)
параметры (объект)
Имя | Описание |
---|---|
options. accessToken строка по умолчанию: ноль | Если указано, карта будет использовать это
жетон
вместо определенного в mapboxgl.accessToken . |
options.antialias логическое значение по умолчанию: false | Если правда , контекст gl будет создан с
сглаживание MSAA
, что может быть полезно для сглаживания пользовательских слоев. Это ложь по умолчанию в качестве оптимизации производительности. |
options.attributionControl логический по умолчанию: true | Если правда , ан
АтрибуцияКонтроль
будут добавлены на карту. |
доп. подшипник номер по умолчанию: 0 | Начальный
несущий
(поворот) карты, измеренный в градусах против часовой стрелки с севера. Если подшипник не указан в параметрах конструктора, Mapbox GL JS будет искать его в объекте стиля карты. Если он также не указан в стиле, по умолчанию будет использоваться 0 . |
options.bearingSnap номер по умолчанию: 7 | Порог, измеряемый в градусах, который определяет, когда карта
подшипник сместится на север. Например, с подшипникSnap из 7, если пользователь вращает
карту в пределах 7 градусов северной широты, карта автоматически привязывается к точному северу. |
options.bounds LngLatBoundsLike по умолчанию: null | Начальные границы карты. Если границ указан, он переопределяет центр и зум варианты конструктора. |
options.boxZoom логический по умолчанию: true | Если правда , включено взаимодействие «масштабирование окна» (см. BoxZoomHandler
). |
options.center LngLatLike по умолчанию: [0,0] | Исходный географический
Центральная точка
карты. Если центр не указан в параметрах конструктора, Mapbox GL JS будет искать его в объекте стиля карты. Если он также не указан в стиле, по умолчанию будет использоваться [0, 0] Примечание. Mapbox GL использует порядок координат долготы и широты (в отличие от широты и долготы) для соответствия GeoJSON. |
options.clickTolerance число по умолчанию: 3 | Максимальное количество пикселей, на которое пользователь может нажмите, чтобы он считался действительным кликом (в отличие от перетаскивание мышью). |
options.collectResourceTiming логическое значение по умолчанию: false | Если правда , информация Resource Timing API будет собираться для запросов, сделанных веб-воркерами GeoJSON и Vector Tile (эта информация обычно недоступна из основного потока Javascript). Информация будет возвращена в ресурсТиминг собственность соответствующих данные события. |
options.container (HTMLElement | строка) | Элемент HTML, в котором Mapbox GL JS будет отображать карту, или строка элемента идентификатор . Указанный элемент не должен иметь дочерних элементов. |
options.cooperativeGestures логический? | Если правда , масштабирование с помощью прокрутки потребует нажатия клавиши Ctrl или ⌘ во время прокрутки для увеличения карты, а сенсорное панорамирование потребует использования двух пальцев при панорамировании для перемещения карты. Сенсорный шаг потребует трех пальцев для активации, если он включен. |
options.crossSourceCollisions логическое значение по умолчанию: true | Если правда , символы из нескольких источников могут конфликтовать друг с другом при обнаружении конфликтов. Если ложь , обнаружение коллизий запускается отдельно для символов в каждом источнике. |
options.customAttribution (строка | Массив<строка>) по умолчанию: null | Строка или строки для отображения в
АтрибуцияКонтроль
. Применимо только если options.attributionControl является правда . |
options.doubleClickZoom логическое значение по умолчанию: true | Если правда , взаимодействие «двойной щелчок для увеличения» включено (см.
DoubleClickZoomHandler
). |
options.dragPan (логический | Объект) по умолчанию: true | Если правда , взаимодействие «перетаскивание для панорамирования» включено. Ан Объект значение передается как опции в
DragPanHandler # включить
. |
options. dragRotate логический по умолчанию: true | Если правда , взаимодействие «перетаскивание для вращения» включено (см.
DragRotateHandler
). |
options.fadeDuration число по умолчанию: 300 | Управляет длительностью анимации появления/исчезновения для коллизий меток в миллисекундах. Этот параметр влияет на все слои символов. Этот параметр не влияет на продолжительность переходов стилей во время выполнения или перекрестного затухания растровых плиток. |
options.failIfMajorPerformanceCaveat логическое значение по умолчанию: ложь | Если правда , создание карты завершится ошибкой, если производительность Mapbox GL JS будет значительно хуже ожидаемой (будет использоваться программный рендерер). |
options.fitBoundsOptions Объект? | А
Карта#fitBounds
объект опций для использования только при установке начального границ предоставлено выше. |
options.hash (логическое значение | строка) по умолчанию: ложь | Если правда , карта
позиция
(масштаб, широта центра, долгота центра, азимут и шаг) будут синхронизированы с хэш-фрагментом URL-адреса страницы.
Например, http://path/to/my/page.html#2.59/39.26/53.07/-24.1/60 .
Опционально может быть предоставлена дополнительная строка для указания хэша в стиле параметра,
например
http://path/to/my/page.html#map=2.59/39.26/53.07/-24.1/60&foo=bar
, где фу является настраиваемым параметром и бар — произвольный хеш, отличный от хэша карты. |
options.interactive логическое значение по умолчанию: true | Если ложь , к карте не будут привязаны прослушиватели мыши, касания или клавиатуры, поэтому она не будет реагировать на взаимодействие. |
options. keyboard логический по умолчанию: верно | Если правда , сочетания клавиш включены (см.
KeyboardHandler
). |
options.language ( по умолчанию: null 901 53 | Строка с языковым тегом BCP 47 или массив таких строки, представляющие желаемые языки, используемые для меток карты и компонентов пользовательского интерфейса. Языки можно задавать только для источников векторных листов Mapbox.
По умолчанию GL JS не устанавливает язык, поэтому язык листов Mapbox будет определяться TileJSON источника векторных листов.
Допустимые языковые строки должны быть
Код языка BCP-47
. Неподдерживаемые коды BCP-47 не будут включать никаких переводов. Неверные коды приведут к исправимой ошибке.
Если у ярлыка нет перевода для выбранного языка, он будет отображаться на местном языке ярлыка.
Если опция установлена на авто , GL JS выберет предпочитаемый пользователем язык в соответствии с настройками браузера. окно.навигатор.язык свойство.
Если локаль не задано отдельно, этот язык также будет использоваться для локализации пользовательского интерфейса для поддерживаемых языков. |
options.locale Object default: null | Патч для применения к таблице локализации по умолчанию для таких строк пользовательского интерфейса, как как всплывающие подсказки управления. языковой стандарт объект сопоставляет идентификаторы строк пользовательского интерфейса в пространстве имен с переведенными строками на целевом языке;
видеть src/ui/default_locale.js для примера со всеми поддерживаемыми строковыми идентификаторами. Объект может указывать все строки пользовательского интерфейса (таким образом добавляя поддержку нового перевода) или только подмножество строк (таким образом исправляя таблицу перевода по умолчанию). |
options.localFontFamily string по умолчанию: false | Определяет CSS семейство шрифтов для локального переопределения генерации всех глифов. Настройки шрифта из стиля карты будут игнорироваться, за исключением ключевых слов веса шрифта (светлый/обычный/средний/жирный). Если установлено, этот параметр переопределяет параметр в localIdeographFontFamily. |
options.localIdeographFontFamily строка по умолчанию: 'sans-serif' | Определяет семейство шрифтов CSS для локального переопределения генерации глифов в «Унифицированных иероглифах CJK», «Хирагана» , диапазоны «Катакана», «Слоги хангыль» и «Символы и пунктуация CJK».
В этих диапазонах настройки шрифта из стиля карты будут игнорироваться, за исключением ключевых слов веса шрифта (светлый/обычный/средний/жирный).
Установлен в ложь , чтобы включить настройки шрифта из стиля карты для этих диапазонов глифов. Обратите внимание, что
Мапбокс Студия
устанавливает это значение в ложь по умолчанию.
Цель этой опции — избежать запросов сервера глифов, интенсивно использующих полосу пропускания. Пример использования этой опции см.
Используйте местные идеограммы
. |
options.logoPosition string по умолчанию: 'нижний левый' | Строка, представляющая позицию Mapbox надпись на карте. Допустимые варианты вверху слева , вверху справа , нижний левый , внизу справа . |
options.maxBounds LngLatBoundsLike по умолчанию: null | Если установлено, карта будет минусовой обучены заданным границам. |
options.maxPitch номер по умолчанию: 85 | Максимальный шаг карты (0-85). |
options.maxTileCacheSize число по умолчанию: ноль источник. Если этот параметр не указан, кеш будет иметь динамический размер в зависимости от текущего окна просмотра. | |
options.maxZoom номер по умолчанию: 22 | Максимальный уровень масштабирования карты (0-24). |
options.minPitch номер по умолчанию: 0 | Минимальный шаг карты (0-85). |
options.minTileCacheSize число по умолчанию: ноль | данный источник. Большие окна просмотра используют больше плиток и требуют больших кешей. Окна просмотра большего размера чаще встречаются на устройствах с большим объемом памяти и на страницах, где карта важнее. Если этот параметр не указан, кеш будет иметь динамический размер в зависимости от текущего окна просмотра. |
options.minZoom номер по умолчанию: 0 | Минимальный уровень масштабирования карты (0-24). |
options.optimizeForTerrain логическое значение по умолчанию: true | С включенным рельефом, если правда , карта будет отрисовываться в соответствии с приоритетом производительности, что может привести к переупорядочению слоев, позволяющему максимизировать производительность (слои, наложенные на рельеф, будут отображаться первыми, включая заливку, линию, фон, отмывку холма и растр). В противном случае, если установлено ложь , карта всегда будет отображаться с приоритетом порядка слоев. |
options.performanceMetricsCollection логическое значение по умолчанию: true | Если правда , mapbox-gl будет собирать и отправлять показатели производительности. |
options.pitch номер по умолчанию: 0 | Начальный
подача
(наклон) карты, измеренный в градусах от плоскости экрана (0-85). Если шаг не указан в параметрах конструктора, Mapbox GL JS будет искать его в объекте стиля карты. Если он также не указан в стиле, по умолчанию будет использоваться 0 . |
options.pitchWithRotate логический по умолчанию: true | Если ложь , управление шагом (наклоном) карты с взаимодействием «перетаскивание для поворота» будет отключено. |
options.preserveDrawingBuffer логический по умолчанию: ложь | Если правда , холст карты можно экспортировать в PNG с помощью карта.getCanvas().toDataURL() . Это ложь по умолчанию в качестве оптимизации производительности. |
options.projection ProjectionSpecification по умолчанию: 'mercator' | проекция
карта должна отображаться в .
Поддерживаемые проекции:
|
options.refreshExpiredTiles логический по умолчанию: верно | Если ложь , карта не будет пытаться повторно запрашивать плитки после истечения срока их действия в соответствии с HTTP-запросом. КэшКонтроль / истекает заголовки. |
options.renderWorldCopies логический по умолчанию: true | Если правда , несколько копий мира будут отображаться рядом за пределами -180 и 180 градусов долготы. Если установлено ложь :
|
options.respectPrefersReducedMotion логический по умолчанию: истина | Если установлено значение правда , карта будет учитывать предпочитает уменьшенное движение настройки браузера и применить режим уменьшенного движения, сводя к минимуму анимацию и переходы. При установке на ложь , карта всегда будет игнорировать предпочитает уменьшенное движение настройки, независимо от предпочтений пользователя, что делает все анимации необходимыми. |
options.scrollZoom (логический | объект) по умолчанию: true | Если правда , взаимодействие «прокрутить для увеличения» включено. Ан Объект значение передается как опции в
ScrollZoomHandler # включить
. |
options.style (Объект | строка) | Стиль Mapbox карты. Это должен быть объект JSON, соответствующий
схема, описанная в
Спецификация стиля Mapbox
или URL-адрес
к такому JSON. Может принимать нулевое значение, чтобы разрешить добавление стиля вручную. Чтобы загрузить стиль из Mapbox API, вы можете использовать URL вида
Наборы листов, размещенные с помощью Mapbox, можно оптимизировать по стилю, если добавить |
options.testMode boolean по умолчанию: false | Замалчивает ошибки и предупреждения, сгенерированные из-за недопустимого accessToken , полезно при использовании библиотеки для написания модульных тестов. |
options.touchPitch (логический | объект) по умолчанию: true | Если правда , взаимодействие «перетаскивание в поле» включено. Ан Объект значение передается как опции в
TouchPitchHandler
. |
options.touchZoomRotate (логический | объект) по умолчанию: true | Если правда , взаимодействие «разведение пальцев для поворота и масштабирования» включено. Ан Объект значение передается как опции в
TouchZoomRotateHandler#enable
. |
options.trackResize логический по умолчанию: верно | Если правда , размер карты будет автоматически изменяться при изменении размера окна браузера. |
options.transformRequest RequestTransformFunction по умолчанию: ноль внешний URL-адрес. Обратный вызов можно использовать для изменения URL-адреса, установки заголовков или установки свойства учетных данных для запросов из разных источников.
Ожидается возвращение
Параметры запроса
объект с | |
options.useWebGL2 логическое значение по умолчанию: false | Это экспериментальная функция. Если true и возможности устройства поддерживают это, будет создан контекст WebGL 2. |