Доступ к вложенным свойствам TileSet - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь получить доступ ко всем функциям определенного набора плиток, созданного с помощью MapBoxStudio.

Чтение документа API. Думаю, я смогу получить все вложенные параметры из метода: map.querySourceFeatures(IdOfMyLayer);

Однако вывод этого пуст.

map.querySourceFeatures('words');

Где 'words' - идентификатор слоя, который я получил от map.getStyle().layers

Я ожидаю получить доступ к свойствам этого конкретного слоя Тем не менее, я получаю пустой результат.

Извините за вопрос noob, но я упускаю что-то важное в том, как работает MapBox, любая помощь от вас будет очень признательна.

Ответы [ 2 ]

1 голос
/ 17 июня 2019

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

Если вы используете Mapbox набор данных вместо набора плиток , выможет получить доступ ко всему набору данных как чистый объект GeoJSON - при условии, что он достаточно мал для загрузки в браузер.В качестве альтернативы, вы можете создать GeoJSON каким-либо другим способом, а затем загрузить его.

Если querySourceFeature() возвращает [], то, скорее всего, в текущем окне просмотра нет объектов, загруженных (пока).Возможно, вам потребуется инициировать вызов позднее, когда исходные данные загрузятся.

0 голосов
/ 18 июня 2019

Теперь я понял. Правильный способ получить все возможности набора данных - использовать API DataSet:

https://docs.mapbox.com/api/maps/#retrieve-a-dataset

Вот что я сделал:

$.ajax({
            url: 'https://api.mapbox.com/datasets/v1/*****/{dataset_id}/features?limit=50&access_token=********',
            type:'GET',
            success:function(data){console.log(data)},
            error:function(error){console.log('ERROR')}
        })

С {dataset_id}, взятым из mapboxStudio.

Я могу ограничить и сохранить переменную для обработки ответа JSON. Большое спасибо:)

...