我需要在地图上叠加许多(可点击的)多边形(超过5000),因此正常的多边形叠加效果会很慢。
我的想法是创建一个自定义位图叠加层,在位图画布上仅绘制当前边界坐标内的多边形,忽略外部多边形的所有绘制。
此外,出于性能原因,我只会在用户完成缩放或平移时重绘重叠,而不是在此操作期间重绘。
有人可以帮我点一些帮助吗?
感谢。
答案 0 :(得分:1)
在您的情况下,当许多多边形完全位于视图框外时,边界框测试是一个很好的解决方案。
您可以对Polygon进行子类化,添加边界框属性,并覆盖draw方法以首先测试此边界框是否完全位于视图框之外。
无需在位图画布上绘图。
现在,如果用户缩小,他将在视图框中包含所有多边形:回到初始问题...解决方案可能是处理细节级别。也许使用DouglasPeucker reducer(OSMBonusPack utils中提供)。