【发布时间】:2020-02-25 11:25:33
【问题描述】:
我正在开发一个同时具有出发地和目的地字段的旅行网络应用程序,我可以调用一个 API 来获取出发地和目的地并为它们返回 iata 代码吗?
【问题讨论】:
标签: api geolocation
我正在开发一个同时具有出发地和目的地字段的旅行网络应用程序,我可以调用一个 API 来获取出发地和目的地并为它们返回 iata 代码吗?
【问题讨论】:
标签: api geolocation
您可以使用 Wikidata 和 Wikidata 的 SPARQL 查询服务来检索 IATA 代码。
要求是您知道您的出发/目的地城市的维基百科文章的标题。对于大城市来说,这应该不是问题,因为维基百科的标题与城市名称一致。但对于较小的地方,您可能需要先使用 Wikipedia API 来找到正确的文章。
一旦您知道维基百科的标题,您就可以在https://query.wikidata.org 上运行以下查询:
SELECT DISTINCT ?iata WHERE {
<https://en.wikipedia.org/wiki/Los_Angeles> schema:about ?city .
?airport wdt:P31/wdt:P279* wd:Q1248784;
wdt:P131+ ?city;
wdt:P238 ?iata
}
如果您是 Wikidata 和 SPARQL 的新手,您可以在 https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/A_gentle_introduction_to_the_Wikidata_Query_Service 找到介绍。
简而言之,以上几行做了以下事情:
<https://en.wikipedia.org/wiki/Los_Angeles> schema:about ?city . 查询链接到给定 Wikipedia 文章的 Wikidata 项。
?airport wdt:P31/wdt:P279* wd:Q1248784; wdt:P131+ ?city; 查找位于该城市的所有机场。
?airport wdt:P238 ?iata 返回该机场的 IATA 代码。
要以编程方式访问数据,请调用https://query.wikidata.org/sparql?query=...
【讨论】: