赞
踩
关于百度地图上获取屏幕中心点的位置,百度上没有人专门整理信息,遇到了在这里整理一下
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。