我是iOS iPhone开发的新手,我在使用地图方面遇到了一些问题。
我正在尝试找到一种方法来创建一个包含许多坐标点(纬度,经度)的路径,然后检查特定坐标点是否在此路径中。我已经使用Apple Maps和新的Google SDK查找了如何执行此操作,但没有成功。
完整的问题是:
我有一些坐标(但不是全部)代表车辆经过的路径。我需要检查特定坐标是否在此车辆路径内。例如:我有坐标X,Y和Z.如果我创建一个具有此坐标的路径,则完整路径将具有坐标X,Y, W 和Z.通过此路径,我可以检查坐标W,不在用于构造路径的坐标中。这类似于在两点之间创建路径,但告诉地图使用一些检查点创建路线,并在检查后是否在此路径中有随机坐标。
有办法做这样的事吗?
答案 0 :(得分: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
我不知道它如何符合球面坐标,但它对于Eucledian空间来说是可以的。 干杯, EL