我在地图上有很多长折线。我想优化他们的绘图,因为在几千个点处,多段线的绘制速度非常慢。
我的drawMapRect
样子是这样的:
- for each polyline segment
- verify if it's bounding box intersects the currently drawn MKMapRect
- if id does, draw it
如果没有太多的点,这很好。但是当有 8-16 个可见的 maprects 和 2-3000 个点时,它们在for
.
如果它们只是位置,则解决方案是实现某种四叉树/r-tree 结构并仅过滤当前绘制的那些位置MKMapRect
,但我不确定这是否适用于折线本身。
如果我仅过滤当前 maprect 内的线段端点,则可能不会绘制某些线段。例如,点 1-2 之间的两个红色 maprects 中没有线段端点,但仍需要绘制...
是否有某种类似于四叉树的算法或某种方法来解决这个问题?