android – 点击地图获取坐标(openstreetmaps)

如何通过在开放的街道地图中点击它来获取点的坐标?

尝试:

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

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...