计算两点之间的近似距离

时间:2013-01-08 09:16:08

标签: google-maps

我正在尝试计算Google地图上相对于路线图的两点之间的近似距离。 75%的时间点不在直线上,并且它们在路线图上形成三角形。我考虑到了直角和钝角。并且由点创建的线是斜边。

让我们采取由点形成的线:“x”
其他两行:“y”& “Z”
假设y和z等于

现在我正在采取前面所述的两个选项以获得最佳结果:

选项1:

y = x(sin 45)/(sin90)
Total Distance = 2y

选项2:

y = x(sin 30)/(sin120)
Total Distance = 2y

通过获取距离的所有坐标来计算距离。它与大约10%到20%不同。

在几乎所有情况下,第二个提供了检查Google地图车辆距离的最佳价值。

是否有更好的替代方案以获得最高准确度?

1 个答案:

答案 0 :(得分:0)

您尝试过Haversine配方吗?

是:

dlon = lon2 - lon1
  dlat = lat2 - lat1
  a = (sin(dlat/2))^2 + cos(lat1) * cos(lat2) * (sin(dlon/2))^2
  c = 2 * atan2(sqrt(a), sqrt(1-a)) 
  d = R * c