Android基于百度地图的拖拽定位(地图可以拖动,地位图标不动)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28779083/article/details/86636546

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、完成

这就算是实现了第一步我们要做的效果了,怎么样?很简单吧!快去动手试试看吧。

5、本人公众号,关注一波,共同交流吧。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_28779083/article/details/86636546