事務屋さんの備忘録

主にプログラミングのことを書いていきます。メモというか備忘録的な感じで。プログラミングといっても、私はプロのエンジニアでも本職のプログラマーでもありません。単なる事務職をやってるサラリーマンで、空いた時間にちょこちょこっとプログラミングしてる程度です。よってこのブログに記載したことが誤っていたり、もっとよい方法がある場合もあると思います。その場合には、ご指摘いただけると嬉しいです。また、このブログを読んで役に立った、なんて方がいらっしゃったら幸いですね。

住所から座標(緯度・経度)を取得する

メモ。

package com.freefly3104.geocoder01;

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

import android.app.Activity;
import android.location.Address;
import android.location.Geocoder;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {
	
	private EditText editText;
	private TextView textView;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		editText = (EditText) findViewById(R.id.editText1);
		
		textView = (TextView) findViewById(R.id.textView1);
		
		Button btn = (Button) findViewById(R.id.button1);
		
		// クリック処理(匿名クラス)
		btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO 自動生成されたメソッド・スタブ
				getlatitude();
			}
		});
	
	}
	
	private void getlatitude(){
		
		Geocoder geocoder = new Geocoder(this, Locale.getDefault());
        
        try{
        	
        	String text = editText.getText().toString();
        	List<Address> addressList = geocoder.getFromLocationName(text, 1);
            Address address = addressList.get(0);
 
            double lat = address.getLatitude();
            double lng = address.getLongitude();
            String adr = Double.toString(lat) + "," + Double.toString(lng);
            
            textView.setText(adr);
          
        }catch(IOException e){
        	textView.setText("Err!");
        }
        
	}
	
}