2013-05-22 14 views
11

Próbuję uzyskać szerokość geograficzną & długości geograficznej od adresu, problem polega na tym, że gdy podaję tylko nazwę miasta, to podam prawidłową szerokość geograficzną & długości geograficznej i kiedy podam pełny adres (np. Stan , nazwa miasta, ulica nr) niż nie dać mi prawidłową szerokość geograficzną & ...Uzyskanie szerokości i długości geograficznej od adresu w Androidzie

dzięki za odpowiedzi spółdzielczego ...

mój kod jest ..

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

Czy to powoduje błąd? –

+0

brak błędu, domyślne wartości szerokości i długości geograficznej to 0,0, znacznik umieszczony w oceanie ... –

+0

Jakie są twoje ustawienia getDefault()? –

Odpowiedz

6

i don go ... :)

tylko sekwencja jest błędna ...

najpierw dać ulica od nazwy miasta i stanu niż ... dać mi prawidłową długość i szerokość geograficzną z adresem. . :)

i zmienić

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

do

Geocoder geoCoder = new Geocoder(MapClass.this); 

dziękuję wam wszystkim za poświęcony czas ...

+1

To wciąż pokazuje lokalizację w oceanie .. jak rozwiązać ten problem? – DroidLearner

+0

jak i gdzie podać adres ulicy, a następnie nazwę miasta i stan? – DroidLearner

+0

w moim pytaniu znajduje się {String addressStr = "xxxx twój adres jest tutaj xxxx"} === Twój adres musi być adresem ulicy, a nie miastem, a nie stanem i krajem .. –

1

To jest moje rozwiązanie:

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

Używam go do dodawania znaczników na mapie google. Pozwala na odzyskanie wszystkich informacji dotyczących lokalizacji użytkownika.

Mam nadzieję, że pomogłeś!

+0

dzięki za powtórkę ,, ale dostaję adres od użytkownika, niż chcę umieścić znacznik na tym punkcie ... nie otrzymuję adresu z bieżącej lokalizacji ... –

Powiązane problemy