关于最新百度地图sdk如何使覆盖物固定在屏幕中心
最近为了完成课程设计,接触了百度地图API,我现在用的版本是Android地图sdk v3.3.0,也是目前的最新发布了,相对于之前的版本还是有挺大的改进
先说说需求:我是想将覆盖物固定在MapView中央,当我们拖拽地图的时候,覆盖物不动,获取覆盖物指向的地理坐标
微信的发送位置功能,它也是有一个覆盖物一直固定在屏幕的中心,我估计腾讯的做法和我的差不多,步骤如下:
1、首先,在布局文件中,把覆盖物以一个普通的Android 中的组件添加到MapView组件的中央(我这里选择ImageView),也就是覆盖在MapView的中央位置,代码如下:
这样,覆盖物和我们的地图就Mark和地图那样的关系,不管我们怎么拖拽地图,覆盖物(ImageView里面的图片)都不会移动
2、我们希望通过覆盖物获取覆盖物指示的地理坐标,也就是经纬度
I 我们定位的时候,百度地图默认把我们的位置放置到MapView中央,此时,定位坐标将会和我们上面布局的覆盖物重叠,这本来就是我们想要的
II 百度地图SDK(Android)中有Projection类,它有函数如下
其中有函数是将【地理坐标转换成屏幕坐标】,我们可以通过这个函数经定位获取的地理坐标转换成屏幕坐标(因为此时的定位地理坐标和MapView中心坐标重合)
所以当我们希望随时获取覆盖物指示的地理坐标是,可以通过函数【将屏幕坐标转换成地理坐标】
很简单,但是不清楚的情况下真的很难,要认真通过查找API寻找答案。