BIZ

Google Map API データを近い順にならべる

いつもGmapsを使っているがGmapsでは対応が難しそうなので、Google Map APIそのものの使い方を再度確認した上で、距離APIを学んでいく。

https://developers.google.com/maps/documentation/javascript/?hl=ja

データを近い順にならべるに当たって、データ量が沢山ある際に、Google Map APIだけで解決するのはどうも難しそうだなあ。 二点間の経度・緯度情報から距離を求める計算式を使った方がいいのかな。その場合は、データベースで同じ県のデータのみ抽出して、同じ県のデータ全てに対して計算式を適用した結果をバーチャルフィールド使って出す感じだろうか。別の県でも近いデータがあるのは確かなんだけど、細かく設定すると大変だし、全部対象にすると重いだろうしな。

緯度・経度情報から二点間の距離を求める計算式

参考:ぷちのいず(緯度経度から2点間の距離を求める) おしえてgoo(緯度・経度からの距離計算)

簡易式は精度もかなり高く速いということなので簡易式を使ってみよう。

簡易式

ある地点の緯度・経度をδ1・λ1,もう一方の地点はδ2・λ2とします。 2地点の緯度の平均(ふつうに足して2で割る)をδ0とすると, d=√[{(λ1-λ2)×(cosδ0)}^2 + (δ1-δ2)^2] 角度は度でもラジアンでも構いません(式中の値がすべて同じ単位であれば)。

というのが簡単そうだ。やってみようか。あってるのかな。 cakePHPでやるのでPHP式にしてみよう。