问题说明
在集成了最新的高德地图3D SDK后添加自定义的气泡效果,这个时候快速拖动地图气泡大部分情况会出现跳动的情况,观察此时的FPS值已经再40左右,出现了卡顿现象。
SDK版本:7.9.0
手机型号:iPhone11
手机系统:14.6
这个问题在2D SDK中没有,2D和3D的区别就是2D是切片地图,应该就是图片拼起来的吧,3D为矢量地图,不论在任何设备上都不影响清晰度。
3D地图比2D地图更清楚、功能也更多,刚开始本人接入的为2D地图,后来发现地图模糊,换到了3D地图就出现了这个问题,建议直接接入3D地图。
解决方式
有问题的3D sdk版本为 7.9.0,首先就设置了如下两个参数,不允许降频,最大FPS为60,没有任何效果。
mapView.isAllowDecreaseFrame = false
mapView.maxRenderFrame = 60
看了最新版本的更新情况,有一个这样的参数,开启后同样无效,后来发现这个参数要在地图初始化之前设置才会有效果,设置后既可解决该问题。注意:该参数设置后在模拟器无法正常运行。
MAMapView.metalEnabled = true
let frame = CGRect.init(x: 0, y: 0, width: BTUtils.screen_W(), height: BTUtils.screen_H() - BTUtils.nav_HEIGHT() - BTUtils.tab_HEIGHT())
mapView = MAMapView.init(frame: frame)
self.view.insertSubview(mapView, at: 0)
如果还是不能解决拖动卡顿的问题,可以往上一个版本回退,回退到7.8.0,发现版本最多支持最大30FPS的地图刷新,强行设置60FPS后地图都拖不动。
回退到7.7.0版本,也可解决该问题。