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

时间:2018-09-18 06:38:07

标签: json node.js reactjs choropleth mern

我正在创建 MERN 应用程序,该应用程序的主要功能之一是以interactive choropleth map的形式显示数据。为此,我需要访问具有管理边界的GeoJSON文件。这些文件包含一组GeoJSON功能,这些属性将用数据库中的数据填充。 每个GeoJSON文件超过1MB ,并且加载时间可能会严重影响UX。

我尝试在后端(node.js + express)中读取这些GeoJSON文件,然后使用数据库中的数据填充它们,并将其发送回访问某些端点的用户。这种方法可以很好地完成工作,但是完成此类请求大约需要5秒钟的时间。

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

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

2 个答案:

答案 0 :(得分:1)

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

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

大量定义形状的点似乎是缓存的不错选择。研究一下以减少数据库访问/处理时间。

答案 1 :(得分:0)

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

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

提到的那样