(3)各种事件监听

百度地图有几个重要的事件监听
比如说地图加载完成,地图渲染完成,地图状态改变监听
从其他界面返回,会回调地图渲染完成的回调


正常我们只是单纯显示地图,没有做定位(显示是天安门)那么
地图加载完成回调函数。onMapLoaded
地图渲染完成回调函数。onMapRenderFinished
如果我们在界面中做了一些操作,比如两个手指放大,那么它会走
手势操作地图,设置地图状态等操作导致地图状态开始改变。onMapStatusChangeStart
手势操作地图,设置地图状态等操作导致地图状态开始改变。onMapStatusChangeStart(两个参数的,第二个参数int值为3)
01-10 16:08:04.139 18499-18499/com.example.administrator.BaiduDiTu E/MainActivity:地图状态变化中。onMapStatusChange
01-10 16:08:04.309 18499-18499/com.example.administrator.BaiduDiTu E/MainActivity:地图状态变化中。onMapStatusChange
01-10 16:08:04.328 18499-18499/com.example.administrator.BaiduDiTu E/MainActivity:地图状态变化中。onMapStatusChange
01-10 16:08:04.403 18499-18499/com.example.administrator.BaiduDiTu E/MainActivity:地图状态变化中。onMapStatusChange
【(3)各种事件监听】01-10 16:08:04.404 18499-18499/com.example.administrator.BaiduDiTu E/MainActivity:地图状态改变结束。onMapStatusChangeFinish
01-10 16:08:05.930 18499-18499/com.example.administrator.BaiduDiTu E/MainActivity:地图渲染完成回调函数。onMapRenderFinished
如果我们是点击缩放控件
01-10 16:15:00.060 19754-19754/com.example.administrator.BaiduDiTu E/MainActivity: 手势操作地图,设置地图状态等操作导致地图状态开始改变。onMapStatusChangeStart
01-10 16:15:13.703 19754-19754/com.example.administrator.BaiduDiTu E/MainActivity:手势操作地图,设置地图状态等操作导致地图状态开始改变。onMapStatusChangeStart(两个参数的),第二个参数值是:2
01-10 16:15:13.720 19754-19754/com.example.administrator.BaiduDiTu E/MainActivity:地图状态变化中。onMapStatusChange
01-10 16:15:14.007 19754-19754/com.example.administrator.BaiduDiTu E/MainActivity:地图状态变化中。onMapStatusChange
01-10 16:15:14.021 19754-19754/com.example.administrator.BaiduDiTu E/MainActivity:地图状态改变结束。onMapStatusChangeFinish
01-10 16:15:15.529 19754-19754/com.example.administrator.BaiduDiTu E/MainActivity:地图渲染完成回调函数。onMapRenderFinished


我们可以看到地图加载完成这个回调只在第一次初始化地图的时候调用一次,后续我们手动缩放,改变地图状态都是先走地图状态改变的4个回调,最后调用一次地图渲染完成回调
比如后台给我们上万个坐标点让我们显示在地图上,我们不可能一次性全部显示上去,而应该先判断当前的经纬度范围,判断当前的坐标是在这个范围内,再显示到地图上,
然后用户手动缩放屏幕范围,我们需要重新获取新的屏幕范围,清除当前屏幕上的 所以覆盖物,重新判断处于屏幕范围内的坐标点,再重新绘制,这里的关键在于onMapStatusChangeFinish,状态改变界面我们拿到地图状态的类对象 MapStatus

    推荐阅读