2014-01-08 1 views

ответ

4

здесь полный метод расположения. Просто назовите это из любого места. Вы получите текущее местоположение пользователя. с полным адресом улицы, города и страны

также вы можете передавать значения широты и долготы. addresses = gcd.getFromLocation(latitude, longitude, 1);, чтобы получить местоположение любых значений.

public String getUserLocation() { 

    String address = ""; 

    LocationManager locManager = (LocationManager) context 
      .getSystemService(Context.LOCATION_SERVICE); 

    boolean network_enabled = locManager 
      .isProviderEnabled(LocationManager.NETWORK_PROVIDER); 

    Location location; 

    if (network_enabled) { 

     location = locManager 
       .getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 

     if (location != null) { 
      double longitude = location.getLongitude(); 
      double latitude = location.getLatitude(); 

      Log.e("longitude = ", longitude + "lat"); 
      Log.e("latitude = ", latitude + "long"); 

      Geocoder gcd = new Geocoder(context, Locale.getDefault()); 
      List<Address> addresses = null; 
      try { 
       addresses = gcd.getFromLocation(latitude, longitude, 1); 

      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
       return address; 
      } 
      if (addresses.size() > 0) { 

       String addressline = addresses.get(0).getAddressLine(0); 
       String city = addresses.get(0).getAddressLine(1); 
       String country = addresses.get(0).getAddressLine(2); 

       Log.e("Address", addressline + ", " + city + ", " + country); 
       return address = addressline + ", " + city + ", " + country; 
      } 

      return address; 
     } 
    } 

    return address; 

} 

Надеется, что это поможет :)

+1

wah j jawab aa per samjh me na aayo :) –

+0

hal ray hal bishni ..: D – Ali

1

The Geocoder делает это. Тем не менее, он использует Интернет и не так точен, как вам бы хотелось, но он выполняет эту работу.

+0

Я читал другую должность пару часов назад, они сказали, что Geocoder не работают на все устройства. Насколько это верно? – Ramilol

+0

Первый раз, когда я слышу об этом, не работает на всех устройствах. Это часть SDK, не знаю, как это не сработает. Я использовал его один раз и, несмотря на то, что нашел свое «место» в 50/100 м от того места, где я был, я думаю, что в США, возможно, это будет лучше (здесь Европа). Я считаю, что вы можете использовать [API-интерфейс Google] (https://developers.google.com/maps/documentation/directions/), но у меня есть некоторые ограничения, насколько я знаю. Он работает с запросами (следовательно, ограничениями). Он возвращает JSON-проанализированные данные, состоящие из координат (если вам нужно) и поместите имя (по крайней мере, на улицу), но это еще один источник данных о местоположении. –

+0

P.S. Забавно, что вы соглашаетесь с ответом на геокодер через 5 минут после того, как я дал это ... Надеюсь, он работает для вас как минимум. –

1

В поле Адрес объекта у вас есть много интересного:

http://developer.android.com/reference/android/location/Address.html

как getFeatureName() для Exemple.

Чтобы получить адреса из Шир/координат:

Geocoder geoCoder = new Geocoder(getApplicationContext(), Locale.getDefault()); 
List<Address> addresses = gcd.getFromLocation(lat, lng, 1); // the number of result you want, in your case probably just one. 
+0

Просто то, что мне нужно :) Большое спасибо! – Ramilol

+0

Помните об ошибках, которые могут потребовать перезагрузки, чтобы заставить Geocoder работать снова (после того, как он остыл от работы). Я бы использовал веб-сервис google для этого –

Смежные вопросы