
PHPで最も近い緯度経度をDBデータから抽出する方法について
現在携帯電話のGPS機能を使って、
お店の位置情報リストを使って現在地から最も近い場所を検索する機能を
PHPで作ろうと考えています。
そこで携帯電話から取得出来る位置情報をWGS84系に変換するまでは出来たのですが、
お店の位置情報リスト(こちらもWGS84系データで、SQLでDBに保存)から
どのような方法で検索すればよいのか困っています。
そもそもWGS84系のデータ仕様自体を詳しくわかっていないのですが、
PHPである場所の緯度経度から、DBにある緯度経度データから最も距離の近い緯度経度を検索・抽出するにはどうしたらよいでしょうか。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
>「ある緯度経度情報をDBに保存している緯度経度リストの中から一番近い1件を抽出する方法」になりますので、
ですから差の絶対値を出して比較すればよろしいわけですので具体的に言いますと
DBに保存している緯度経度リストが格納されているテーブル名が「location」
緯度が「latitude」フィールド、経度が「longitude」フィールドに格納されていたとしまして
以下のようなSQL文を実行すれば結果はだいたい近い順に並びますので
その一番上が一番近い1件となります。
SELECT * FROM `location` ORDER BY ABS(`latitude` - [調べたい緯度]) + ABS(`longitude` - [調べたい経度]) ASC
No.1
- 回答日時:
日本国内ぐらいなら現在位置の緯度経度と登録してある緯度経度の差の絶対値を出してそれを比較すれば距離の目安は得られます。
ただし地球上のどの場所でも1度が100km程度になる緯度に対して経線の長さは一定でないことに注意してください。極端な例では北極点から3mの距離の経線の長さはわずか18m、1度は5cmにしかなりません。もし地球上のどの場所でも通用するようにしたい場合はもう少し高度な手段が必要になります。
ご回答ありがとうございます。
現在開発予定の内容は日本国内のみの情報となりますので、
若干の誤差であれば発生しても問題ない内容になります。
ただ今回の質問の結果として得たいものが
「ある緯度経度情報をDBに保存している緯度経度リストの中から一番近い1件を抽出する方法」になりますので、
恐れ入りますがこちらの方法か参考サイトなどもご教授いただけると幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セッション関数を使わずにファ...
-
PHP8でWarning:Undefined varia...
-
phpの問い合わせフォームを作っ...
-
composerをインストールしたい...
-
PHPで訪問回数を表示するカウン...
-
PHPのエラーの解消法について教...
-
c言語 文字 - '1'+26
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
SplFileObject を利用したとき...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
-
phpのheader("Location:#pos")...
-
PHPからCSVをアップロード後、m...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GoogleMapAPI ズームレベルと縮...
-
googleマップをajax
-
生コンの立米数の出し方
-
GPS位置情報で2点の中間地点の...
-
gmailからpythonファイル実行
-
ホームページに載せる地図について
-
2点間の距離をミリ秒単位で求め...
-
エクセルで条件をつけて図形を...
-
エクセルVBA 作業後に選択範囲...
-
別のフォームで記述している関...
-
ワードで、グレーの部分しか入...
-
VBAでのユーザフォームの表示有...
-
エクセル マクロ 別シートから...
-
ascW関数の結果がおかしい
-
Sub Auto_Open() 実行されない
-
ACCESSで別DBにあるクエリを...
-
Excel VBA 選択範囲の罫線色の...
-
エクセルでの6ヶ月平均の出し方
-
家電量販店で購入した新品ゲー...
-
円の中に等間隔に線を引くには
おすすめ情報