0

都市または国の情報と対応するジオメトリ、および都市に関連する他の多くの情報を含むmap_placesというテーブルがあります。私のデータベースシステムはPostGISです。私の要件は次のとおりです。

私のアプリケーションへの入力は、DBに保存されている正確なジオメトリである場合とそうでない場合があるジオメトリになります。入力ジオメトリを使用して、テーブルから最も近い都市情報を見つける必要があります。この入力はユーザーによって送信されません。システムによって送信されます。どんな助けでも大歓迎です。

これを処理するためにこれまたはSQLで利用可能なphpの最近傍実装はありますか

4

1 に答える 1

1

ここで、行'location'は、アイテムの座標(整数または浮動小数点数)です。$id-テーブル'map_places'で必要なアイテムのID。このクエリの結果は、クエリに渡したIDを持つアイテムの場所に最も近い場所を持つアイテムのIDになります

SELECT * FROM(
SELECT T2.id, abs(T1.location-T2.location) as DIF
FROM  map_places T1, map_places T2
WHERE T1.id = $id AND T1.id<>T2.id
order by T1.id) as RES
WHERE DIF = (SELECT min(abs(T1.location-T2.location))
FROM  map_places T1, map_places T2
WHERE T1.id=$id AND T1.id<>T2.id)
于 2013-02-04T10:04:19.060 に答える