Geolocation 通过GPS位置获取城市的WikiData标识符
我想获取特定gps位置的城市/居民点。 表示给定范围内最近的一个,或者最多是最近的一个 我在wikimedia数据示例中找到了一些示例查询 我试着去采纳,但我只得到了错误或超时 以下是我当前的查询:Geolocation 通过GPS位置获取城市的WikiData标识符,geolocation,gps,sparql,wikidata,Geolocation,Gps,Sparql,Wikidata,我想获取特定gps位置的城市/居民点。 表示给定范围内最近的一个,或者最多是最近的一个 我在wikimedia数据示例中找到了一些示例查询 我试着去采纳,但我只得到了错误或超时 以下是我当前的查询: SELECT * WHERE { ?city wdt:P31/wdt:P279* wd:Q15642541 . // only settlements # Search by Nearest SERVICE wikibase:around {
SELECT *
WHERE
{
?city wdt:P31/wdt:P279* wd:Q15642541 . // only settlements
# Search by Nearest
SERVICE wikibase:around {
?place wdt:P625 ?location .
bd:serviceParam wikibase:center "Point(8.4024875340491 48.9993762209831)"^^geo:wktLiteral .
bd:serviceParam wikibase:radius "1" .
bd:serviceParam wikibase:distance ?distance .
}
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
ORDER By ?distance
当我忽略结算条件时,查询工作。但是当我添加它时,查询需要的时间太长了
我做错了什么?正确的语法是什么?我发现了我的错误
以下是工作查询:
SELECT DISTINCT *
WHERE
{
?place wdt:P31/wdt:P279* wd:Q515 .
# Search by Nearest
SERVICE wikibase:around {
?place wdt:P625 ?location .
bd:serviceParam wikibase:center "Point(8.4024875340491 48.9993762209831)"^^geo:wktLiteral .
bd:serviceParam wikibase:radius "10" .
bd:serviceParam wikibase:distance ?distance .
}
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
Order by ?distance