2013-05-22 15 views
11

sto cercando di ottenere latitudine & longitudine dall'indirizzo, il problema è che .. quando do solo il nome della città che mi dà la latitudine corretta & longitudine e quando do l'indirizzo completo (come stato , nome della città, strada n °) di quanto non mi danno corretta latitudine & longitudine ...Ottenere latitudine e longitudine dall'indirizzo in android

grazie per la tua risposta cooperativa ...

il mio codice è ..

//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

È qualche errore? –

+0

nessun errore, i valori predefiniti di latitudine e longitudine sono 0,0, indicatore inserito nell'oceano ... –

+0

Quale locale è il tuo getDefault()? –

risposta

6

i don it ... :)

unica sequenza non è corretta ...

primo indirizzo dare che il nome della città e di stato ... mi danno corretta latitudine e longitudine da indirizzo. . :)

e cambiare

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

a

Geocoder geoCoder = new Geocoder(MapClass.this); 

grazie, tutti voi per il vostro tempo ...

+1

La sua posizione mostra ancora nell'oceano .. come risolvere questo? – DroidLearner

+0

come e dove fornire l'indirizzo, il nome e lo stato della città? – DroidLearner

+0

nella mia domanda c'è {String addressStr = "xxxx il tuo indirizzo è qui xxxx"} === il tuo indirizzo deve essere l'indirizzo e la città e di stato e di paese .. –

1

Questa è la mia soluzione:

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()); 
} 

Io lo uso per aggiungere un indicatore su google map. Ti permette di recuperare tutte le informazioni riguardanti la posizione dell'utente.

Spero che tu abbia aiutato!

+0

grazie per il replay ,, ma sto ricevendo l'indirizzo dell'utente, che voglio mettere il marcatore su quel punto ... non ottenere l'indirizzo dalla posizione corrente ... –

Problemi correlati