我想使用此Virtual Earth javascript API实现自己的群集算法:http://msdn.microsoft.com/en-us/library/cc966716.aspx
但是,VE引擎会为图层中的每个形状调用一次我的集群函数。这使其非常慢!
在我看来,VE应该将所有形状都放在一个图层中,然后让我的函数对它们进行聚类。不能反复调用集群!
VE引擎为什么要这样做?还有另一种方法可以使用此API进行客户端集群吗?
更多信息:我正在从GeoRSS提要中加载形状。
最佳答案
对于该VEShapeLayer,自定义群集算法方法将仅被调用一次。
亚当·拜拉姆
使用VEMap.AddShape方法和将VEShapeLayer添加到包含所有Shapes的地图之间没有太大区别。 AddShape方法将Shape添加到“默认” ShapeLayer(具有0(零)索引的ShapeLayer),添加VEShapeLayer会在现有“默认”层的基础上添加新层。
如果您正在使用VEMap.AddShape将VEShape对象添加到地图,则很可能在每次将VEShape添加到地图时都在调用您的簇算法算法。这将是正确的行为,因为每次添加形状时都需要重新计算聚类。
为了在将所有形状添加到地图时提高整体性能,并在添加所有形状时让VE仅调用一次您的自定义算法方法;您可以创建一个VEShapeLayer,将所有Shapes添加到其中,然后将该Shape图层添加到地图中。这将导致VE仅对所有Shape进行一次渲染(在加载所有Shape时),而不是对每次添加单个VEShape进行渲染。
关于javascript - 自定义虚拟地球群集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/257378/