使用维基数据获取地点坐标

Get coordinates of a place using Wikidata

我正在使用 Wikidata API 从名人那里获取出生位置,然后使用 Google 地图 API 显示位置。这是我使用的维基数据请求:

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 获取经纬度,并将其显示在地图上,但有时地理编码器找不到位置(也许这个地方没有不再存在),所以我想知道是否可以从维基数据查询中获取坐标?我知道出生地有一个 "coordinate location" 属性,但我不知道如何访问它。

这里是 wikidata query

的link

这对我有用 ?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". }
}

这个returns:

[{
    "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"
}]