2011-01-13 3 views
4

Ich habe versucht, die Adresse eines bestimmten Ortes durch Angabe von statischen Geokordinaten zu bekommen. Ich konnte die Adresse nicht abrufen. Kann mir bitte jemand helfen. Ich muss nur überprüfen, ob diese Funktion für mich funktioniert.Get Adresse mit Geocoder in Android

Hier ist mein Ausschnitt.

Geocoder geocoder = new Geocoder(AddressSimulator.this, Locale.getDefault()); 
     List<Address> addresses = geocoder.getFromLocation(1.352566007, 103.78921587, 1); 
     System.out.println("Addresses size"+addresses.size()); 

Adressgröße wird als Null erhalten. Ich habe es mit einigen anderen Geokordinaten auch versucht, aber Adressgröße wird immer als 0 zurückgegeben. Experten, bitte helfen Sie mir, dies zu lösen.

Wir freuen uns für Ihre wertvolle Hilfe/Anregungen,

Mit besten Grüßen, Rony

+0

einfach auf eine etwas andere Note, sind Sie eine Ausnahme wie "Service nicht verfügbar" bekommen ?? –

+0

Nun Rony der Lat, lange hast du benutzt, ist irgendwo in der Wildnis in Frankreich. Versuchen Sie es erneut mit Seattle oder etwas – Reno

Antwort

3

Versuchen Sie, die ein von Google oder von rpc Geocoder. Für Google Maps müssen Sie einen Schlüssel von Google bekommen.

für Geocoder antworten sie für nur eine Anfrage alle 15 Sekunden von der gleichen IP.

string geocoderUri = String.Format("http://maps.google.com/maps/geo?q={0},{1},{2}&output=csv" 
       + "&key= < Your Key > ", street, city, state); 

oder

string geocoderUri = string.Format("http://rpc.geocoder.us/service/rest?address={0},{1},{2}", street, city, state); 
+0

Hallo Franklins, danke für die Antwort ... aber wie bekomme ich Straße, Stadt, Staat, wenn ich nur Breite und Länge habe? – user264953

+0

Dies kann helfen: https://developers.google.com/maps/documentation/geocoding/#ReverseGeocoding Generell wird das, was Sie versuchen, als umgekehrtes Geocoding bezeichnet, sodass Sie nach Hilfe suchen können. –

+0

was sind Straße, Stadt und Staat hier. Ich behielt sie als String, aber sie akzeptieren nicht – sarabu

1

Stellen Sie sicher, dass die Internet-Sicherheitsberechtigungen in AndroidManifest.xml gesetzt haben. Sie benötigen die INTERNET-Berechtigung, um die Suche durchzuführen. Ich weiß, dass Sie eine statische lat, lange Nachschlagen tun, aber wenn Sie tun wollen, lat und lange von GPS, müssen Sie auch die ACCESS_FINE_LOCATION Erlaubnis hinzufügen, um das GPS zu aktivieren.

2

Versuchen Sie diese. Es wird Ihnen die Straße, die Gegend, den Namen des Landes geben. Siehe auch dieses Dokument; Hier finden Sie weitere Methoden.

http://developer.android.com/reference/android/location/Address.html

try { 

      Geocoder geo = new Geocoder(this.getApplicationContext(), Locale.getDefault()); 
      List<Address> addresses = geo.getFromLocation(latitude, longitude, 1); 
      if (addresses.isEmpty()) { 
       addres.setText("Waiting for Location"); 
      } 
      else { 
       if (addresses.size() > 0) { 
        addres.setText(addresses.get(0).getFeatureName() + ", " + addresses.get(0).getLocality() +", " + addresses.get(0).getAdminArea() + ", " + addresses.get(0).getCountryName()); 
        //Toast.makeText(getApplicationContext(), "Address:- " + addresses.get(0).getFeatureName() + addresses.get(0).getAdminArea() + addresses.get(0).getLocality(), Toast.LENGTH_LONG).show(); 
       } 
      } 
     } 
     catch (Exception e) { 
      e.printStackTrace(); // getFromLocation() may sometimes fail 
     } 

Hope this helfen ....

+0

Dies funktioniert nicht, wenn er 0 Adressen erhält. –

+0

Ja, deshalb stelle ich den Text auf Warten auf Standort ... ein. – Scorpion

+0

Er verwendet statische Koordinaten und wartet nicht auf Standortaktualisierungen. Ich kenne sein Problem, weil ich es auch habe. Kann einfach keine Adresse bekommen. Niemand hat versprochen, dass jede Adresse eine Adresse zurückgibt, ich vermute, das ist das Problem in meinem Fall, vielleicht auch in seinem. –