Как я могу суммировать значения атрибутов перекрывающихся линейных объектов из файла GeoJSON?

#javascript #mapbox #mapbox-gl-js

#javascript #mapbox #mapbox-gl-js

Вопрос:

У меня есть файл GeoJSON, содержащий коллекцию объектов, состоящую из линейных объектов, где каждый представляет раздел маршрутов общественного транспорта между двумя остановками. Для каждого раздела в настоящее время имеется 24 различных объекта, представляющих по 1 часу дня каждый, и ползунок, который позволяет мне отображать нужные функции часов. При нажатии на объект (сегмент автобусной линии) появляется всплывающее окно, которое показывает мне некоторые атрибуты, такие как общее количество пассажиров в этом сегменте за этот час.

Выбор часа и всплывающее окно для сегментов линии

В настоящее время эти номера атрибутов представляют все автобусные линии, посещающие этот конкретный сегмент (в соответствии с атрибутами GeoJSON, созданными с помощью GeoPandas).

Однако я хочу разделить объекты на разные номера линий шины. У меня была бы функция переключения для отображения определенных и нескольких линий шины путем выбора соответствующего значения атрибута.

Может ли Mapbox позволить мне отображать перекрывающиеся объекты И применять математическое выражение, подобное «суммировать все, где segment_id равно *, и отображать это во всплывающем окне?

Я думал о кластерах, но не могу концептуализировать это достаточно хорошо, чтобы заставить его работать.

cluster: true, cluster_id: 4, max: 50, sum: 100, has_island: false, point_count: 10

То же самое с выражениями [" ", number, number, ...]: number : как мне применить это к моему конкретному случаю?

Большое вам спасибо за любой вклад!

Пример структуры GeoJSON:

 {"type": "FeatureCollection", "features": [{"type": "Feature", "properties": {"time": 0, daytype": 0, "occsum": 57, "occmean": 19, "loadmax": 0.3332124289686858, "loadmean": 23, "name_start": "Bahnhof Tiefenbrunnen", "name_ziel": "Zollikon, Bahnübergang"}, "geometry": {"type": "LineString", "coordinates": [[8.56196881850715, 47.34937679929789], [8.565194360980028, 47.346512585317505]]}}, {"type": "Feature", "properties": {"time": 0, "daytype": 1, "occsum": 30, "occmean": 15, "loadmax": 0.18583000846330552, "loadmean": 18, "name_start": "Bahnhof Tiefenbrunnen", "name_ziel": "Zollikon, Bahnübergang"}, "geometry": {"type": "LineString", "coordinates": [[8.56196881850715, 47.34937679929789], [8.565194360980028, 47.346512585317505]]}}
  

Полный html здесь,
Полный GeoJSON здесь (20 МБ!)