GeoJSONSource
Источник, содержащий GeoJSON. (Подробную документацию по параметрам см. в спецификации стилей.)
Примеры
map.addSource('some id', {
type: 'geojson',
data: 'https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_10m_ports.geojson'
});
map.addSource('some id', {
type: 'geojson',
data: {
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"properties": {},
"geometry": {
"type": "Point",
"coordinates": [
-76.53063297271729,
39.18174077994108
]
}
}]
}
});
map.getSource('some id').setData({
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"properties": { "name": "Null Island" },
"geometry": {
"type": "Point",
"coordinates": [ 0, 0 ]
}
}]
});
См. также
- Отображение точек GeoJSON
- Добавление линии GeoJSON
- Создание тепловой карты по точкам
- Создание и оформление кластеров
Наследует
Реализует
Методы
_updateWorkerData()
_updateWorkerData():
Promise<void>
Отвечает за вызов целевого метода geojson.loadData объекта WorkerSource, который загружает данные GeoJSON и подготавливает их для предоставления в виде тайлов, используя geojson-vt или supercluster в зависимости от ситуации.
Возвращает
Promise<void>
abortTile()
abortTile(
tile:Tile):Promise<void>
Позволяет прервать загрузку тайла.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
tile | Tile | Тайл, загрузку которого нужно прервать |
Возвращает
Promise<void>
Реализация
fire()
Сигнатура вызова
fire(
event:ErrorEvent|MapSourceDataEvent):this
Вызывает все обработчики, зарегистрированные для данного типа события.
Параметры
| Параметр | Тип |
|---|---|
event |
ErrorEvent | MapSourceDataEvent
|
Возвращает
this
Реализация
Унаследован от
Сигнатура вызова
fire(
type: keyofSourceEventType,properties?:object):this
Обеспечивает совместимость с сигнатурой (type: string, properties: Object) из предыдущих версий. См. https://github.com/mapbox/mapbox-gl-js/issues/6522, https://github.com/mapbox/mapbox-gl-draw/issues/766
Параметры
| Параметр | Тип |
|---|---|
type | keyof SourceEventType
|
properties? | object |
Возвращает
this
Реализация
Source.fire
Унаследован от
getBounds()
getBounds():
Promise<LngLatBounds>
Позволяет получить границы источника. Если возникла проблема с данными источника, будет возвращён пустой объект LngLatBounds.
Возвращает
Promise<LngLatBounds>
промис, который разрешается границами источника
getClusterChildren()
getClusterChildren(
clusterId:number):Promise<Feature<Geometry, {[name:string]:any; }>[]>
Для кластеризованных источников получает дочерние элементы заданного кластера на следующем уровне масштабирования (в виде массива объектов GeoJSON Feature).
Параметры
| Параметр | Тип | Описание |
|---|---|---|
clusterId | number | Значение свойства cluster_id кластера. |
Возвращает
Promise<Feature<Geometry, {[name: string]: any; }>[]>
промис, который разрешается после получения объектов
getClusterExpansionZoom()
getClusterExpansionZoom(
clusterId:number):Promise<number>
Для кластеризованных источников получает уровень масштабирования, на котором заданный кластер раскрывается.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
clusterId | number | Значение свойства cluster_id кластера. |
Возвращает
Promise<number>
промис, который разрешается числовым значением уровня масштабирования
getClusterLeaves()
getClusterLeaves(
clusterId:number,limit:number,offset:number):Promise<Feature<Geometry, {[name:string]:any; }>[]>
Для кластеризованных источников получает исходные точки, входящие в кластер (в виде массива объектов GeoJSON Feature).
Параметры
| Параметр | Тип | Описание |
|---|---|---|
clusterId | number | Значение свойства cluster_id кластера. |
limit | number | Максимальное количество возвращаемых объектов. |
offset | number | Количество объектов, которые нужно пропустить (например, для разбиения на страницы). |
Возвращает
Promise<Feature<Geometry, {[name: string]: any; }>[]>
промис, который разрешается после получения объектов
Пример
Получение дочерних объектов кластера при щелчке
map.on('click', 'clusters', (e) => {
let features = map.queryRenderedFeatures(e.point, {
layers: ['clusters']
});
let clusterId = features[0].properties.cluster_id;
let pointCount = features[0].properties.point_count;
let clusterSource = map.getSource('clusters');
const features = await clusterSource.getClusterLeaves(clusterId, pointCount);
// Print cluster leaves in the console
console.log('Cluster leaves:', features);
});
getClusterOptions()
getClusterOptions():
GetClusterOptions
Возвращает параметры кластеризации, настроенные для источника в данный момент. Возвращаемые значения соответствуют параметрам, принимаемым setClusterOptions.
Возвращает
текущие параметры кластеризации источника
Пример
const {cluster, clusterMaxZoom, clusterRadius} = map.getSource('some id').getClusterOptions();
getData()
getData():
Promise<GeoJSON<Geometry, {[name:string]:any; }>>
Позволяет получить фактические данные GeoJSON источника.
Возвращает
Promise<GeoJSON<Geometry, {[name: string]: any; }>>
промис, который разрешается фактическими данными GeoJSON источника
hasTransition()
hasTransition():
boolean
True, если у источника есть переход, иначе false.
Возвращает
boolean
Реализация
listens()
listens(
type: keyofSourceEventType):boolean
Возвращает true, если у этого экземпляра Evented или любого перенаправленного экземпляра Evented есть обработчик для указанного типа события.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
type | keyof SourceEventType
| Тип события |
Возвращает
boolean
true, если для указанного типа события зарегистрирован хотя бы один обработчик, в противном случае — false
Унаследовано от
loaded()
loaded():
boolean
True, если источник загружен, иначе false.
Возвращает
boolean
Реализация
loadTile()
loadTile(
tile:Tile):Promise<void>
Этот метод выполняет основную работу по загрузке тайла. В большинстве случаев он передает выполнение соответствующему источнику в рабочем потоке.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
tile | Tile | Тайл для загрузки |
Возвращает
Promise<void>
Реализация
off()
off<
Textends keyofSourceEventType>(type:T,listener: (event:SourceEventType[T]) =>void):this
Удаляет ранее зарегистрированный обработчик события.
Параметры типа
| Параметр типа |
|---|
T extends keyof SourceEventType
|
Параметры
| Параметр | Тип | Описание |
|---|---|---|
type | T | Тип события, обработчики которого нужно удалить. |
listener | (event: SourceEventType[T]) => void
| Функция-обработчик для удаления. |
Возвращает
this
Унаследовано от
on()
on<
Textends keyofSourceEventType>(type:T,listener: (event:SourceEventType[T]) =>void):Subscription
Добавляет обработчик для указанного типа события.
Параметры типа
| Параметр типа |
|---|
T extends keyof SourceEventType
|
Параметры
| Параметр | Тип | Описание |
|---|---|---|
type | T | Тип события, для которого нужно добавить прослушиватель. |
listener | (event: SourceEventType[T]) => void
| Функция, вызываемая при возникновении события. Функция-обработчик вызывается с объектом данных, переданным в fire, дополненным свойствами target и type. |
Возвращает
Унаследовано от
onAdd()
onAdd(
map:Map):void
Этот метод вызывается при добавлении источника на карту.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
map | Map | Экземпляр карты |
Возвращает
void
Реализация
once()
Сигнатура вызова
once<
Textends keyofSourceEventType>(type:T):Promise<SourceEventType[T]>
Добавляет прослушиватель, который будет вызван только один раз для указанного типа события.
Прослушиватель будет вызван при первом возникновении события после его регистрации.
Параметры типа
| Параметр типа |
|---|
T extends keyof SourceEventType
|
Параметры
| Параметр | Тип | Описание |
|---|---|---|
type | T | Тип события, которое нужно прослушивать. |
Возвращает
Promise<SourceEventType[T]>
промис, который разрешается событием
Унаследовано от
Сигнатура вызова
once<
Textends keyofSourceEventType>(type:T,listener: (event:SourceEventType[T]) =>void):this
Добавляет прослушиватель, который будет вызван только один раз для указанного типа события.
Прослушиватель будет вызван при первом возникновении события после его регистрации.
Параметры типа
| Параметр типа |
|---|
T extends keyof SourceEventType
|
Параметры
| Параметр | Тип | Описание |
|---|---|---|
type | T | Тип события, которое нужно прослушивать. |
listener | (event: SourceEventType[T]) => void
| Функция, вызываемая при первом возникновении события. |
Возвращает
this
this, если передан прослушиватель
Унаследовано от
onRemove()
onRemove():
void
Этот метод вызывается при удалении источника с карты.
Возвращает
void
Реализация
serialize()
serialize():
GeoJSONSourceSpecification
Возвращает
GeoJSONSourceSpecification
Обычный объект JS (преобразуемый в строку), представляющий текущее состояние источника. Создание источника с использованием возвращённого объекта в качестве options должно привести к созданию источника, эквивалентного этому.
Реализация
setClusterOptions()
setClusterOptions(
options:SetClusterOptions):Promise<void>
Отключает или включает кластеризацию в параметрах источника.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
options | SetClusterOptions | Параметры, которые нужно задать |
Возвращает
Promise<void>
Пример
map.getSource('some id').setClusterOptions({cluster: false});
map.getSource('some id').setClusterOptions({cluster: false, clusterRadius: 50, clusterMaxZoom: 14});
setData()
setData(
data:string|GeoJSON<Geometry, {[name:string]:any; }>):Promise<void>
Задаёт данные GeoJSON и выполняет повторную отрисовку карты.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
data |
string | GeoJSON<Geometry, {[name: string]: any; }> | Объект данных GeoJSON или URL-адрес, ведущий к нему. Последний вариант предпочтителен для больших файлов GeoJSON. |
Возвращает
Promise<void>
setEventedParent()
setEventedParent(
parent?:Evented<EventTypeMap>,data?:EventedParentData| (() =>EventedParentData)):this
Передаёт все события, отправленные этим экземпляром Evented, родительскому экземпляру Evented.
Параметры
| Параметр | Тип |
|---|---|
parent? |
Evented<EventTypeMap> |
data? |
EventedParentData | (() => EventedParentData) |
Возвращает
this
Унаследовано от
unloadTile()
unloadTile(
tile:Tile):Promise<void>
Позволяет выгрузить тайл.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
tile | Tile | Тайл для выгрузки |
Возвращает
Promise<void>
Реализация
updateData()
updateData(
diff:GeoJSONSourceDiff):Promise<void>
Обновляет GeoJSON источника и повторно отображает карту.
Для источников с большим количеством объектов этот метод позволяет ускорить внесение изменений.
Для использования этого подхода каждому объекту в источнике необходимо задать уникальный идентификатор. Идентификаторы можно указать непосредственно для объектов или использовать параметр promoteId, чтобы задать свойство, которое будет использоваться в качестве идентификатора.
Вызов updateData для источника, объекты которого не имеют уникальных идентификаторов, приведёт к ошибке.
Изменения применяются по возможности; обновление несуществующего идентификатора не приведёт к ошибке.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
diff | GeoJSONSourceDiff | Изменения, которые необходимо применить. |
Возвращает
Promise<void>
Свойства
attribution
attribution:
string
Атрибуция источника.
Реализация
id
id:
string
Идентификатор источника. Не должен совпадать с идентификатором какого-либо существующего источника.
Реализация
isTileClipped
isTileClipped:
boolean
false, если тайлы можно отрисовывать за пределами их границ, true, если нельзя.
Реализация
maxzoom
maxzoom:
number
Максимальный уровень масштабирования для источника.
Реализация
minzoom
minzoom:
number
Минимальный уровень масштабирования для источника.
Реализация
reparseOverscaled
reparseOverscaled:
boolean
true, если тайлы следует повторно отправлять в рабочий процесс для каждого уровня увеличенного масштаба, false в противном случае.
Реализация
tileSize
tileSize:
number
Размер тайла для источника.
Реализация
© MapLibre contributors
Licensed under the 3-Clause BSD License.
https://maplibre.org/maplibre-gl-js/docs/API/classes/GeoJSONSource/