Получить координаты места с помощью Wikidata - PullRequest
2 голосов
/ 19 января 2020

Я использую Wikidata API для получения местоположения рождения от известных людей, а затем отображаю местоположение с помощью Google Maps API. Вот запрос Wikidata, который я использую:

SELECT DISTINCT ?item ?itemLabel ?birthLocation ?birthLocationLabel WHERE {
  ?item (wdt:P31|wdt:P101|wdt:P106)/wdt:P279* wd:Q482980 ;
        rdfs:label "Mary Wollstonecraft"@en ;
        wdt:P19 ?birthLocation
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}

Затем я использую геокодер Google, чтобы получить координаты от BirthLocationLabel и отображать их на карте, однако иногда геокодер не может найти местоположение (может быть, место больше не существует), поэтому я хотел бы знать, можно ли было получить координаты из запроса викиданных? Я знаю, что место рождения имеет свойство "координата местоположения", но я не знаю, как получить к нему доступ.

enter image description here

Вот ссылка на запрос wikidata

1 Ответ

2 голосов
/ 19 января 2020

Это работает для меня ?birthLocation wdt:P625 ?coordinates, поэтому весь запрос будет:

SELECT DISTINCT ?item ?itemLabel ?coordinates ?birthLocation ?birthLocationLabel 
WHERE {
  ?item ((wdt:P31|wdt:P101|wdt:P106)/(wdt:P279*)) wd:Q482980;
    rdfs:label "Mary Wollstonecraft"@en;
    wdt:P19 ?birthLocation.
  ?birthLocation wdt:P625 ?coordinates.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}

Это возвращает:

[{
    "item": "http://www.wikidata.org/entity/Q101638",
    "itemLabel": "Mary Wollstonecraft",
    "coordinates": "Point(-0.075 51.5166)",
    "birthLocation": "http://www.wikidata.org/entity/Q123219",
    "birthLocationLabel": "Spitalfields"
}]
...