GPSの緯度経度から住所へ変換

TextViewでエミュレータ上に出力した結果


ソース1

package cafe.hawaii;

import java.io.IOException;
import java.util.List;
import java.util.Locale;

import android.content.Context;
import android.location.Address;
import android.location.Geocoder;
import android.util.Log;

public class ReverseGeocode {

	final String tag = "ReverseGeocode";

	//座標を住所のStringへ変換
	public String point2address(double latitude, double longitude, Context context) throws IOException{

		String string = new String();

		//geocoedrの実体化
		Log.d(tag, "Start point2adress");
		Geocoder geocoder = new Geocoder(context, Locale.JAPAN);
		List<Address> list_address = geocoder.getFromLocation(latitude, longitude, 5);	//引数末尾は返す検索結果数

		//ジオコーディングに成功したらStringへ
		if (!list_address.isEmpty()){

			Address address = list_address.get(0);
			StringBuffer strbuf = new StringBuffer();

			//adressをStringへ
			String buf;
			for (int i = 0; (buf = address.getAddressLine(i)) != null; i++){
				Log.d(tag, "loop no."+i);
				strbuf.append("address.getAddressLine("+i+"):"+buf+"\n");
			}

			string = strbuf.toString();

		}

		//失敗(Listが空だったら)
		else {
			Log.d(tag, "Fail Geocoding");
		}

		Log.d(tag, string);
		return string;
	}

}