我正在创建 MERN 应用程序,该应用程序的主要功能之一是以interactive choropleth map的形式显示数据。为此,我需要访问具有管理边界的GeoJSON文件。这些文件包含一组GeoJSON功能,这些属性将用数据库中的数据填充。 每个GeoJSON文件超过1MB ,并且加载时间可能会严重影响UX。
我尝试在后端(node.js
+ express
)中读取这些GeoJSON文件,然后使用数据库中的数据填充它们,并将其发送回访问某些端点的用户。这种方法可以很好地完成工作,但是完成此类请求大约需要5秒钟的时间。
另一种方法是,将此类数据存储在前端(ReactJs
)上会极大地影响加载时间,这也是不必要的。
在这种情况下,存储和访问此类GeoJSON数据的最佳方法是什么?
答案 0 :(得分:1)
我建议您尝试减少定义每种形状的点数。最简单的方法是合并相距小于X米的点。有更先进的算法可以简化形状,例如this。
如果您仍然需要所有要点,例如计算前端,首先加载简化的形状,然后在后台加载大文件。
大量定义形状的点似乎是缓存的不错选择。研究一下以减少数据库访问/处理时间。
答案 1 :(得分:0)
我最终要做的是为node.js
后端上的每个文件定义了特定的端点。
另外,我使用 Douglas–Peucker 算法缩小了每个文件的大小(根据需要),就像@EriksKlotins
提到的那样