在用户触摸MapView Android上返回地质点

在用户触摸MapView Android上返回地质点,android,android-mapview,Android,Android Mapview,我很难找到一种方法返回一个带有用户刚刚接触的位置经纬度的地理点。我已经看到并阅读了大量的例子,它们通过覆盖dispatchTouchEvent()在toast中显示经度和纬度。 我相信这对我的案子不起作用,原因如下 我希望用户能够单击一个按钮,然后调用另一个方法,在用户下一次点击时返回一个地质点。因此,简而言之,只有在用户单击按钮后,才在点击时返回地质点 使用dispatchTouchEvent()我能看到的唯一解决方法如下 如果已单击该按钮,则写入共享首选项。然后在dispatchTouchE

我很难找到一种方法返回一个带有用户刚刚接触的位置经纬度的地理点。我已经看到并阅读了大量的例子,它们通过覆盖
dispatchTouchEvent()
在toast中显示经度和纬度。 我相信这对我的案子不起作用,原因如下

我希望用户能够单击一个按钮,然后调用另一个方法,在用户下一次点击时返回一个地质点。因此,简而言之,只有在用户单击按钮后,才在点击时返回地质点

使用
dispatchTouchEvent()
我能看到的唯一解决方法如下

如果已单击该按钮,则写入共享首选项。然后在
dispatchTouchEvent()
中检查按钮是否已单击。如果尚未单击,则不执行任何操作。如果已单击,请将经度和纬度写入共享首选项,然后从共享首选项中读取它们,并使用其他方法从中创建一个地质点

我觉得这不是一个很优雅的主意。我觉得应该有一种更干净的方法来实现这一点(比如以某种方式返回一个地质点)

我希望这有点道理。我会尽力回答任何我能回答的问题


提前谢谢。

我刚读了你问题的标题。所以如果回答错了,请原谅

    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;
        }
    });

你看到了吗?这看起来很有希望,不幸的是,我今晚没有时间实施它。我会让你知道明天会发生什么!谢谢你的回答,但我正在尝试找出一种方法来实际返回GeoPoint,而不是仅仅展示祝酒词。我有一个类似于你的方法,只是想找到一个更优雅的方法。如果你想知道我到底想做什么的更多信息,请阅读我的帖子。p.getLatitudeE6()/1E6和p.GetLongtudee6()/1E6实际上是地质点。。。你可以在任何地方使用它们。