通过 GPS 位置获取城市的 WikiData 标识符
Posted
技术标签:
【中文标题】通过 GPS 位置获取城市的 WikiData 标识符【英文标题】:Get WikiData Identifier for city by GPS location 【发布时间】:2017-06-23 09:39:54 【问题描述】:我想在特定的 GPS 位置获取城市/定居点。 意思是在给定范围内最接近的,或者充其量是最接近的。
我在维基媒体数据示例中找到了一些示例查询。
我尝试采用,但我只收到错误或超时
这是我当前的查询:
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
当我忽略结算条件时,查询有效。但是当我添加它时,查询时间太长了 我究竟做错了什么?正确的语法是什么?
【问题讨论】:
【参考方案1】:我发现了我的错误。
这是有效的查询:
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
【讨论】:
以上是关于通过 GPS 位置获取城市的 WikiData 标识符的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android 中使用 gps 获取当前位置(街道、城市等)
如何在不使用 GPS 的情况下获取 Android 设备的当前城市名称?