1

我正在使用 dispatchTouchEvent() 方法来点击地图。当我点击布局上的任何位置时,它会显示纬度和经度,但我希望它仅在我点击地图区域时显示。我不知道这段代码有什么问题:

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    int actionType = ev.getAction();
    switch (actionType) {
    case MotionEvent.ACTION_UP:

        proj = mapView.getProjection();
        loc = (GeoPoint) 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_SHORT);
        toast.show();

    }
    return super.dispatchTouchEvent(ev);
}

这是布局的图像:

4

1 回答 1

1

最后我解决了这个问题。在这里你可以看到他的解决方案。

@Override
    public boolean onSingleTapConfirmed(MotionEvent e, MapView mapView) {

        Projection proj = mapView.getProjection();
        p = (GeoPoint) proj.fromPixels((int) e.getX(), (int) e.getY());
         proj = mapView.getProjection();
         loc = (GeoPoint) proj.fromPixels((int) e.getX(), (int) e.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_SHORT);
         toast.show();
        return true;
    }
于 2013-10-19T07:51:35.953 回答