【问题标题】:Get coordinates of a place using Wikidata使用 Wikidata 获取地点的坐标
【发布时间】:2020-01-20 03:15:07
【问题描述】:

我正在使用 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". }
}

然后我使用谷歌地理编码器从birthLocationLabel 中获取纬度 lng,并将其显示在地图上,但有时地理编码器找不到位置(可能该位置不再存在),所以我想知道是否可以从 wikidata 查询中获取坐标?我知道出生地点有一个“坐标位置”属性,但我不知道如何访问它。

这里是 wikidata query 的链接

【问题讨论】:

    标签: javascript reactjs sparql wikidata


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-09
      • 2011-06-21
      • 2015-05-16
      • 1970-01-01
      • 1970-01-01
      • 2013-05-15
      • 2011-05-09
      相关资源
      最近更新 更多