如何通过在开放的街道地图中点击它来获取点的坐标?
尝试:
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); }