(10.14更新)关于高德地图安卓SDK的一些使用细节坑(包括Marker与缩放地图)
2017-10-12 20:29
417 查看
高德的SDK相对百度来说,接口更多,国内使用的范围也更大。但个人感觉其开发文档很多地方说的不够详细,甚至是错误的,不方便大家进行开发,只能靠社区来自救。
这里列举几个地方。
在对AMap对象进行一些操作的时候,如设置监听器等,回调函数中有marker参数,在做和现有marker做比较的时候,要用
marker上设置了按下监听器以及弹出infoWindow的时候,需要在监听器内写入
这个和Marker无关,但也是官方文档没说清楚的地方,开发包的权限需要多添加一个
不然就是不停地报
(这个有可能是版本导致的问题,我的最低版本为5.1,地图依赖包为3D地图V5.40)
被设计用来控制缩放的接口函数是
然后调用
如果还是没有效果,检查下自己的地图
这里列举几个地方。
在对AMap对象进行一些操作的时候,如设置监听器等,回调函数中有marker参数,在做和现有marker做比较的时候,要用
equals()(不能直接对两个引用进行比较,内部已经复写了
equals())。
marker上设置了按下监听器以及弹出infoWindow的时候,需要在监听器内写入
showInfoWindow(),并且完成title的设置,不然会导致监听后弹不出窗口(估计默认下就是通过默认监听器来操作的,创建了新监听器后,原弹出逻辑被复写掉了)。
这个和Marker无关,但也是官方文档没说清楚的地方,开发包的权限需要多添加一个
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
不然就是不停地报
java.lang.SecurityException: WifiService: Neither user ......
(这个有可能是版本导致的问题,我的最低版本为5.1,地图依赖包为3D地图V5.40)
被设计用来控制缩放的接口函数是
CameraUpdateFactory.zoomTo(),传入的参数是3-19的缩放等级。但是这个API在3D地图下不稳定,有时候行有时候不行的。个人给出的解决方案是,为mLocationClient设置一个LocationListener(通过
new AMapLocationClient(activity.getApplicationContext())来获得Client)。在这个监听器内获得当前的坐标
aMapLocation.getLatitude(),
aMapLocation.getLongtitude(),
然后调用
aMap.moveCamera(CameraUpdateFactory.newCameraPosition(new CameraPosition(new LatLng(lATITUDE, lONGTITUDE), 17, 0, 0)));进行镜头定位与缩放。然后在外部做一个第一次监听才移动镜头的逻辑。(很不优雅,但是有效)。
如果还是没有效果,检查下自己的地图
myLocationStyle.myLocationType()设置是否使用了自带的视角移动行为,因为是异步操作,有可能会导致自己缩放完毕后,又发生了上面这个函数的缩放行为,从而导致无效
相关文章推荐
- 关于Bugly热更新sdk使用的一些小细节
- 关于安卓开发以及eclipse开发使用的一些经验(一)
- 关于淘宝 TOP 开发 使用的一些心得,问题不断更新中。。。
- 关于weight属性使用的一些细节
- 关于weight属性使用的一些细节
- 高德地图iOS SDK限制地图的缩放比例
- 关于一些Java开发工具的使用心得(不断更新)
- 关于css布局中margin,padding在整个布局中使用的一些细节
- 构建新的 App 和 App 更新时,必须使用公共(GM)版 Xcode 6 或更高版本、OS X 以及 iOS SDK。请勿提交使用 Beta 版软件,包括 Beta 版 OS X 构建的 App。
- 关于ellipsize属性使用的一些细节
- Android Studio中找到项目的密匙数字证书(MD5和SHA1)配置高德地图Android地图SDK【高德地图使用】
- 原创:关于一些Java开发工具的使用心得(不断更新)
- 构建新的 App 和 App 更新时,必须使用公共(GM)版 Xcode 6 或更高版本、OS X 以及 iOS SDK。请勿提交使用 Beta 版软件,包括 Beta 版 OS X 构建的 App。
- 关于ellipsize属性使用的一些细节
- 关于使用BoundsCheck的一些问题汇总[持续更新]
- 关于使用百度地图安卓SDK的过程中出现“Authentication Error errorcode: 230 uid: -1 appid -1 msg: APP Scode码校验失败”的一个解决方法
- php关于使用strpos方法判断字符串中是否存在字符串的一些细节说明
- iOS 判断并使用 百度地图 高德地图 自带地图 导航(使用URI,不集成sdk)
- 使用代理对安卓sdk的更新
- 关于高德地图 自定义Marker使用自己的XMl布局的操作