我无法找到一种方法来返回一个GeoPoint,其中包含用户刚触及的位置的经度和纬度。我已经看过并阅读了通过覆盖dispatchTouchEvent()
来显示吐司的经度和纬度的吨或示例。
我认为这不符合我的理由,原因如下。
我希望用户能够单击一个按钮,然后再调用另一个方法,该方法将在用户下一次点击时返回一个地理位置。因此,简而言之,只有在用户点击按钮后才会在点击上返回地理位置。
我可以使用dispatchTouchEvent()
看到的唯一解决方法如下:
如果已单击该按钮,请写入共享首选项。然后在dispatchTouchEvent()
中检查按钮是否已被点击。如果没有单击,则不执行任何操作。如果已单击,则将经度和纬度写入共享首选项,然后从共享首选项中读取它们,并使用其他方法从中创建GeoPoint。
我觉得这不是一个非常优雅的想法。我觉得应该有一个更清洁的方式这样做(就像某种方式只返回一个地理位置)
我希望这有点意义。我会尽力回答任何问题。
提前致谢。
答案 0 :(得分:3)
我刚读了你问题的标题。如果错误的回答那么请原谅我......:D
mapView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
GeoPoint p = null;
if (event.getAction() == MotionEvent.ACTION_UP) {
p = mapView.getProjection().fromPixels((int) event.getX(),
(int) event.getY());
mapBackButton.setText(p.getLatitudeE6() / 1E6 + ","
+ p.getLongitudeE6() / 1E6 + "Action is : "
+ event.getAction());
return true;
Toast.makeText(
getBaseContext(),
p.getLatitudeE6() / 1E6 + "," + p.getLongitudeE6()
/ 1E6 + "Action is : " + event.getAction(),
Toast.LENGTH_SHORT).show();
}
return false;
}
});