#android
#Android
Вопрос:
В моем приложении я пытаюсь получить координаты центра карты, когда пользователь прокручивает карту.
Я хочу получить координаты и установить их в текстовом представлении.
Вот мой код для этого:
public boolean onTouchEvent(MotionEvent event) {
int action=event.getAction();
projection=mapView.getProjection();
int X = (int)event.getX();
int Y = (int)event.getY();
if(action==MotionEvent.ACTION_MOVE)
{
metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
GeoPoint G = projection.fromPixels(metrics.heightPixels/2, metrics.widthPixels/2);
//GeoPoint p= mapView.getMapCenter();
int lati=p.getLatitudeE6();
Log.i("Lat : ","" lati);
Toast.makeText(this,"" lati,Toast.LENGTH_LONG);
int longi=p.getLongitudeE6();
Log.i("Lon : ","" longi);
Toast.makeText(this,"" longi,Toast.LENGTH_LONG);
lat.setText("" lati);
lon.setText("" longi);
}
return true;
}
Комментарии:
1. Можете ли вы объяснить, что не работает?
Ответ №1:
Воспользуйтесь этой статьей:
http://mobiforge.com/developing/story/using-google-maps-android
Это ответит на все ваши вопросы об использовании mapview. (в основном на все). Плюс для ваших конкретных нужд:
найдите на странице «Получение местоположения, к которому было применено прикосновение«.
Комментарии:
1. вы узнали, как это сделать? Я пытаюсь добиться того же самого. Спасибо
2. @Thiago На вопрос уже был добавлен ответ. Аналогично тому, что я использую: projection=MapView.getProjection(); GeoPoint coordinatesOfMapCenter = проекция. Из пикселей (MapView.getWidth()/2, MapView.getHeight()/2);
Ответ №2:
OP включил правильный ответ в свой вопрос. Вот как это сделать:
GeoPoint mapCenter = mapView.getProjection().fromPixels(
mapView.getWidth()/2,
mapView.getHeight()/2);
int lat = mapCenter.getLatitudeE6();
int lon = mapCenter.getLongitudeE6();
Ответ №3:
API немного обновлен. Вот актуальная версия:
val mapViewCenter = Point(
googleMapView.width / 2,
googleMapView.height / 2
)
val mapCenter: LatLng = googleMap.projection.fromScreenLocation(mapViewCenter)