首先这个实例只能用在4.0以上版本
你想点击任意一点获得坐标不能用onTouchEvent,而只能用dispatchTouchEvent 因为“MapActivity 继承了 the dispatchTouch Event 而不是OnTouchEvent ”
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
int actionType = ev.getAction();
switch (actionType) {
case MotionEvent.ACTION_UP:
if(!premik) {
Projection proj = mapView.getProjection();
GeoPoint loc = proj.fromPixels((int)arg0.getX(), (int)arg0.getY());
String sirina=Double.toString(loc.getLongitudeE6()/1000000);
String dolzina=Double.toString(loc.getLatitudeE6()/1000000);
Toast toast = Toast.makeText(getApplicationContext(), "Širina: "+sirina+" Dolzina: "+dolzina, Toast.LENGTH_LONG);
toast.show();
}
}
return super.dispatchTouchEvent
本文介绍如何在Android应用中使用dispatchTouchEvent方法而非onTouchEvent来获取地图上任意点击位置的经纬度坐标。具体实现涉及MapActivity的dispatchTouchEvent重写,并通过MapView的getProjection方法转换像素坐标为地理坐标。
2197

被折叠的 条评论
为什么被折叠?



