OpenStreetMap Android中的位置地址

时间:2013-10-19 06:20:24

标签: android openstreetmap

我正在使用dispatchTouchEvent()方法来点按地图。当我点击布局上的任何地方时,它会显示lat&很长,但我希望它只在我点击地图区域时显示。我不知道这段代码有什么问题:

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

以下是布局图片:

1 个答案:

答案 0 :(得分: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;
    }