Как хранить и получать доступ к большим JSON-файлам в приложении MERN? - PullRequest
0 голосов
/ 18 сентября 2018

Я создаю MERN приложение, одной из основных функций которого является представление данных в виде интерактивной карты хороплета .Для этого мне нужен доступ к файлам GeoJSON с административными границами.Эти файлы содержат набор выборок GeoJSON, свойства которых должны быть заполнены данными из базы данных. Каждый файл GeoJSON занимает более 1 МБ , и его время загрузки может сильно повлиять на UX.

Я попытался прочитать эти файлы GeoJSON в бэкэнде (node.js + express) и затем заполнить ихданные из базы данных и отправить их обратно пользователю, имеющему доступ к определенной конечной точке.Этот подход прекрасно работает, но для выполнения такого запроса, который занимает слишком много времени, требуется около 5 секунд.

С другой стороны, хранение таких данных во внешнем интерфейсе (ReactJs) очень сильно влияет на время загрузки, что также нежелательно.

Каков наилучший подход для хранения и доступа к таким данным GeoJSON в этом случае?

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

В конечном итоге я определил конкретную конечную точку для каждого файла на моем node.js бэкенде.

Кроме того, я сократил размер каждого файла (в соответствии с потребностями), используя Дуглас – Пеккер *Алгоритм 1005 *, как было упомянуто @ EriksKlotins

0 голосов
/ 18 сентября 2018

Я предлагаю вам попытаться уменьшить количество точек, определяющих каждую фигуру. Самый простой подход - объединить точки, которые находятся на расстоянии менее X метров друг от друга. Существуют более продвинутые алгоритмы для упрощения фигур, например this .

Если вам все еще нужны все баллы, например, Для расчетов в веб-интерфейсе сначала загрузите упрощенную форму, а затем загрузите большой файл в фоновом режиме.

Куски точек, определяющих фигуры, кажутся хорошим кандидатом для кеширования. Посмотрите на это, чтобы сократить время доступа к БД и обработки.

...