Как индексировать данные геойсона в браузере для хранения в indexDB (используя geojson-vt) - PullRequest
0 голосов
/ 10 октября 2019

Обзор

У меня есть довольно интересное требование, когда мне нужно загрузить данные геоджона из службы (не службы векторных плиток), а затем кэшировать эти данные для автономного использования (с помощью indexDB). Итак, при запуске приложения в автономном режиме мне нужно загрузить эти данные из indexDB на карту (используя mapbox-gl). Объем данных, которые могут быть кэшированы в автономном режиме (в indexDB), может быть довольно большим, и поэтому я не могу просто перенести все данные в память и добавить их на карту (в этом случае mapbox будет обрабатывать все для нас внутренне, используя geojson-vt).

Я понимаю, что если бы источником была служба векторных листов, то это упростило бы задачу, но, к сожалению, на данный момент это не вариант.

Попытка решения

Я считаю, что решение этой проблемы заключается в индексации данных, когда я сохраняю их в indexDB. Я думал, что я выясню каждое из значений сетки UTM для каждого «объекта», и, таким образом, когда карта перемещается, я могу просто запросить объекты в соответствующих сетках и загрузить их в mapbox.

Пример IndexDB «Таблица»:

feature_id | properties | utm_tiles ({z}_{x}_{y})
1               ...       14_0_0, 13_1_1, 13_1_2, etc
2               ...       14_0_0, 12_100_100, 12_100_101, etc
etc...

Имея указанную выше информацию, я мог бы затем запросить select * from index_db_features, где utm_tiles in ('14_0_0', '14_0_1')

Хотя теоретически кажется, что это сработает, проблема, с которой я сталкиваюсь, состоит в том, чтобы выяснить все плитки, к которым относится данная функция. Библиотека geojson-vt , кажется, делает то, что я хочу, за исключением того, что она не дает вам фактический список всех плиток, в которых находятся объекты, - она ​​делает наоборот, где вам нужно спроситьэто для объектов, основанных на данной плитке.

Есть ли у кого-нибудь какие-либо предложения по выяснению того, к каким плиткам относится данная функция? Или лучшее предложение для пространственной индексации данных геойсона для использования в indexDB?

...