마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Geocoder 질문입니다.

0 추천
List<Address> addr = geocoder.getFromLocation(lat, lng, 5);

받아온 location에서 이부분에서 service not Avilable 에러가 뜨네요..

구글링 해보니까 json 으로 바꿔서 받으라는데, 그 방법좀 상세하게 알려주실분 계신가요 ?

핸드폰을 계속 껐다가 킬수도 없는 노릇이고.. ㅠ   ㅠ 부탁드립니다.
안드로메다개발자 (8,830 포인트) 님이 2013년 6월 7일 질문

1개의 답변

+1 추천
public static JSONObject getLocationInfo(String address) {

		HttpGet httpGet = new HttpGet("http://maps.google.com/maps/api/geocode/json?address=" +address+"&ka&sensor=false");
		HttpClient client = new DefaultHttpClient();
		HttpResponse response;
		StringBuilder stringBuilder = new StringBuilder();

		try {
			response = client.execute(httpGet);
			HttpEntity entity = response.getEntity();
			InputStream stream = entity.getContent();
			int b;
			while ((b = stream.read()) != -1) {
				stringBuilder.append((char) b);
			}
		} catch (ClientProtocolException e) {
		} catch (IOException e) {
		}

		JSONObject jsonObject = new JSONObject();
		try {
			jsonObject = new JSONObject(stringBuilder.toString());
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return jsonObject;
	}
	
	public static GeoPoint getGeoPoint(JSONObject jsonObject) {

		Double lon = new Double(0);
		Double lat = new Double(0);

		try {

			lon = ((JSONArray)jsonObject.get("results")).getJSONObject(0)
				.getJSONObject("geometry").getJSONObject("location")
				.getDouble("lng");

			lat = ((JSONArray)jsonObject.get("results")).getJSONObject(0)
				.getJSONObject("geometry").getJSONObject("location")
				.getDouble("lat");

		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return new GeoPoint((int) (lat * 1E6), (int) (lon * 1E6));

	}


GeoPoint srcGeoPoint =getGeoPoint(getLocationInfo(fromAddress.replace("\n"," ").replace(" ", "%20")));
			GeoPoint destGeoPoint =getGeoPoint(getLocationInfo(CalDescription.toAddress.replace("\n"," ").replace(" ", "%20")));

 

구글링해보니까 json으로 바꿔서 받는 소스도 나와있네요

Gradler (109,780 포인트) 님이 2013년 6월 10일 답변
답변감사합니다. 그런데 이 코드는 주소를 받아와서 위도, 경도를 json으로 파싱하는 코드아닌가요 ? 문제점은 위도, 경도는 받아옵니다.
그다음 좌표를 주소로 바꾸는 과정에서
getFromLocation 이 Service Not Available 이 발생하는 문제 입니다.
...