一种类似于Google地图中的绘制编码算法

时间:2009-09-03 20:34:40

标签: algorithm google-maps drawing

正如你们中的一些人可能知道的那样,谷歌地图API中有一种编码算法可以优化不同缩放级别的折线图。它根据当前缩放级别删除 - 添加路径的坐标,并减少 - 增加绘图计算时间。具体来说,我的意思是GPolyline.fromEncoded方法中的算法。 在除了javascript之外的其他平台中,我需要这样的算法。当然我不认为使用谷歌风格的专业代码。是否有其他算法,我可以看到代码并根据合适的平台重新实现它?或者您有什么建议来完成不同缩放级别的路径图的优化?

1 个答案:

答案 0 :(得分:1)

以下内容如何。

  1. 根据缩放级别选择常量DetailRadius
  2. 在多边形上选择一个起点。
  3. 测试多边形的下一个点是在当前点周围半径为DetailRadius的圆内还是外,即当前点与下一个点之间的距离是小于还是大于{{ 1}}。
    1. 如果下一个点在半径之外,则从当前位置移动到此点。
    2. 如果下一个点位于半径范围内,请将其删除并继续使用新的下一个点。
  4. 人们还可以考虑去除圆圈中的所有点,而不仅仅是当前点的新点。这将导致进一步细节减少,但它的计算成本更高,可能会导致更多的几何失真,因为它会“从当前点推开点”。