2

市についての情報を取得するために、郵便番号を使用してクエリを作成したいと思います。しかし、それはどのように機能しますか?

誰かがクエリがどのように見えるべきか教えてもらえますか?

グリッツシーピー

4

2 に答える 2

2

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

ユースケースをもう少し説明していただければ、より良いお手伝いができるかもしれません。

別のヒント...ジオネームも使用できます

于 2010-12-22T19:00:29.610 に答える
1

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

于 2011-01-17T16:47:35.933 に答える