2010-12-18 3 views
6
i am developing android application using Geocoder services, 
    I have an application where I try to get address of a location based on 
    the latitude,longitude coordinates its working fine. 
    my problem is how to get continent of particular address. 

예 : double lat = 17; 이중 론 = 78.49;안드로이드 앱에서 지오 코더를 사용하여 특정 위치의 대륙을 찾는 방법

목록 주소 = 새 지오 코더 (Shout.this, Locale.getDefault()). getFromLocation (lat, lon, 1);

나는이 코드 출력을 사용하여 인도, 하이데라바드 이 주소는 대륙을 찾는 방법, 좀 도와주세요.

내가 동적으로 지오 코더를 사용하여 국가 이름을 얻고는 country.it와 함께 대륙 이름을 얻기 위해 자신의 기회 것은 어떤 무료 서비스는 사전

에서

감사 대륙 기반 서비스를 찾을 내가 동적으로 필요 정적으로 유지하기 어렵다

답변

2

Google API에서 제공 한 정보가 있다고 생각하지 않습니다. 내가 생각할 수있는 유일한 해결책은 국가 이름을 대륙 이름에 매핑하는 일종의 정적 데이터 구조를 갖는 것입니다 (예를 들어 this 웹 페이지를 긁어내는 등). 그런 다음 GeoCoder가 제공하는 문자열을 텍스트 검색하여 가장 일치하는 국가 이름 (문자열 매핑의 키)에 해당하는 대륙을 반환 할 수 있습니다. (미국 주소의 특수한 경우도 성가신 끝에 국가 코드로 끝내야합니다.)

+0

당신은 당신의 코드에서 지오 코더 있는지 확인해야 HashMap이 설정된 언어로만 주소를 반환하도록 요청 받았습니다. 그렇지 않으면 문제가 발생할 것입니다 ... 사용자를 수용하는 경우가 아니면 여전히 대륙 이름을 국제화해야 할 수도 있습니다. 한 언어. –

+0

이미 지오 코더를 사용하여 국가 이름을 동적으로 가져오고 있습니다. 대륙 이름과 함께 대륙 이름을 가져올 수있는 모든 기회가 정적으로 유지하기 어렵습니다. 동적으로 필요합니다. – Narasimha

+0

예, 이해할 수있는 방법은 국가 이름을 사용하는 것이 좋습니다. 당신은이 괴상한 맵 아이디어를 받아서 대륙 이름으로 바꿨습니다. 이 작업을 수행하는 기본 제공 방법이 없다면 불행히도 지금 당장 더 좋은 방법을 생각할 수 없습니다. –

1

제한된 수의 대륙이 있으므로 정적 데이터 목록을 사용하는 것이 좋습니다.

json_str이 (here을 발견) 아래에 우리는 아래와 같은 CountryCode를 얻을 수 있습니다 CountryCode & Continent

String json_str = "{\"AD\":\"Europe\",\"AE\":\"Asia\",\"AF\":\"Asia\",\"AG\":\"North America\",\"AI\":\"North America\",\"AL\":\"Europe\",\"AM\":\"Asia\",\"AN\":\"North America\",\"AO\":\"Africa\",\"AQ\":\"Antarctica\",\"AR\":\"South America\",\"AS\":\"Australia\",\"AT\":\"Europe\",\"AU\":\"Australia\",\"AW\":\"North America\",\"AZ\":\"Asia\",\"BA\":\"Europe\",\"BB\":\"North America\",\"BD\":\"Asia\",\"BE\":\"Europe\",\"BF\":\"Africa\",\"BG\":\"Europe\",\"BH\":\"Asia\",\"BI\":\"Africa\",\"BJ\":\"Africa\",\"BM\":\"North America\",\"BN\":\"Asia\",\"BO\":\"South America\",\"BR\":\"South America\",\"BS\":\"North America\",\"BT\":\"Asia\",\"BW\":\"Africa\",\"BY\":\"Europe\",\"BZ\":\"North America\",\"CA\":\"North America\",\"CC\":\"Asia\",\"CD\":\"Africa\",\"CF\":\"Africa\",\"CG\":\"Africa\",\"CH\":\"Europe\",\"CI\":\"Africa\",\"CK\":\"Australia\",\"CL\":\"South America\",\"CM\":\"Africa\",\"CN\":\"Asia\",\"CO\":\"South America\",\"CR\":\"North America\",\"CU\":\"North America\",\"CV\":\"Africa\",\"CX\":\"Asia\",\"CY\":\"Asia\",\"CZ\":\"Europe\",\"DE\":\"Europe\",\"DJ\":\"Africa\",\"DK\":\"Europe\",\"DM\":\"North America\",\"DO\":\"North America\",\"DZ\":\"Africa\",\"EC\":\"South America\",\"EE\":\"Europe\",\"EG\":\"Africa\",\"EH\":\"Africa\",\"ER\":\"Africa\",\"ES\":\"Europe\",\"ET\":\"Africa\",\"FI\":\"Europe\",\"FJ\":\"Australia\",\"FK\":\"South America\",\"FM\":\"Australia\",\"FO\":\"Europe\",\"FR\":\"Europe\",\"GA\":\"Africa\",\"GB\":\"Europe\",\"GD\":\"North America\",\"GE\":\"Asia\",\"GF\":\"South America\",\"GG\":\"Europe\",\"GH\":\"Africa\",\"GI\":\"Europe\",\"GL\":\"North America\",\"GM\":\"Africa\",\"GN\":\"Africa\",\"GP\":\"North America\",\"GQ\":\"Africa\",\"GR\":\"Europe\",\"GS\":\"Antarctica\",\"GT\":\"North America\",\"GU\":\"Australia\",\"GW\":\"Africa\",\"GY\":\"South America\",\"HK\":\"Asia\",\"HN\":\"North America\",\"HR\":\"Europe\",\"HT\":\"North America\",\"HU\":\"Europe\",\"ID\":\"Asia\",\"IE\":\"Europe\",\"IL\":\"Asia\",\"IM\":\"Europe\",\"IN\":\"Asia\",\"IO\":\"Asia\",\"IQ\":\"Asia\",\"IR\":\"Asia\",\"IS\":\"Europe\",\"IT\":\"Europe\",\"JE\":\"Europe\",\"JM\":\"North America\",\"JO\":\"Asia\",\"JP\":\"Asia\",\"KE\":\"Africa\",\"KG\":\"Asia\",\"KH\":\"Asia\",\"KI\":\"Australia\",\"KM\":\"Africa\",\"KN\":\"North America\",\"KP\":\"Asia\",\"KR\":\"Asia\",\"KW\":\"Asia\",\"KY\":\"North America\",\"KZ\":\"Asia\",\"LA\":\"Asia\",\"LB\":\"Asia\",\"LC\":\"North America\",\"LI\":\"Europe\",\"LK\":\"Asia\",\"LR\":\"Africa\",\"LS\":\"Africa\",\"LT\":\"Europe\",\"LU\":\"Europe\",\"LV\":\"Europe\",\"LY\":\"Africa\",\"MA\":\"Africa\",\"MC\":\"Europe\",\"MD\":\"Europe\",\"ME\":\"Europe\",\"MG\":\"Africa\",\"MH\":\"Australia\",\"MK\":\"Europe\",\"ML\":\"Africa\",\"MM\":\"Asia\",\"MN\":\"Asia\",\"MO\":\"Asia\",\"MP\":\"Australia\",\"MQ\":\"North America\",\"MR\":\"Africa\",\"MS\":\"North America\",\"MT\":\"Europe\",\"MU\":\"Africa\",\"MV\":\"Asia\",\"MW\":\"Africa\",\"MX\":\"North America\",\"MY\":\"Asia\",\"MZ\":\"Africa\",\"NA\":\"Africa\",\"NC\":\"Australia\",\"NE\":\"Africa\",\"NF\":\"Australia\",\"NG\":\"Africa\",\"NI\":\"North America\",\"NL\":\"Europe\",\"NO\":\"Europe\",\"NP\":\"Asia\",\"NR\":\"Australia\",\"NU\":\"Australia\",\"NZ\":\"Australia\",\"OM\":\"Asia\",\"PA\":\"North America\",\"PE\":\"South America\",\"PF\":\"Australia\",\"PG\":\"Australia\",\"PH\":\"Asia\",\"PK\":\"Asia\",\"PL\":\"Europe\",\"PM\":\"North America\",\"PN\":\"Australia\",\"PR\":\"North America\",\"PS\":\"Asia\",\"PT\":\"Europe\",\"PW\":\"Australia\",\"PY\":\"South America\",\"QA\":\"Asia\",\"RE\":\"Africa\",\"RO\":\"Europe\",\"RS\":\"Europe\",\"RU\":\"Europe\",\"RW\":\"Africa\",\"SA\":\"Asia\",\"SB\":\"Australia\",\"SC\":\"Africa\",\"SD\":\"Africa\",\"SE\":\"Europe\",\"SG\":\"Asia\",\"SH\":\"Africa\",\"SI\":\"Europe\",\"SJ\":\"Europe\",\"SK\":\"Europe\",\"SL\":\"Africa\",\"SM\":\"Europe\",\"SN\":\"Africa\",\"SO\":\"Africa\",\"SR\":\"South America\",\"ST\":\"Africa\",\"SV\":\"North America\",\"SY\":\"Asia\",\"SZ\":\"Africa\",\"TC\":\"North America\",\"TD\":\"Africa\",\"TF\":\"Antarctica\",\"TG\":\"Africa\",\"TH\":\"Asia\",\"TJ\":\"Asia\",\"TK\":\"Australia\",\"TM\":\"Asia\",\"TN\":\"Africa\",\"TO\":\"Australia\",\"TR\":\"Asia\",\"TT\":\"North America\",\"TV\":\"Australia\",\"TW\":\"Asia\",\"TZ\":\"Africa\",\"UA\":\"Europe\",\"UG\":\"Africa\",\"US\":\"North America\",\"UY\":\"South America\",\"UZ\":\"Asia\",\"VC\":\"North America\",\"VE\":\"South America\",\"VG\":\"North America\",\"VI\":\"North America\",\"VN\":\"Asia\",\"VU\":\"Australia\",\"WF\":\"Australia\",\"WS\":\"Australia\",\"YE\":\"Asia\",\"YT\":\"Africa\",\"ZA\":\"Africa\",\"ZM\":\"Africa\",\"ZW\":\"Africa\"}"; 

그리고 Geocoder()에서이있는 사용할 수 있습니다

try { 

    JSONObject jsonObject = new JSONObject(json_str); 


    Geocoder geocoder = new Geocoder(this, Locale.ENGLISH); 

    List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1); 

    if (addresses.size() > 0) { 

     Address fetchedAddress = addresses.get(0); 

     // getCountryCode from Address 
     String countryCode = fetchedAddress.getCountryCode(); 

     // get continentName here 
     String continentName = jsonObject.getString(countryCode); 

    } 

} catch (IOException e) { 
    e.printStackTrace(); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 
관련 문제