市についての情報を取得するために、郵便番号を使用してクエリを作成したいと思います。しかし、それはどのように機能しますか?
誰かがクエリがどのように見えるべきか教えてもらえますか?
グリッツシーピー
市についての情報を取得するために、郵便番号を使用してクエリを作成したいと思います。しかし、それはどのように機能しますか?
誰かがクエリがどのように見えるべきか教えてもらえますか?
グリッツシーピー
dbpedia が郵便番号データを保持しているかどうかはわかりません。それらが持っているのは、地理的に配置できるすべてのリソースの地理的座標です。
次のようなクエリでこれらの座標を抽出できます。
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX onto: <http://dbpedia.org/ontology/>
SELECT * WHERE {
?s a onto:Place .
?s geo:lat ?lat .
?s geo:long ?long .
}
LIMIT 100
このクエリは、すべての場所とその座標を取得します。Google MAPs API を使用して特定の郵便番号の座標を取得し、SPARQL クエリで座標をフィルタリングして、その郵便番号周辺の場所を取得できます。
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX onto: <http://dbpedia.org/ontology/>
SELECT * WHERE {
?s a onto:Place .
?s geo:lat ?lat .
?s geo:long ?long .
} FILTER ( ?long > YOUR_LONG - radius && ?long < YOUR_LONG + radius &&
lat > YOUR_LAT - radius && ?lat < YOUR_LAT + radius)
LIMIT 100
ユースケースをもう少し説明していただければ、より良いお手伝いができるかもしれません。
別のヒント...ジオネームも使用できます
FILTER を Where ブラケットに含める必要がある可能性はありますか?{}
SELECT * WHERE { ?sa on:Place . ?s geo:lat ?lat . ?s geo:long ?long . FILTER ( ?long > YOUR_LONG - 半径 && ?long < YOUR_LONG + 半径 && lat > YOUR_LAT - 半径 && ?lat < YOUR_LAT + 半径) } LIMIT 100