我正在构建一个ASP.NET MVC网站,我希望Google Maps JavaScript API地图显示通过AJAX从后端加载的标记。将标记延迟加载到Google Maps JavaScript API地图的策略
由于我不希望客户端遇到内存问题,我想延迟加载标记并将它们应用于Fluster2,以将它们放入集群。我认为延迟加载标记的最佳方式是将事件侦听器添加到Map的idle
事件中,该事件在地图平移或缩放后发生。
这是我目前的策略:
- 事件侦听器添加到
idle
事件。 - 当
idle
事件被抛出时,使用jQuery对我的后端进行AJAXHTTP POST
调用,提供地图的当前视口/边界。 - 后端返回视口内的所有点。
- 这些点被创建为标记并添加到Fluster2,它将它们添加到地图中。旧点不会被丢弃。
- 重复
然而,这可能会产生问题,因为老点不被丢弃。我不想丢弃它们,因为我不想再次加载它们,但是按照我目前的策略,我会再次加载它们并为它们再次创建标记。
虽然我觉得在AJAX调用中告诉后端不是一个好主意,我已经有了一些标记,但是实现某种不允许重复的散列表 。
这样,当我加载点时,我可以尝试将它们添加到哈希表中:如果成功,我还没有显示它们,所以我可以将它们添加为标记;如果失败了,他们已经在地图上了。
这是一个很好的策略吗?如果是这样,我怎么能实现一个不允许重复的哈希表?
感谢您的帮助!我会尽力实现这一点。 – 2010-07-25 00:52:31
对于散列键,您可以从lat/long创建一个google.maps.latLng对象,并使用它的toString()方法。 – dsas 2013-04-04 13:47:18