おがみたは衰退しました

プログラミング系の備忘録など

Unityで逆ジオコーディングしてみた

ogamita777/unity-geocoding-test

↑が今回制作したものです。
Unity 4.6.3f1 + Nexus 5(Android 5.0.1) で動作確認済みです。

1. GPS情報を取得する

Unityで位置情報を取得 - チラ裏Unityを参考したらできました。

2. GPS情報を逆ジオコーディングする

簡易逆ジオコーディングサービスで緯度と経度をURLで指定することにより住所のJSONデータを取得できました。

double latitude = Input.location.lastData.latitude;
double longitude = Input.location.lastData.longitude;
WWW results = new WWW("http://www.finds.jp/ws/rgeocode.php?json&lat=" + latitude + "&lon=" + longitude); // 逆ジオコーディング

yield return results;

3. 取得したJSONデータをUnityで扱えるようにする

MiniJSONを使いました。

var search  = Json.Deserialize(results.text) as IDictionary;
var result = search["result"] as IDictionary;
var prefecture = result["prefecture"] as IDictionary;
var municipality = result["municipality"] as IDictionary;
string currentPosition = prefecture["pname"] as string + municipality["mname"] as string;

4. uGUIのTextに取得した住所を代入

GameObject.Find("Text").GetComponent<Text>().text = currentPosition;