Как стилизовать условия данных из другого json в Mapbox GL JS?

#javascript #json #mapbox #mapbox-gl-js

#javascript #json #mapbox #mapbox-gl-js

Вопрос:

Итак, у меня есть два файла json, в первом — геометрия для железнодорожных станций, а во втором файле json — данные о том, сколько пассажиров садилось / выходило на каждой станции за последние десять лет (без геометрии).

Геометрия станций представлена в первом файле json, который уже добавлен в качестве слоя на карту (с использованием Mapbox GL JS)

 "type": "FeatureCollection",
"name": "stationen_offset500000",
"features": [
{ 
"type": "Feature", 
"properties": { 
        "np_id": 10312, 
        "station": "Somewhere Main Station",
        "gid": 1123 }, 
        "geometry": { "type": "Polygon", "coordinates": [ [ [ ...] ] ]}};
  

И файл Entrants / Dropoff json с данными:

 "type": "FeatureCollection",
"name": "einAussteiger",
"features": [
{ 
"type": "Feature", 
"properties": { 
        "np_id": 10038, 
        "station": "Somewhere Main Station", 
        "avg_entrants_day": "339,344", 
        "avg_dropoff_day": "391,266", 
        "year": 2018, 
        "id": 1 }}
  

Моя цель — установить высоту выдавливания полигона станций в зависимости от avg_entrants_day для конкретного года. Но я действительно не знаю, как это сделать, поскольку данные находятся в двух разных файлах json.

Я повозился, вызвав

 map.setPaintProperty("stations_offset500000", 'fill-extrusion-height', [
  "match",
  ["get", "..."],
])
  

в разных версиях, но, честно говоря, это было бесполезно.

Ответ №1:

Самый простой подход — это просто:

  1. Извлеките первый файл.
  2. Извлеките второй файл.
  3. Перебирайте объекты в первом файле, добавляя свойства из второго.
  4. Добавьте его на карту.