關於百度地圖獲取中心點座標

關於百度地圖上獲取屏幕中心點的位置,百度上沒有人專門整理信息,遇到了在這裏整理一下

BaiduMap.setOnMapStatusChangeListener(changeListener);

BaiduMap設置他的狀態改變的監聽,監聽中有個onMapStatusChangeFinish方法,在這裏,地圖拖動完成時進行回調,然後進行操作。代碼如下

private OnMapStatusChangeListener changeListener=new OnMapStatusChangeListener() {

        @Override
        public void onMapStatusChangeStart(MapStatus arg0) {}
        @Override
        public void onMapStatusChange(MapStatus arg0) {}
        @Override
        public void onMapStatusChangeFinish(MapStatus arg0) {
            //此處進行操作
        }

核心代碼是下面這句

LatLng latLng=mBaiduMap.getProjection().fromScreenLocation(p);

其中的p是屏幕上的一個點,也就是android.graphics.Point下的Point,導包的時候不要弄錯了,我這裏設置了地圖的中心點。代碼如下

int[] location = new int[2];  
            mMapView.getLocationOnScreen(location);  
            Point p=new Point(location[0]+mMapView.getWidth()/2, location[1]+mMapView.getHeight()/2);
            //TODO 已經獲取到屏幕中心經緯度,可上傳或者地理轉碼
            LatLng latLng=mBaiduMap.getProjection().fromScreenLocation(p);

總體放一下代碼

1、監聽變量

private OnMapStatusChangeListener changeListener=new OnMapStatusChangeListener() {

        @Override
        public void onMapStatusChangeStart(MapStatus arg0) {}
        @Override
        public void onMapStatusChange(MapStatus arg0) {}
        @Override
        public void onMapStatusChangeFinish(MapStatus arg0) {
            int[] location = new int[2];  
            mMapView.getLocationOnScreen(location);  
            Point p=new Point(location[0]+mMapView.getWidth()/2, location[1]+mMapView.getHeight()/2);
            //TODO 已經獲取到屏幕中心經緯度,可上傳或者地理轉碼
            LatLng latLng=mBaiduMap.getProjection().fromScreenLocation(p);
            Log.i("location",latLng.toString());
        }


    };

2、設置監聽

mBaiduMap.setOnMapStatusChangeListener(changeListener);

3、Over

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章