2010-12-18 15 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. 

przykład: podwójne lat = 17; double lon = 78,49;jak znaleźć kontynent w określonej lokalizacji za pomocą Geokodera w aplikacji na Androida

Lista adresów = nowy Geocoder (Shout.this, Locale.getDefault()). GetFromLocation (lat, lon, 1);

Używam tego kodu wyjściowego jest Indie, Hyderabad ten adres, jak znaleźć kontynent, proszę mi pomóc cenne rozwiązanie.

otrzymuję nazwę kraju dynamicznie przy użyciu geocoder jest ich jakaś szansa, aby w imieniu kontynent wraz z country.it jest trudne do utrzymania statycznie i dynamicznie potrzeba żadnych bezpłatnych usług znaleźć usługi oparte kontynent

z góry dzięki

Odpowiedz

2

Nie sądzę, że takie informacje są podawane przez API Google. Jedyne rozwiązanie, jakie mogę wymyślić, to posiadanie jakiejś statycznej struktury danych mapujących nazwy krajów na nazwy kontynentalne (które prawdopodobnie musielibyście znaleźć w jakiś sposób, na przykład przez zeskanowanie strony internetowej this ...). Następnie możesz wyszukać tekst ciągiem, który daje GeoCoder i zwrócić kontynent odpowiadający najbliższej pasującej nazwie kraju (który byłby kluczem w twoim odwzorowaniu String). (Będziesz musiał również potraktować specjalny przypadek adresów amerykańskich, które denerwująco kończą się po prostu kodem stanu)

+0

Trzeba by upewnić się, że geocoder w kodzie został poproszony o zwrot adresu tylko w języku, w którym skonfigurowano twój HashMap, w przeciwnym razie będziesz mieć problemy ... Być może będziesz musiał umiędzynarodowić nazwy Kontynentu, chyba że jesteś tylko cateringiem dla użytkowników o f jeden język. –

+0

już otrzymuję nazwę kraju dynamicznie za pomocą geokodera jest ich szansa na uzyskanie nazwy kontynentu wraz z country.it jest trudny do utrzymania statycznie i potrzebuję dynamicznie – Narasimha

+0

Tak, rozumiem, próbowałem zasugerować sposób, aby wziąć nazwę kraju, że otrzymujesz i używasz tego paskudnego pomysłu na mapę, aby przekształcić go w nazwę kontynentu. Jeśli nie ma wbudowanego sposobu, aby to zrobić, niestety nie mogę wymyślić lepszego sposobu w tej chwili. –

1

Ponieważ mamy ograniczoną liczbę kontynentów, dobrze jest użyć statycznej listy danych.

Możemy użyć poniżej json_str (znaleziono here), które mają 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\"}"; 

iz Geocoder() możemy uzyskać CountryCode jak poniżej:

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(); 
} 
Powiązane problemy