2012-03-14 3 views

ответ

64
Geocoder geocoder = new Geocoder(<your context>); 
List<Address> addresses; 
addresses = geocoder.getFromLocationName(<String address>, 1); 
if(addresses.size() > 0) { 
    double latitude= addresses.get(0).getLatitude(); 
    double longitude= addresses.get(0).getLongitude(); 
} 
+1

добро пожаловать! :) – Natali

+0

@Natali so sweet ...... – Satyam

+1

@Satyam Srivastava :) – Natali

10

Вы можете использовать андроид Geocoder делать обратное геокодирование:

Geocoder geocoder = new Geocoder(this, Locale.getDefault()); 
List<Address> addresses = geocoder.getFromLocationName(myLocation, 1); 
Address address = addresses.get(0); 
double longitude = address.getLongitude(); 
double latitude = address.getLatitude(); 

также включает следующее AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET"/> 

Также обратите внимание, что вам нужно с помощью API, который включает в себя Geocoder реализацию , API, которые включают в себя это, например, API Google Google. Вы можете использовать Geocoder.isPresent(), чтобы проверить, существует ли реализация для вашего целевого API.

За дополнительной информацией обращайтесь к Geocoderdocumentation.

+0

спасибо @tyler. –

2
List<Address> addresses; 
addresses = geocoder.getFromLocationName(<String address>, 1); 
if(addresses.size() > 0){ 
double latitude= addresses.get(0).getLatitude(); 
double longitude= addresses.get(0).getLongitude(); 
} 

проявляются разрешения: -

android.permission.INTERNET 
android.permission.ACCESS_COARSE_LOCATION 
android.permission.ACCESS_FINE_LOCATION 
android.permission.ACCESS_MOCK_LOCATION 
+1

Большое вам спасибо –

+1

приветствуется :) – Prachi

2

использовать явные разрешения, как

android.permission.INTERNET 
android.permission.ACCESS_COARSE_LOCATION  
android.permission.ACCESS_FINE_LOCATION 
android.permission.ACCESS_MOCK_LOCATION 

и пойти с этим

Geocoder geocoder = new Geocoder(this, Locale.getDefault()); 
List<Address> addresses = geocoder.getFromLocationName(myLocation, 1); 
Address address = addresses.get(0); 
if(addresses.size() > 0) { 
    double latitude = addresses.get(0).getLatitude(); 
    double longitude = addresses.get(0).getLongitude(); 
} 
+0

Нужно ли нам подключение к Интернету для декодирования точек геометрии? – Santhosh

+2

@SANTHOSH Да, конечно, нет локальной базы данных адресов. – Blacklight

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