θ = φ

ソフトウェア演習Ⅲ〔課題 7:JSON と測地線距離〕担当:青野雅樹
以下の内容を満たす Java プログラムと、それを実行するのに必要なプログラムや入力
データ等をまとめて住所入力(何が入力されたかを示す)と、Tomcat の場合は表示結
果のスクリーンコピーを含め Moodle にアップせよ。締切は 11 月 25 日までとする。
北半球の2つの住所(または地名)を入力し、Google Geocoding API を使い JSON 形式
で戻ってきた 2 つの緯度・経度から測地線距離を計算し、これを表示するプログラムを作
れ。余裕があれば、Tomcat を使って Web ブラウザから JSP で2つの住所を入力し、2 つ
の場所と測地線距離を Web ブラウザに表示するプログラム JSP プログラムでもよい。その
場合は、ボーナス点を与える。
コメントとヒント:
String s = "http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=";
のような文字列データの末尾に UTF-8 で符号化された住所を URL メソッドで送れば、結
果が JSON で帰ってきます。
次頁の入力は、愛知県豊橋市天伯町雲雀ヶ丘です。その JSON を参考までに添付しています。
緯度(latitude)と経度(longitude)は、“results” → “geometry”
→ “location”にある“lat”
と“lng”にある値を取得すればいいことがわかります。
Web ブラウザに挑戦する場合、できれば見た目も(CSS などを使い)工夫してください。
測地線距離は地球の半径を 6371km と近似し、以下の公式を使ってください。
distance = R (測地線距離) ただし、 R  6371( km) とします。
  2 atan2

a, 1 a

  
2   
a  sin 2 
  cos 1 cos  2 sin 

 2 
 2 
1  緯度1 のラジアン
2  緯度2 のラジアン
   緯度2  緯度1 のラジアン
   経度2  経度1 のラジアン
たとえば、豊橋駅付近は北緯 34.76 度、東経 137.38 度です。東京駅付近は、北緯 35.68
度、東経 139.77 度です。この 2 点間の地球上の測地線距離は、約 240km です。