2点の住所から直線距離を求めます。緯度と経度がわかればそこから距離を計算することができます。住所から緯度と経度を求めるためにYahoo!ジオコーダAPIを使用します。アプリケーションIDは各自で取得してください。

東京都庁の位置を求めます。住所は「東京都新宿区西新宿2丁目8-1」です。「東京都新宿区西新宿2丁目8-1」をエンコードするとE6%9D%B1%E4%BA%AC%E9%83%BD%E6%96%B0%E5%AE%BF%E5%8C%BA%E8%A5%BF%E6%96%B0%E5%AE%BF2%E4%B8%81%E7%9B%AE8-1なので、https://map.yahooapis.jp/geocode/V1/geoCoder?appid=【アプリケーションIDは各自で取得してください】&query=%E6%9D%B1%E4%BA%AC%E9%83%BD%E6%96%B0%E5%AE%BF%E5%8C%BA%E8%A5%BF%E6%96%B0%E5%AE%BF2%E4%B8%81%E7%9B%AE8-1とリクエストとすると以下のようなレスポンスが得られます。Coordinatesの部分を取り出せば緯度と経度を知ることができます。

これは取得した緯度経度を格納するためのクラスです。

これは住所から緯度と経度を取得するためのメソッドです。住所としておかしな文字列を渡してしまった場合はnullが返されます。

次に緯度と経度から2点間の距離を調べる方法ですが、公式のようなものがあります。

あとはこれを使って距離を求めます。東京都庁と大阪府庁の距離を求めてみましょう。

東京都庁は「東京都新宿区西新宿2丁目8-1」、大阪府庁は「大阪府大阪市中央区大手前2丁目1-22」です。実行してみると東京と大阪の距離は約395.59キロメートルと表示されます。