Могу ли я позвонить, чтобы получить коды iata для городов? - PullRequest
1 голос
/ 25 февраля 2020

Я занимаюсь разработкой веб-приложения для путешествий, в котором есть поля отправления и назначения. Можно ли вызвать API, который принимает отправления и назначения и возвращает для них коды iata?

1 Ответ

0 голосов
/ 25 февраля 2020

Вы можете использовать Wikidata и службу запросов SPARQL Wikidata для получения кодов 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 .

Вкратце, приведенные выше строки делают следующее :

  1. <https://en.wikipedia.org/wiki/Los_Angeles> schema:about ?city . запросов для элемента Wikidata, который связан с данной статьей Wikipedia.

  2. ?airport wdt:P31/wdt:P279* wd:Q1248784; wdt:P131+ ?city; находит все аэропорты, расположенные в этом городе.

  3. ?airport wdt:P238 ?iata возвращает код IATA этого аэропорта.

Для программного доступа к данным позвоните по номеру https://query.wikidata.org/sparql?query= ...

...