wake-up-neo.com

Holen Sie sich die aktuelle Adresse für die Android-App

Ich muss keine Karte anzeigen. Ich muss jedoch das gps/3g-Netzwerk verwenden, um meine aktuellen Positionen zu finden. ADRESSE (nicht long und lat). Diese wird dann zu einer automatisierten SMS-Antwort hinzugefügt, um eine Person darüber zu informieren, dass ich derzeit nicht antworten kann Mein aktueller Standort. Ich habe die SMS-Funktion, ich muss nur eine Methode finden, um auf das GPS zuzugreifen und eine Adresse zu ziehen. Ich habe Beispielcode für lat/long gesehen. Vielleicht muss ich lat/long in eine Adresse innerhalb der Google Maps API konvertieren? Ich bin nicht sicher, wie ich das machen soll. Irgendwelche Ratschläge/Code-Schnipsel/ähnliche Tutorials sind willkommen! Vielen Dank. :)

17
GrumP

Dazu gibt es zwei Schritte:

  1. Ermitteln Sie den aktuellen Standort - Breitengrad und Längengrad, GPS, Netzwerk, zuletzt bekannten Standort usw. Die Android Standortdokumentation enthält Beispielcode.

  2. Verwenden Sie die Android Geocoder-Klasse , um eine Suche anzufordern, um die Lat/Long-Adresse in eine Adresse zu konvertieren (aus der Sie leicht Stadt, Land, Straße usw. extrahieren können). Insbesondere müssen Sie die getFromLocation () -Methode verwenden

Hinweis:

  • Die Methode getFromLocation () gibt ein SET von Übereinstimmungen zurück. In einigen Szenarien können Sie dem Benutzer ein Set anzeigen (z. B. 5) und die Auswahl des besten auswählen lassen. Alternativ können Sie auch das erste Set verwenden, vorausgesetzt, es ist das Beste.
  • Denken Sie daran, dass diese beiden Anrufe Zeit benötigen. Es kann eine Weile dauern, bis das GPS/Netzwerk einen Standort hat. Ebenso kann der Aufruf von getFromLocation () einige Zeit in Anspruch nehmen, da er über das Netzwerk an das Google Maps-API übermittelt wird. Daher ist es wichtig, dass Sie eine umfassende Fehlerbehandlung für die verschiedenen Szenarien verwenden UND beide Aufrufe in einen separaten Thread verschoben werden, damit Sie die App-Benutzeroberfläche nicht blockieren (siehe AsyncTask).
  • Das Backend der Geocoder-Klasse ist nur auf von Google genehmigten Geräten vorhanden. Die Suche schlägt daher grundsätzlich auf jedem Gerät fehl, auf dem GMail/Market/Maps nicht vorhanden ist.
25
Ollie C

Die Antwort ist hier: http://developer.Android.com/reference/Android/location/Geocoder.html

Sie müssen ein Geocoder-Objekt erstellen und getFromLocation(double latitude, double longitude, int maxResults) aufrufen.

Geocoder gCoder = new Geocoder(myContext);
ArrayList<Address> addresses = gCoder.getFromLocation(123456789, 123456789, 1);
if (addresses != null && addresses.size() > 0) {
    Toast.makeText(myContext, "country: " + addresses.get(0).getCountryName(), Toast.LENGTH_LONG).show();
}
14
WarrenFaith

Wie Sie wissen, um die Standortadresse zu erhalten, können Sie google GeoCoder verwenden. 

außerdem können Sie Standortadressen abrufen, indem Sie Längen- und Breitengrad angeben. Sie können diese API verwenden. Dies ist zuverlässiger und schneller als Google Geocoder.Hier füge ich den Link und ein kleines Beispiel hinzu ...

API-URL - 

https://maps.googleapis.com/maps/api/geocode/json?latlng=

sie können den Breiten- und Längengrad neben dem Gleichheitszeichen an der URL verketten.

beispiel -

lat = 6,123456

lng = 79,123456

String-URL = 

" https://maps.googleapis.com/maps/api/geocode/json?latlng=lat+ ", "+ lng";

dies wird return a Nice jsonObject und Sie können damit spielen, probieren Sie es einfach aus. Versuchen Sie momentan, diese API für meine Standortdienste zu verwenden Die Json-Antwort kannst du volley oder irgendetwas benutzen. Glückliche Kodierung.

0
Ashana.Jackol