Google地图是否足够智能,以避免在当前未显示的位置添加标记?

在我的app / site中,我开始展示连续的USA,但允许用户从下拉列表(选择小部件)中选择一个州(或返回USA48,或选择USA50 +):

 USA (48) USA (50+) Alabama . . . Wyoming  

我还允许用户根据他们制作的复选框选择显示各种类别的标记。 这些标记放置在“扩展美国”的任何地方(包括美属萨摩亚,干燥的Tortugas等)。

当他们选择一个州,比如阿拉巴马州时,我首先需要“无效”地图数据,就像这样(“removeData”行是我在这里引用的关键):

 function LoadAlabama() { $("#map").removeData(); $("#map").goMap({ latitude: 32.806673, longitude: -86.791133, zoom: 8 }); ReloadMarkers(); } 

但是,我不想加载所有标记,因为它们不可见(我只需要一个州首都标记,而不是50;我只需要一个NFL团队标记,而不是32等)。 Google地图是否足够智能,可以忽略在当前显示的地图之外的位置放置标记的请求?

注意:ReloadMarkers()方法显示或隐藏标记组,如下所示:

 function ReloadMarkers() { if ($('#NFLCheckbox').is(':checked')) { $.goMap.showHideMarkerByGroup('NFLGroup', true) } else { $.goMap.showHideMarkerByGroup('NFLGroup', false) } . . . } 

我可以编写代码来考虑显示的区域,然后过滤掉那些超出显示内容的经度/纬度范围的标记(基于它的中心纬度/长度和地图的缩放值),但我会如果谷歌地图足够聪明,我可以满足(温和地说)。 是吗?

Google地图是否足够智能,可以忽略在当前显示的地图之外的位置放置标记的请求?

不会。但是有两个缓解因素/选项:

  1. 除非标记已经optimized:falsedraggable:true set,否则它们将在canvas上绘制。 这种高度优化的方法可以非常快速地处理10,000多个标记。 旧DOM标记的性能瓶颈已经消失。
  2. 如果需要DOM标记,可以使用Google Maps API v3实用程序库中的MarkerManager 库 。