Как настроить стиль Mapbox для обработки интерактивных данных? - PullRequest
0 голосов
/ 27 апреля 2019

Я сделал карту штатов США на Mapbox с помощью файла geojson, найденного здесь . Что мне действительно нужно, так это координаты многоугольника для рисования карты.

Я использую Plotly Dash, чтобы сделать его интерактивным. В основном цвет каждого состояния будет меняться в зависимости от условия, предоставленного пользователем с помощью ползунка. Я немного запутался в том, как это сделать. Я могу установить начальные значения в файле geojson, но как я могу обновить их, если их значения меняются в зависимости от ползунка?

Вот фрагмент кода файла geojson с координатами всех состояний:

{"type":"FeatureCollection","features":[
{"type":"Feature","id":"01","properties":{"name":"Alabama","percentage":40},"geometry":{"type":"Polygon","coordinates":[[[-87.359296,35.00118],[-85.606675,34.984749],[more coordinates]]}},
{"type":"Feature","id":"02","properties":{"name":"Alaska","percentage":30},"geometry":{"type":"Polygon","coordinates":[....]...

Как видите, я установил начальные значения 40 и 30 для Алабамы и Аляски. После того, как я загрузил его в Mapbox, я установил диапазон цветов от 0 до 100, и он отлично закрасил все состояния, основываясь на моих начальных значениях.

Между тем в моем приложении Dash у меня есть набор данных, из которого я могу рассчитать процентное значение для каждого состояния в зависимости от условия, установленного в RangeSlider. То, что я не могу понять, как обновить цвета соответственно. Я предполагаю, что это как-то связано со слоями, но я не уверен. Буду признателен за любую помощь, заранее спасибо!

1 Ответ

1 голос
/ 04 мая 2019

Вы можете использовать GeoJsonSource # setData для этого: https://docs.mapbox.com/mapbox-gl-js/api/#geojsonsource#setdata

В этом примере не используется setData (или вообще источник GeoJson), но показывает , как реализовать слайдер в случае, если вам это поможет: https://docs.mapbox.com/mapbox-gl-js/example/timeline-animation/

Отказ от ответственности: я работаю в Mapbox.

...