θ = φ

ソフトウェア演習Ⅲ〔オプション課題 7:JSON と測地線距離〕担当:青野雅樹
以下の内容を満たす Java プログラムと、それを実行するのに必要なプログラムや入力
データ等をまとめて住所入力(何が入力されたかを示す)と、Tomcat の実行に必要な
すべてのファイルと表示結果のスクリーンコピーをまとめて Moodle にアップせよ。締
切は 12 月 8 日までとする。
北半球の2つの住所(または地名)を入力し、Google Geocoding API を使い JSON 形式
で戻ってきた 2 つの緯度・経度から測地線距離を計算し、これを表示するプログラムを作
れ。なお2つの住所は、Tomcat を使って Web ブラウザから入力し、2 つの場所と測地線距
離を Web ブラウザに表示するプログラム JSP プログラムとすること。
コメントとヒント:
この課題の提出は必須ではありませんが、提出した場合、課題点での調整を行います。
(注:
本科目の最終成績は12月中旬ごろに決まります。)
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 です。