iOSの地図に表示されている画面内の距離を算出する方法

マップに表示されている範囲の南北の距離がどのくらいか知りたくなったら以下のメソッドを使うと良いです。使い道としては、ユーザがマップを移動させたときのオートロードなどに使うとよさそうですね。今まで表示されていたマップの中心点と、移動したあとのマップの中心の移動距離が下記で取得した南北の距離の半分以上になったらマップをリロードするとかでしょうか。

ちなみにcurrentDistはメートル単位で取得できるので、もしkmが必要なら1/1000すればよいです。
また、緯度経度の範囲検索を行いたいときは1kmあたりの緯度経度の差分がわかると便利です。こんな感じです。

例えば、座標情報を持っているオブジェクトに対して自分を中心にして画面に表示されている範囲に存在しているものだけを表示とかに使えます。先ほど紹介した画面の移動距離についての計算と合わせるとユーザのマップのスクロールに合わせて情報を更新できたりして便利かと思います。

余談ですが、緯度の一度の差は111120メートルで、それの1/60である一分は1852メートルだそうです。そしてこの1852メートルこそが1マイル!ということはこの111120メートルを360倍すると地球の円周の距離になるわけですね。考えた人は頭いいなと思った次第です。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です