0

我是 iOS iPhone 开发的新手,在使用地图时遇到了一些问题。

我正在尝试找到一种方法来创建具有大量坐标点(纬度、经度)的路径,然后检查特定坐标点是否在该路径内。我已经在寻找如何使用 Apple Maps 和新的 Google SDK 来做到这一点,但没有成功。

完整的问题是:

我有一些坐标(但不是全部)代表车辆经过的路径。我需要检查特定坐标是否在此车辆路径内。例如:我有坐标 X、Y 和 Z。如果我用这个坐标创建一条路径,那么完整的路径将有坐标 X、Y、W和 Z。用这个路径我可以检查坐标 W,那不是在用于构建路径的坐标中。这就像在两点之间创建一条路径,但告诉地图使用一些检查点创建一条路线,然后检查随机坐标是否在这条路径内。

有办法做这样的事情吗?

4

1 回答 1

0

我想对于一个简单的解决方案,您可以使用类似的东西

(MKUserLocation *)userLocation;
CLLocation* X = [init from some coordinates];
CLLocation* Y = [init from some coordinates];
CLLocation* W = userLocation.location;
CLLocationDistance distToX = [X distanceFromLocation:W];
CLLocationDistance distToY = [Y distanceFromLocation:W];

并检测 W 与 X,Y 定义的线的距离,您可以调整以下代码:

def pointLineDistance(p,v1,v2):
  return (numpy.linalg.norm(p-v1)**2 * numpy.linalg.norm(v2-v1)**2 - (numpy.dot((v1-p),(v2-v1)))**2) / numpy.linalg.norm(v2-v1)**2 

抱歉,我在这里使用 python 和 numpy,只需复制并粘贴它,但这是点 p(你的 W)和其他两个向量 v1,v2(你的 X,Y)之间距离的 2d / 3d 广义实现。查找http://mathworld.wolfram.com/Point-LineDistance2-Dimensional.html

我不知道它如何符合球面坐标,但它适用于欧几里德空间。干杯,埃尔

于 2013-07-08T20:56:06.857 回答