Как найти местоположение на карте по адресу, который был введен пользователем?
Я хочу найти местоположение на карте при использовании виртуального устройства (эмулятор Android), потому что у меня нет реального устройства. Спасибо за просмотр!
Вот мой код:
enter code herepublic class GoogleMapExample3Activity extends MapActivity {
/** Called when the activity is first created. */
MapView mapView;
TextView txtView;
LinearLayout zoomControl;
GeoPoint geoPoint;
MapController mapController;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView=(MapView) findViewById(R.id.mapView);
zoomControl=(LinearLayout) findViewById(R.id.zoomControl);
View view= mapView.getZoomControls();
zoomControl.addView(view,new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
mapView.displayZoomControls(true);
mapView.setSatellite(true);
String address="New York";
Geocoder geoCoder=new Geocoder(this);
List<Address> list;
try {
list = geoCoder.getFromLocationName(address, 1);
Address a=list.get(0);
Double latitude=a.getLatitude();
Double longitude=a.getLongitude();
geoPoint=new GeoPoint( (int)(latitude*1E6),(int)(longitude*1E6));
mapController=mapView.getController();
mapController.animateTo(geoPoint);
mapController.setZoom(18);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
MapController mapController=mapView.getController();
switch (keyCode) {
case KeyEvent.KEYCODE_I:
mapController.zoomIn();
break;
case KeyEvent.KEYCODE_O:
mapController.zoomOut();
break;
default:
break;
}
return super.onKeyDown(keyCode, event);
}
}
Я пытался, но не могу получить местоположение от адреса, который был введен пользователем! Мне нужна твоя помощь!
2 ответа
How to find a location on Map from a address which was be input by user?
Используя класс Android Geocoder,
Geocoder geoCoder = new Geocoder(this);
List<Address> listAddress;
GeoPoint geoPoint;
try {
listAddress = geoCoder.getFromLocationName(userAddress,1);
if (listAddress == null) {
return null;
}
Address location = listAddress.get(0);
geoPoint = new GeoPoint((int) (location.getLatitude() * 1E6),
(int) (location.getLongitude() * 1E6));
Надеюсь, что это поможет вам