【发布时间】:2019-02-22 02:55:57
【问题描述】:
我正在创建 MERN 应用程序,其主要功能之一是以interactive choropleth map 的形式呈现数据。为了实现它,我需要访问具有管理边界的 GeoJSON 文件。这些文件包含一组 GeoJSON 特征,这些特征将用数据库中的数据填充。 每个 GeoJSON 文件超过 1MB,其加载时间可能会对用户体验产生很大影响。
我尝试在后端读取这些 GeoJSON 文件 (node.js + express),然后用数据库中的数据填充它们并将它们发送回访问某个端点的用户。这种方法工作得很好,但完成这样的请求大约需要 5 秒,这太长了。
另一方面,将此类数据存储在前端 (ReactJs) 会极大地影响加载时间,这也是不需要的。
在这种情况下,存储和访问此类 GeoJSON 数据的最佳方法是什么?
【问题讨论】:
-
你可以做 google 做的事:将文件分割成更小的文件,只加载查看时需要的文件。
-
这不是我的解决方案。每个文件都包含单个页面所需的 GeoJSON 功能。到不同的页面我需要加载不同的文件。我想知道的是如何以尽可能小的对用户体验的影响来实现它。
-
1 Mb 的 JSON 数据量很大。很难相信所有这些总是需要的。除了通过稍微不错的连接下载 1Mb 之外,应该花费不到 5 秒的时间。你真的找到瓶颈了吗?
-
@EriksKlotins 一个文件甚至超过 1.5 MB。这些 JSON 文件中的数据表示具有非常不规则形状(海岸线等)的多边形。在这 5 秒中,我不仅包括传输时间,还包括:MongoDb 聚合查询以及使用
fs module读取 GeoJSON 文件并填充数据的过程。
标签: json node.js reactjs choropleth mern