使用 IATA 代码计算机场之间的距离

Posted

技术标签:

【中文标题】使用 IATA 代码计算机场之间的距离【英文标题】:Calculate Distance Between Airports Using IATA Codes 【发布时间】:2011-08-07 06:38:05 【问题描述】:

我需要找到两个机场之间的距离(如空中客车 A320 飞行,不是超级准确),最好使用 IATA 代码(例如 PHX、LAX、CLT)。

我看到很多网站都这样做,但我需要找到一个 API(Google 地图、Bing 地图?),我可以用它来计算距离。我知道我可能需要对 IATA 代码进行地理编码,但我想避免这种情况(我知道使用谷歌地图可以指定 IATA 代码+机场,它会得到位置)

有什么建议吗?

【问题讨论】:

【参考方案1】:

您可以简单地存储机场代码及其纬度和经度的数据库(***可能有这些坐标)。然后,您可以在您自己的服务器上和/或使用 javascript 代码计算这些机场之间的地理距离(例如,大地距离),而不是依赖谷歌地图等,除非所需的机场不在数据库中。另请参阅geographiclib 库或http://www.movable-type.co.uk/scripts/latlong.html

【讨论】:

是的,这可能是我必须走的路线。我目前对我的机场没有很长的时间,但我确信我可以在找到它们时发挥创意(我确实为一家大型航空公司工作)。最好使用我自己的服务器。谢谢。 对于其他尝试使用 C# 执行此操作的人,我刚刚发现:megocode3.wordpress.com/2008/02/05/haversine-formula-in-c【参考方案2】:

SITA* 提供免费 API。详细信息可以在这里找到。 https://www.developer.aero/Airport-API/

用法:

curl -v  -X GET "https://airport.api.aero/airport/distance/ORK/LHR?user_key=[Your_User_Key]&units=km"

*注意 - 我为 SITA 工作。

【讨论】:

你好@Kevin,但是 API 有一些问题,在我搜索 2 个机场时给我一个错误,例如:airport.api.aero/airport/distance/HEM/MUQ?user_key=mykey 告诉“无效的起始机场:HEM”,它没有意义 @Pedro - 回复有点晚了...但是您是否联系过该 API 的支持电子邮件?【参考方案3】:

世界上有数以万计的机场,如果你能找到所有机场的经纬度数据库,你可以建立一个公式来计算每个机场之间的距离。

如果您知道如何使用 REST API,您可以使用 Aviation Edge,它的功能可以让您找到某个坐标附近的机场和城市。这应该符合您的要求。看看他们的developers page

【讨论】:

以上是关于使用 IATA 代码计算机场之间的距离的主要内容,如果未能解决你的问题,请参考以下文章

根据圆形范围选择纬度和经度

计算半径内的 100 英里

计算地球平面地图上2点之间的最短路径

计算地球平面地图上两点之间的最短路径

如何使用它们的经度和纬度值计算两个位置之间的距离

使用javascript计算两个邮政编码之间的距离