最近使用百度地图,遇到一些需要留意的点,记录备忘。注意:网络上流传的一部分方法已经不可以使用了。


-2018年3月29日-


1.关于百度地图的AK


    每换一台电脑,AK都将不能使用,需要重新申请的;


    可以用一台电脑申请多个AK,不要过于频繁申请或删除,若被判为异常,可以过两天再申请;


2.要弄懂以下的关系


    MapStatusUpdateFactory类中有newLatLng(LatLng latLng)、newLatLngBounds(LatLngBounds bounds)、 zoomIn()等方法。从MapStatusUpdateFactory工厂类中获取的zoomIn()等上述方法都是MapStatusUpdate类型的。再调用更新。


3.缩放级别


    mapView.getMapLevel()获取的数据是比例尺,不是缩放级别。实测可获得的级别是3-22,使用前需要测试一下。


    获取到缩放级别:baiduMap.getMapStatus.zoom()获取到float类型的级别。(此方法亦可以获取多个其他参数)


4.地图状态变化监听


    自定义一个监听,实现OnMapStatusChangeListener,重写相关方法


5.百度地图SDK定位监听


  要自定义监听类,接口已经过期作废。


    若实现BDLocationListener接口,则在LocationClient.registerLocationListener()的方法中,显示该方法过期或更改build路径的错误提示(configurebuild path…),不要再使用该方法。


    通过重写继承自BDAbstractLocationListener的自定义监听类,可以实现定位的监听。 


    然后在初始化时注册即可:LocationClient.registerLocationListener(listener)。


6.百度定位的返回对象


 若要获取定位地址等文字信息,要用LocationClientOption对象设置setIsNeedAddress(true),不设置是获取不到的;电脑上的模拟器可能无法实现定位功能,可用真机测试;若定位不成功,是无法获取返回值中的文字信息,只要返回对象可获得经纬度,那么相应的也就有文字信息等内容。另外,导入的地图jar包和.so文件的版本不同也会影响定位的。


7.电脑模拟器无法定位


    Android Studio自带的模拟器无法定位(不知道什么原因);转用逍遥模拟器时,要先模拟一下当前的位置,然后就可以使用定位功能了。