在Android Mapview中获取地图的中心坐标

时间:2011-05-18 11:07:39

标签: android

在我的应用程序中,当用户在地图上滚动时,我正试图获取地图的中心坐标。

我想得到坐标并在文本视图中设置它。

这是我的代码:

public boolean onTouchEvent(MotionEvent event) {
        int action=event.getAction();
        projection=mapView.getProjection();
        int X = (int)event.getX();          
        int Y = (int)event.getY();
        if(action==MotionEvent.ACTION_MOVE)
        {


            metrics = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(metrics);

            GeoPoint G = projection.fromPixels(metrics.heightPixels/2, metrics.widthPixels/2);
        //GeoPoint p=   mapView.getMapCenter();
            int lati=p.getLatitudeE6();
            Log.i("Lat : ",""+lati);
            Toast.makeText(this,""+lati,Toast.LENGTH_LONG);

            int longi=p.getLongitudeE6();
            Log.i("Lon : ",""+longi);
            Toast.makeText(this,""+longi,Toast.LENGTH_LONG);
            lat.setText(""+lati);
            lon.setText(""+longi);
        }
        return true;
    }

3 个答案:

答案 0 :(得分:4)

使用这篇文章:

http://mobiforge.com/developing/story/using-google-maps-android

它将回答您关于使用mapview的所有问题。(主要是全部)。另外,根据您的特殊需求:

在页面上搜索“获取被触摸的位置”。

答案 1 :(得分:2)

OP在他的问题中包含了正确的答案。这是怎么做的:

GeoPoint mapCenter = mapView.getProjection().fromPixels(
        mapView.getWidth()/2,
        mapView.getHeight()/2);

int lat = mapCenter.getLatitudeE6();
int lon = mapCenter.getLongitudeE6();

答案 2 :(得分:0)

API稍有更新。这是实际版本:

val mapViewCenter = Point(
    googleMapView.width / 2,
    googleMapView.height / 2
)
val mapCenter: LatLng = googleMap.projection.fromScreenLocation(mapViewCenter)