【问题标题】:Calculate nearest point of KML polygon for iPhone app为 iPhone 应用计算 KML 多边形的最近点
【发布时间】:2011-01-05 20:04:38
【问题描述】:

我需要使用 KML 数据中包含的坐标在地图上绘制一系列自然保护区,作为多边形叠加层。我在 Apple 网站上找到了在地图实例上显示 KML 叠加层的教程。

问题在于保护区的大小差异很大 - 从一个小池塘到数百公里。结果,我无法使用中心点的坐标来找到最近的储备。相反,我需要计算储备多边形的最近点以找到最近的点。使用 KML 中的数据 - 我将如何尝试实现这一目标?

我只设法找到另一个人问这个,没有人回答:(

【问题讨论】:

  • 你能提供另一个问题的链接吗?您需要最近多边形中的实际最近点还是只需要距给定点最近的多边形?
  • Stuart,你是在后台计算还是在app里计算?
  • 添加meanRadius参数怎么样。计算到储备中心的距离,然后减去储备的平均半径。
  • 您实施了什么解决方案?我期待着做同样的事情:stackoverflow.com/questions/16190882/…

标签: iphone maps kml distance


【解决方案1】:

嗯,根据您的需要,有几种不同的解决方案。所需的精度越高,所需的工作量就越多。我喜欢 Phil 的 meanRadius 参数理念。这将使您大致了解哪个多边形最接近并且很容易计算。如果多边形是“圆形的”,这个想法最有效。如果多边形的形状非常不规则,这个想法就失去了准确性。

从数学的角度来看,这就是您想要做的事情。循环遍历所有多边形的所有点。计算从这些点到您当前坐标的距离。然后只需跟踪哪个最接近。最后有一个皱纹。想象一个两点组成一条很长的线段。您位于距离线中点一米的位置。嗯,到这两个点的距离非常大,而实际上你离多边形很近。您需要计算从您的坐标到每个可能的线段的距离,您可以通过此处概述的各种方式进行计算:

http://www.worsleyschool.net/science/files/linepoint/distance.html

最后,你需要问自己,我在任何多边形中吗?如果您距离多边形上的某个点 10 米,但实际上位于多边形内部,显然您需要考虑这一点。最好的方法是使用光线投射算法:

http://en.wikipedia.org/wiki/Point_in_polygon#Ray_casting_algorithm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 2013-10-03
    • 2020-05-10
    相关资源
    最近更新 更多