在两个位置(lat,lon)之间找到位置(lat,lon)的存在

时间:2018-05-26 17:47:10

标签: c#

我有两个点(位置)及其纬度和经度,“A”和“B”。现在我想知道第三点(位置)A和B之间是否存在“C”。我确实有C的纬度和经度。

如何检查A和B 10公里无线电中C点的存在,请查看以下说明。

“介于”A和B之间说明:

>>> a = range(27)
>>> b = range(3)
>>> result = [map(lambda x: x * b[i], a[9*i: 9*(i+1)]) for i in xrange(len(b))]
>>> result
[[0, 0, 0, 0, 0, 0, 0, 0, 0], [9, 10, 11, 12, 13, 14, 15, 16, 17], [36, 38, 40, 42, 44, 46, 48, 50, 52]]

我已经访问了以下问题,但我无法想到这一点。

  1. find location between two other locations
  2. Finding coordinates of a point between two points?

1 个答案:

答案 0 :(得分:0)

如果您将“A和B之间”定义为“距离A 10公里且距离B 10公里范围内”,则可以使用半正计算来检查两个距离。见https://msdn.microsoft.com/en-us/library/system.device.location.geocoordinate.getdistanceto(v=vs.110).aspx

现在,在我看来,你定义“之间”的方式存在问题。考虑通过交叉以A为中心的10 km圆和另一个以B为中心的圆形所形成的形状,如Ven图。如果A和B接近(比如说相距2公里),则交叉区域中有很多点看起来不在“之间”。

相反,我会根据A和B之间的实际半径距离动态选择圆的半径而不是固定的10 km。例如,如果R = m * d(A,B)。

对于m = 1,一个圆的中心与另一个圆的边缘相交,我认为这与“中间性”的概念更好地对应。您可以尝试为1到2之间的其他m绘制图片。