我在使用bing maps触摸控件Ajax7时遇到了一些麻烦。
我在bingmaps界面上放置了几个多边形,以显示彩色的地理区域形状。现在,无论何时用户平移地图或放大/缩小,地图上显示的大量多边形都会导致性能滞后。
此代码将多边形推送到地图:
Overlay_Tmp = new Microsoft.Maps.Polygon(region.Shape,region.colortheme);
map.entities.push(Overlay_Tmp);
https://dl.dropbox.com/u/85251516/poly.png
出于这个原因,我决定在用户平移/缩放地图时设置这些多边形不可见。
通过观看绑定到bing地图的“viewchangestart”/“viewchangeend”事件,用户交互应该是正确的,每当通过平移/缩放等改变地图视图时都会触发该地图。
Microsoft.Maps.Events.addHandler(map,'viewchangestart',VC_START);
Microsoft.Maps.Events.addHandler(map,'viewchangeend',VC_END);
这个工作正常,只要我与空白地图界面进行交互。 平移/缩放地图时会触发viewchangestart,并在停止平移/缩放时触发viewchangeend。
另一方面,如果在多边形叠加层内执行相同的操作,它将无法正常工作。 viewchangeend在viewchangestart之后立即被触发 - 所以整个想法都可以解决。
有没有人在使用polygone叠加层时遇到类似的问题,或者为我提供了一些更好的想法?
谢谢!
答案 0 :(得分:0)
事件按预期发射。您可以添加的一个逻辑是计算多边形的边界框(将坐标传递给locationRect)。然后检查边界框是否与地图的边界框重叠。如果没有则隐藏地图。