Holen Sie sich Breitengrad, Länge von Adresse in Android

Ich möchte den Breiten- und Längengrad eines Platzes von einer Adresse bekommen. Ich möchte nicht den Breiten- und Längengrad vom GPS noch das Netzwerk bekommen.

Ich möchte, dass der Benutzer in der Lage sein wird, einen Text zu schreiben, der Adresse des Ortes, den er will (zB sein Büro) und unterhalb des Textfeldes einige Vorschläge gezeigt werden, genau wie wenn Sie die Adresse in der Google Map App eingeben. Dann möchte ich die Koordinaten der angegebenen Adresse abrufen.

Wenn dies nicht möglich ist, gibt es einen Weg, um die Adresse über die Google Maps App selbst zu bekommen. Vielleicht könnte ich die gmaps von meiner app anrufen und der Benutzer wird die Adresse eingeben und die gmaps würden die Koordinaten zurückgeben.

Wie kann ich es tun?

  • Zeichnen Sie Bitmap in Custom ImageView und erhalten Sie die Koordinaten der ImageView unabhängig vom Gerät
  • Wie kann ich Längen- und Breitengrad-Koordinaten herausfinden, um einen 1-Meilen-Radius um den Standort eines Benutzers zu schaffen?
  • Ist es möglich, Echtzeit-Koordinaten von einem ImageView zu bekommen, während es in Translate Animation ist?
  • Positionsänderung ändern
  • Wie bekomme ich den Benutzer Home / Work Ort für einen Benutzer in Android
  • Android Google Maps: Wie bekomme ich den Bereich, der aktuell im Bildschirmgerät angezeigt wird?
  • Wie bekomme ich die gleichen Koordinaten für das Bild für alle Auflösungen in Android?
  • Polygon Touch Erkennung Google Map API V2
  • 4 Solutions collect form web for “Holen Sie sich Breitengrad, Länge von Adresse in Android”

    Die Geocoder API im Android Framework zur Verfügung gestellt

    Ich habe vorher mit der Geocoding API gearbeitet, die in der Android API existiert, aber es funktioniert nicht auf allen Geräten. In der Tat, wie bei meinen und anderen Erfahrungen, werden viele Geräte null zurückgeben, wenn sie die Geocoding API verwenden.

    Aus diesem Grund habe ich mich für den Reverse Geocoder entschieden, der auf allen Geräten perfekt funktioniert, aber aufgrund der HTTP-Anfrage einen zusätzlichen Overhead benötigt.

    Abrufen der Länge und Breite von einer Adresse mit der Reverse Geocoding API

    Um dieses Problem zu vermeiden, ist es einfach, die Reverse Geocoding API zu verwenden, die ein JSON Object zurückgibt.

    Sie können entweder die API verwenden, um eine Adresse über Breiten- und Längengrad zu finden, oder finden Sie Breiten- und Längengrad von einer Adresse:

    http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false

    Kehrt zurück:

    { "results" : [ { "address_components" : [ { "long_name" : "1600", "short_name" : "1600", "types" : [ "street_number" ] }, { "long_name" : "Amphitheatre Pkwy", "short_name" : "Amphitheatre Pkwy", "types" : [ "route" ] }, { "long_name" : "Mountain View", "short_name" : "Mountain View", "types" : [ "locality", "political" ] }, { "long_name" : "Santa Clara", "short_name" : "Santa Clara", "types" : [ "administrative_area_level_2", "political" ] }, { "long_name" : "California", "short_name" : "CA", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "United States", "short_name" : "US", "types" : [ "country", "political" ] }, { "long_name" : "94043", "short_name" : "94043", "types" : [ "postal_code" ] } ], "formatted_address" : "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", "geometry" : { "location" : { "lat" : 37.42291810, "lng" : -122.08542120 }, "location_type" : "ROOFTOP", "viewport" : { "northeast" : { "lat" : 37.42426708029149, "lng" : -122.0840722197085 }, "southwest" : { "lat" : 37.42156911970850, "lng" : -122.0867701802915 } } }, "types" : [ "street_address" ] } ], "status" : "OK" } 

    Es ist hiermit eine einfache Sache, eine HTTP-Anforderung an die Reverse Geocoding API mit einer vom Benutzer eingegebenen Adresse zu senden und danach das JSON-Objekt zu analysieren, um die benötigten Daten zu finden.

    Ein früherer Beitrag beschreibt, wie ein JSON-Objekt aus einer URL analysiert werden kann .

    Hoffe das hilft.

    Sie können die folgende Methode verwenden:

      Geocoder coder = new Geocoder(this); try { ArrayList<Address> adresses = (ArrayList<Address>) coder.getFromLocationName("Your Address", 50); for(Address add : adresses){ if (statement) {//Controls to ensure it is right address such as country etc. double longitude = add.getLongitude(); double latitude = add.getLatitude(); } } } catch (IOException e) { e.printStackTrace(); } 
     /** * @method getLocationFromAddress * @param strAddress Address/Location String * @desc Get searched location points from address and plot/update on map. */ public void getLocationFromAddress(String strAddress) { //Create coder with Activity context - this Geocoder coder = new Geocoder(this); List<Address> address; try { //Get latLng from String address = coder.getFromLocationName(strAddress,5); //check for null if (address == null) { return; } //Lets take first possibility from the all possibilities. Address location=address.get(0); LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); //Put marker on map on that LatLng Marker srchMarker = mMap.addMarker(new MarkerOptions().position(latLng).title("Destination").icon(BitmapDescriptorFactory.fromResource(R.drawable.bb))); //Animate and Zoon on that map location mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng)); mMap.animateCamera(CameraUpdateFactory.zoomTo(15)); } catch (IOException e) { e.printStackTrace(); } } 

    Was Sie brauchen, ist: http://developer.android.com/reference/android/location/Geocoder.html .

    Sie können es so verwenden:

     List<Address> result = new Geocoder(context).getFromLocationName(locationName, maxResults); 

    Sie erhalten eine Liste der Address und Sie können dann getLatitude und getLongitude auf diese Adressen getLongitude .

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.