(10.14更新)关于高德地图安卓SDK的一些使用细节坑(包括Marker与缩放地图)

来源:互联网 发布:上海大数据开放平台 编辑:程序博客网 时间:2024/06/06 11:03

高德的SDK相对百度来说,接口更多,国内使用的范围也更大。但个人感觉其开发文档很多地方说的不够详细,甚至是错误的,不方便大家进行开发,只能靠社区来自救。

这里列举几个地方。

  1. 在对AMap对象进行一些操作的时候,如设置监听器等,回调函数中有marker参数,在做和现有marker做比较的时候,要用equals()(不能直接对两个引用进行比较,内部已经复写了equals())。
  2. marker上设置了按下监听器以及弹出infoWindow的时候,需要在监听器内写入showInfoWindow(),并且完成title的设置,不然会导致监听后弹不出窗口(估计默认下就是通过默认监听器来操作的,创建了新监听器后,原弹出逻辑被复写掉了)。
  3. 这个和Marker无关,但也是官方文档没说清楚的地方,开发包的权限需要多添加一个
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    不然就是不停地报
    java.lang.SecurityException: WifiService: Neither user ......
    (这个有可能是版本导致的问题,我的最低版本为5.1,地图依赖包为3D地图V5.40)
  4. 被设计用来控制缩放的接口函数是 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()设置是否使用了自带的视角移动行为,因为是异步操作,有可能会导致自己缩放完毕后,又发生了上面这个函数的缩放行为,从而导致无效
阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华为手机wifi慢怎么办 浏览器打不开显示内存不足怎么办 华为电脑黑屏了怎么办 华为电脑关不了怎么办 xp系统不能上网怎么办 华为手机激活码怎么办 华为系统删了怎么办 来电响铃时间短怎么办 华为p10刚开机怎么办 盒子支付不到账怎么办 小米5x录完音乱怎么办 华为返回键失灵怎么办 手机退出键失灵怎么办 公司座机被骚扰怎么办 手机号被拦截了怎么办 收不到话费短信怎么办 移动信息收不到怎么办 电话被拦截了怎么办 华为屏幕有广告怎么办 手机屏幕突然出广告怎么办? 电脑中病毒网络怎么办 手机被短信轰炸怎么办 手机桌面变暗了怎么办 oppo音乐不能用怎么办 华为p7更新不了怎么办 短信文件夹没了怎么办 手机安全拦截了怎么办 遇到信号屏蔽器怎么办 电脑老是叫更新怎么办 安卓 启动器停止怎么办 忘记手机pin密码怎么办 华为y635cl00太慢怎么办 ipad玩王者卡怎么办 手机天气不更新怎么办 手机权限被拒绝怎么办 小米平板相册打不开怎么办 小米平板打不开了怎么办 oppo照片消失了怎么办 被别人标记电话怎么办 点了病毒链接怎么办 点开有毒链接怎么办