Google Maps JS API:更好地将数据存储在标记或JSON中?

时间:2016-08-29 22:50:33

标签: javascript json google-maps google-maps-api-3

我正在使用Google Maps JS API可视化一些政府数据。目前,每次用户更改过滤器值时,它都会再次抓取整个JSON数据,对其进行过滤,并为通过过滤器验证的每一行创建标记。这很慢,因为每当您更改过滤器所在的表单时,它都会重新下载JSON。

有两种方法可以动态地处理缓存和显示数据:存储收到的JSON一次,根据过滤器销毁/重新创建标记,或者一次创建所有标记,只显示匹配过滤器的标记。

这两个选项之间是否存在性能差异?两者都对我有意义,我只是不确定如何判断一个人是否优于另一个人。我怎样才能评估“重”的重要性?谷歌地图标记是给用户的吗?

1 个答案:

答案 0 :(得分:2)

建议的两种方法肯定会比原始策略更快,在每次过滤器更改时重新获取JSON data

我想每种方法都有优点和缺点。

如果您不打算在每次过滤器更改时检索JSON data,那么基本上数据可能是out of data但如果用例是JSON data很少更新,那么这个考虑因素可以放弃。

缓存JSON data并预先创建所有标记会导致地图比平常花费更长的时间来加载,因为您需要先创建所有标记,而反过来则是你只创建了一个标记的子集 - 因此更快。

我想这一切都取决于有多少标记?地图的典型使用模式是什么?

如果有一百万个标记,并且典型的过滤器会导致100,000个标记在更改时重新生成,那么最好先预先生成标记,然后相应地调整它们的可见性。

同样,如果你有一百万个标记,典型的过滤器只会导致1或2个标记出现在百万个中,那么可能会破坏和重新创建更快。

无论如何,作为一个用户,我宁愿让地图在开始时加载一点时间,可能会牺牲1-2秒。然后当我正在使用滤镜时,标记会立即发生变化。希望这会有所帮助。