2013-05-22 5 views
11

Ich bin versuchen, Breitengrad & Länge von Adresse zu bekommen, Problem ist, dass .. wenn ich nur Stadt Name geben als geben Sie mir richtigen Breitengrad & Länge und wenn ich vollständige Adresse (wie Zustand , Ortsname, Straße No.), als es mir nicht richtig Breite & Länge ...Breiten- und Längengrad von Adresse in Android

dank für Ihre kooperative Antwort geben ...

mein Code ..

//String addressStr = "faisalabad";/// this give me correct address 
     String addressStr = "Sainta Augustine,FL,4405 Avenue A"; 
      Geocoder geoCoder = new Geocoder(MapClass.this, Locale.getDefault()); 

      try { 
       List<Address> addresses = 
      geoCoder.getFromLocationName(addressStr, 1); 
       if (addresses.size() > 0) { 
       latitude = addresses.get(0).getLatitude(); longtitude = 
      addresses.get(0).getLongitude(); } 

      } catch (IOException e) { // TODO Auto-generated catch block 
      e.printStackTrace(); } 


     pos = new LatLng(latitude, longtitude); 
     googleMap.addMarker(new MarkerOptions().icon(
       BitmapDescriptorFactory 
         .defaultMarker(BitmapDescriptorFactory.HUE_RED)) 
       .position(pos)); 
     googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(pos, 15)); 
     googleMap.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null); 
+0

Ist es ein Fehler? –

+0

kein Fehler, Standardwerte für Breiten- und Längengrad sind 0.0, Marker in Ozean ... –

+0

Welches Gebietsschema ist Ihr getDefault()? –

Antwort

6

ich es don ... :)

nur Folge falsch ist ...

erste give Adresse als Name der Stadt und als Staat ... es gibt mir richtige Breite und Länge von Adresse. . :)

und

Geocoder geoCoder = new Geocoder(MapClass.this, Locale.getDefault()); 

zu

Geocoder geoCoder = new Geocoder(MapClass.this); 
01 ändern

danke, alle von Ihnen für Ihre Zeit ...

+1

Sein immer noch Standort im Ozean .. wie man das lösen? – DroidLearner

+0

Wie und wo geben Sie die Adresse der Straße an, dann den Namen und den Stand der Stadt? – DroidLearner

+0

in meiner Frage gibt es {String addressStr = "xxxx Ihre Adresse ist hier xxxx"} === Ihre Adresse muss Straße Adresse sein und dann Stadt und dann Zustand und als Land .. –

1

Das ist meine Lösung:

private void createMarkerWithLocation() { 
    /* Use the LocationManager class to obtain GPS locations */ 
    LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
    mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 300000, 40, this); 

    Location location = mlocManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
    /*check both providers even for lastKnownLocation*/ 
    if (location == null) 
     location = mlocManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
    if(location != null) { 

     double latitude = location.getLatitude(); 
     double longitude = location.getLongitude(); 

     LatLng currentLatLng = new LatLng(latitude, longitude); 

     if(isConnected(this)) { 
      Geocoder gCoder = new Geocoder(ChoiceDestinationActivity.this); 
      List<Address> addresses = gCoder.getFromLocation(latitude, longitude, 1); 
      String address = addresses.get(0).getAddressLine(0); 
      String city = addresses.get(0).getAddressLine(1); 
      String country = addresses.get(0).getAddressLine(2); 
      Toast.makeText(this, country + ", " + city + ", " + address, Toast.LENGTH_SHORT).show(); 

      marker = map.addMarker(new MarkerOptions() 
      .position(currentLatLng) 
      .title(city) 
      .snippet(address) 
      .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker))); 
     } 
    } 
} 

public static boolean isConnected(Context context) { 
    NetworkInfo ni = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); 
    return (ni!=null && ni.isAvailable() && ni.isConnected()); 
} 

Ich verwende es, um eine Markierung auf Google-Karte hinzuzufügen. Es ermöglicht Ihnen, alle Informationen zum Standort des Benutzers abzurufen.

Ich hoffe, Sie haben geholfen!

+0

danke für die Wiederholung, aber ich bekomme die Adresse vom Benutzer, als ich möchte Marker auf diesen Punkt setzen ... nicht bekommen Adresse vom aktuellen Standort ... –