如何在MERN应用程序中存储和访问大型JSON文件?

问题描述 投票:0回答:2

我正在创建MERN应用程序,其中一个主要功能是以interactive choropleth map的形式呈现数据。为了实现它,我需要访问具有管理边界的GeoJSON文件。这些文件包含一组GeoJSON fetures,这些属性将使用数据库中的数据填充。每个GeoJSON文件超过1MB,加载时间可能会对UX产生很大影响。

我尝试在后端读取这些GeoJSON文件(node.js + express),然后用数据库中的数据填充它们并将它们发送回用户访问某个端点。这种方法完全正常,但完成这样的请求需要大约5秒钟,这太长了。

另一方面,在前端(ReactJs)存储这样的数据会极大地影响加载时间,这也是不需要的。

在这种情况下,存储和访问此类GeoJSON数据的最佳方法是什么?

json node.js reactjs choropleth mern
2个回答
1
投票

我建议你尝试减少定义每个形状的点数。最简单的方法是合并相距小于X米的点。有更多先进的算法来简化形状,例如this

如果您仍需要所有积分,例如:在前端进行计算,首先加载简化形状,然后在后台加载大文件。

定义形状的点的块似乎是缓存的良好候选者。调查一下,以减少数据库访问/处理时间。


0
投票

我最终做的是为node.js后端的每个文件定义了特定的端点。

另外,我使用Douglas-Peucker算法缩小了每个文件的大小(根据需要),正如@EriksKlotins所提到的那样

© www.soinside.com 2019 - 2024. All rights reserved.