問題說明
在集成了最新的高德地圖3D SDK后添加自定義的氣泡效果,這個(gè)時(shí)候快速拖動(dòng)地圖氣泡大部分情況會(huì)出現(xiàn)跳動(dòng)的情況,觀察此時(shí)的FPS值已經(jīng)再40左右,出現(xiàn)了卡頓現(xiàn)象。
SDK版本:7.9.0
手機(jī)型號(hào):iPhone11
手機(jī)系統(tǒng):14.6
這個(gè)問題在2D SDK中沒有,2D和3D的區(qū)別就是2D是切片地圖,應(yīng)該就是圖片拼起來的吧,3D為矢量地圖,不論在任何設(shè)備上都不影響清晰度。
3D地圖比2D地圖更清楚、功能也更多,剛開始本人接入的為2D地圖,后來發(fā)現(xiàn)地圖模糊,換到了3D地圖就出現(xiàn)了這個(gè)問題,建議直接接入3D地圖。
解決方式
有問題的3D sdk版本為 7.9.0,首先就設(shè)置了如下兩個(gè)參數(shù),不允許降頻,最大FPS為60,沒有任何效果。
mapView.isAllowDecreaseFrame = false
mapView.maxRenderFrame = 60
看了最新版本的更新情況,有一個(gè)這樣的參數(shù),開啟后同樣無效,后來發(fā)現(xiàn)這個(gè)參數(shù)要在地圖初始化之前設(shè)置才會(huì)有效果,設(shè)置后既可解決該問題。注意:該參數(shù)設(shè)置后在模擬器無法正常運(yùn)行。
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)

image.png
如果還是不能解決拖動(dòng)卡頓的問題,可以往上一個(gè)版本回退,回退到7.8.0,發(fā)現(xiàn)版本最多支持最大30FPS的地圖刷新,強(qiáng)行設(shè)置60FPS后地圖都拖不動(dòng)。
回退到7.7.0版本,也可解決該問題。