Android基于百度地图的拖拽定位(地图可以拖动,地位图标不动)
1、要做的效果是:
类似滴滴打车中的效果,即移动地图,marker始终在地图中央。如下图demo所示:
好吧,一不小心就暴露了我所在的城市…
2、我的思路是:
滴滴打车这种形式的就不是marker了。百度地图的marker是跟随着地图的移动而移动的。所以你就不能用marker来实现了。
你可以直接在xml布局上面添加一个居中显示的ImageView,用来显示图标。
然后在通过监听地图状态变化,获取地图中心点坐标来做逻辑处理。
3、简单的代码实现:
百度地图的相关配置,在这里就不说了,默认你已经加载了地图,并且可以正常定位了。至于在xml布局上面添加一个居中显示的ImageView,这就更不用说了吧!嘿嘿,就是这么懒…
其实很简单,我们直接监听地图的状态,在地图状态变化结束之后,获取地图中心点坐标,拿到这个中心坐标之后,就可以通过反地理编码(根据坐标获取地址)获取详细地址等信息。
下面是一个示例代码:
mBaiduMap.setOnMapStatusChangeListener(new OnMapStatusChangeListener() {
//地图状态开始改变。
public void onMapStatusChangeStart(MapStatus status) {
}
//地图状态改变结束
public void onMapStatusChangeFinish(MapStatus status) {
//改变结束之后,获取地图可视范围的中心点坐标
LatLng latLng = status.target
//拿到经纬度之后,就可以反地理编码获取地址信息了
//initGeoCoder(latLng)
}
//地图状态变化中
public void onMapStatusChange(MapStatus status) {
}
});
4、完成
这就算是实现了第一步我们要做的效果了,怎么样?很简单吧!快去动手试试看吧。