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

How to store and access big JSON files in MERN application?

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

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

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

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

我建议你尽量减少定义每个形状的点数。最简单的方法是合并相距小于 X 米的点。还有更高级的算法来简化形状,例如 this.

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

定义形状的点块似乎很适合缓存。研究一下以减少 DB access/processing 时间。

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

此外,我使用 Douglas–Peucker 算法缩小了每个文件的大小(根据需要),正如@EriksKlotins

所提到的