1

我在引用 bing 地图触摸控件 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 在 vi​​ewchangestart 之后被立即触发 - 所以整个想法都没有成功。

有没有人在多边形覆盖方面遇到过类似的问题,或者对我有更好的想法?

谢谢!

4

1 回答 1

0

事件按预期触发。您可以添加的一个逻辑是计算多边形的边界框(将坐标传递到 locationRect)。然后检查边界框是否与地图的边界框重叠。如果没有,则隐藏地图。

于 2013-09-22T10:10:35.560 回答