• 締切済み

指定地点(緯度・経度)から指定半径内にの地点情報(緯度・経度)を取得す

指定地点(緯度・経度)から指定半径内にの地点情報(緯度・経度)を取得する方法がわかりません。 JavaとMySQLを使用して、DB内にデータ管理している施設情報を 現在地点(緯度・経度)と、半径距離数(100m,500m,1kmなど)を指定し、 その半径内の緯度・経度に含まれる施設情報を取得したいです。 http://d.hatena.ne.jp/ilo/20090212/1234448136 上記のサイトを参考にしていますが、距離からの度数の計算方法がわかりません。 Javaでの、距離からの度数の計算方法を教えてください。 宜しくお願いします。

みんなの回答

回答No.2

MySQLで指定した緯度経度から半径nメートル内検索っぽいのを実現するSQL http://d.hatena.ne.jp/ilo/20090212/1234448136 こういうものがありました。 -------------以下引用------- まず最初に緯度経度の情報を持ったテーブルを作成。 CREATE TABLE `geotable` ( `id` INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY , `name` VARCHAR(255) NOT NULL, `geom` POINT NOT NULL, SPATIAL INDEX(geom) ) ENGINE = MYISAM ; あとはこれを使って検索するだけ。 SELECT name, Y(geom), X(geom) FROM geotable WHERE MBRContains(GeomFromText ('LineString(139.7800318 35.71654578, 139.7744762 35.71099022)'),geom);

LimeGreenWave
質問者

お礼

osu_neko09さん 回答ありがとうございます。 参考にさせていただきます。

回答No.1

おもいきり精密にやるなら下記 「緯度・経度からの距離計算」を参照 http://okwave.jp/qa/q249931.html でも1km内外なら平面とみなしてよかろうということなら、下記 「緯度経度1度の距離」を参考に、計算したらいかがです? http://d.hatena.ne.jp/Kiske/20090324/1237894846 蛇足:私なら円形ではなく長方形の範囲でくりぬきます。 円形だとSQLの条件文が面倒そうで・・。

LimeGreenWave
質問者

お礼

>osu_neko09さん。 回答ありがとうございます。 精度はこだわらないので、平面での計算方法を参考にさせていただきました。 ありがとうございました。

関連するQ&A