• 締切済み

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

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

  • Java
  • 回答数2
  • ありがとう数13

みんなの回答

回答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

  • PHPで2地点間の緯度経度の求め方を教えてください

    PHPで2地点間の緯度経度の求め方について教えてください。 地点A(始点)と地点Z(終点)までを直線とした場合に、 地点Aから地点Z間の緯度経度を求めたいです。 求める地点Aから地点Z間の緯度経度の数は php側で吸収し地点Aから地点Z間で、1地点(N)求めた場合、 地点Aから地点Nの距離 = 地点Nから地点Zの距離 としたい。(求める地点数を等間隔にしたい) 分かっている情報としては ・地点Aと地点Zの緯度経度 ・地点Aから地点Zの距離 です。 そもそも求めることができるのでしょうか? 地点A(始点)と地点Z(終点)までの距離を求める方法等は、 サイトに載っていますが。 どなたかよろしくお願いいたします

    • ベストアンサー
    • PHP
  • 2地点の緯度経度と2地点からの角度から一点の緯度経度を求められるのでしょうか?

    初めて質問いたします。 ある2地点AとBがあるとします。 AとBの緯度経度が実際の計測で分かっていて、その直線距離も分かっています。 その2点を結ぶ直線上から緯度経度不明の地点Cまでの、AとBからの角度(360°換算)と距離が分かっていたら地点C(つまりAとBからの直線の交点)の緯度経度は分かるのでしょうか? 自分の研究に関わることなので、これを機にきちんと理解したいと思います。 宜しくお願いいたします。

  • 緯度・経度からの距離計算

    ある地点の緯度・経度ともう一方のある地点の緯度・経度が わかっているとして、その各緯度・経度より2地点間の距離を 計算できないのでしょうか? 計算方法を知りたいのです。 なんか公式みたいなものはないのでしょうか? なんかヒントになるサイトのURLでもかまいません。 お願いします。教えて下さい。

  • 緯度経度について

    緯度経度について ここにある1つの緯度経度情報があります。 それに方位(16方位まで)と距離を与えて、もう1つの緯度経度情報を求めたいのですが、計算式などがのっていて参考になるサイトとかってありませんか? 宜しくお願いします。

  • 緯度・経度から距離を計測するには、どう計算すればいいのでしょうか

    ある地点の、緯度・経度から、ある地点の、緯度・経度まで 距離を計測するには、どう計算すればいいのでしょうか? 教えてください。 よろしく、お願いいたします。

  • 緯度経度から2点間の距離を求める

    緯度経度から2点間の距離を求めることを考えております。 QNo.249931 http://oshiete1.goo.ne.jp/qa249931.html を参考に、色々、やっておりますが、どうも、うまく行きません。 サジェスチョンをお願いいたします。 今欲しいケースは、極めて近距離です。概略2Km程度ですので、 下記を使っております。 >ある地点の緯度・経度をδ1・λ1,もう一方の地点はδ2・λ2とします。 >2地点の緯度の平均(ふつうに足して2で割る)をδ0とすると, >d=√[{(λ1-λ2)×(cosδ0)}^2 + (δ1-δ2)^2] >角度は度でもラジアンでも構いません(式中の値がすべて同じ単位であれば)。 >あとは,距離(km)=6370×dで2地点間の距離が出ます。(6370kmは地球の平均半径です) 具体例 A地点 35度10分08秒、136度53分08秒 --> 126608秒 、492788秒 B地点 35度09分46秒、136度55分01 秒 --> 126586秒、492901秒 δ1= 35*60*60+10*60+08=126608 λ1=136*60*60+53*60+08=492788 δ2= 35*60*60+09*60+46=126586 λ2=136*60*60+55*60+01=492901 δ0=(126608+126586)/2=126597 d=Sqrt(((492788-492901)*cos(126597))^2+(126608-126586)^2)=111.9221523 従って、A-B、2地点の距離(km)は、 距離(km)=6370*111.9221523=712944.1101Km 一方で、荒っぽく、1秒を緯度、経度ともに、30.9mとすると、 (地球1周≒4万km、全周=360度→360*60*60=1296000秒 (∴ 40000km*1000m/1296000秒≒30.9m) δ1-δ2=(126608-126586)=22 λ1-λ2=(492788-492901)=-113 距離(m)=sqrt(22~2+113^2)=3557.25975 この2地点間の距離は、大体3Kmと分かっておりますから、 荒っぽい計算の方が合っています。 小生の計算は、合っているとは思いますが、サジェスチョンをお願いいたします。

  • 2点の緯度経度から2点の交点の緯度経度を求めるには?

    ある2地点の緯度経度及び方位角がわかっている場合、ある地点で2点の延長線が交わった地点の緯度経度を求めるにはどうすればよいのですか。 また、3地点の緯度経度、方位角がわかっていて、3地点の延長線上が交わらず(各2点は交わる)各2地点の交点で三角形ができたとき、この重点の緯度経度を求めるにはどうすればよいのですか。 地図上で線を引いて求めると思いますがもっと正確に求める計算式を教えてください。

  • 緯度経度と方位・距離の計算方法

    今緯度・経度のデータを扱うプログラムを組んでいて、この計算をどうするかで悩んでいます。 この手の話は検索でそれなりにヒットするんですが、なかなかまとまった情報が得られないので教えてください。 緯度経度と方位・距離の計算について、 1) 地点Aから地点Bへの方位と距離を求める 2) ある地点から任意の方位・距離を与えた先の地点を求める と2通りありますが、これらを計算する方法はどういったものがあるでしょうか。またそれらの精度はどれぐらいなのでしょうか。 加えてですが、2点間の距離を計算する方法として「ヒュベニの式」というものがあり、割と簡単な計算でそこそこの精度が得られることを調べて知りました。 そこで、この式を拡張して距離だけでなく方位も計算したり、上の 2) を計算するといったものはないのでしょうか。 よろしくおねがいします。

  • ある緯度経度からxメートル離れた緯度経度を求める

    中心を、 北緯=34.9083、東経=136.5975 とします。 ここから南に80000メートル、西に80000メートルずらしたとすると、その地点の緯度経度はいくらになるのでしょうか。 それを求める際の計算式を教えていただけないでしょうか。かなり高い精度で求めたいです。 よろしくお願いします。

  • 緯度、経度から標高を知りたいです。

    多くの地点の緯度、経度のデータがあります。 それぞれの地点の標高を知りたいのですが、何かよい方法はありませんか? 地点の数が多すぎて、GoogleMapや国土地理院のウォッちずを利用して手動で調べるには手間と時間がかかりすぎます。 テキストファイル、csv等にまとめることはできるので、そこから標高を出してくれるソフトがあれば良いのですが。 少しですが、プログラミングができるので、「緯度と経度を指定すると標高が取得できる関数」や、それが入ったdllがあればそちらでも良いです。 どなたかよろしくお願いいたします。 *ソフトはフリーソフトでお願いします