如何通过在开放的街道地图中点击它来获取点的坐标?
尝试:
public void onClick(View v) {
Projection proj = mapView.getProjection();
IGeoPoint p = proj.fromPixels(v.getX(),v.getY());
System.out.println("x: "+ v.getX() + " y: "+ v.getY());
}
干杯,
Thanasio
解决方法
使用dispatchTouchEvent()方法.它的工作原理是因为MapActivity继承了dispatchTouch事件,而不是Activity类的OnTouchEvent.
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
int actionType = ev.getAction();
switch (actionType) {
case MotionEvent.ACTION_UP:
Projection proj = mapView.getProjection();
GeoPoint loc = proj.fromPixels((int)ev.getX(),(int)ev.getY());
String longitude = Double.toString(((double)loc.getLongitudeE6())/1000000);
String latitude = Double.toString(((double)loc.getLatitudeE6())/1000000);
Toast toast = Toast.makeText(getApplicationContext(),"Longitude: "+ longitude +" Latitude: "+ latitude,Toast.LENGTH_LONG);
toast.show();
}
return super.dispatchTouchEvent(ev);
}