本人有若干成套學(xué)習(xí)視頻, 可試看! 可試看! 可試看, 重要的事情說三遍 包含Java, 數(shù)據(jù)結(jié)構(gòu)與算法, iOS, 安卓, python, flutter等等, 如有需要, 聯(lián)系微信tsaievan.
昨天玩一行代碼實(shí)現(xiàn)定位, 今天發(fā)現(xiàn)百度給我們提供的 API 實(shí)在是太棒了, 縮放地圖比例尺 和 夜間模式的切換 ,繼續(xù)封裝成一行代碼, 玩到簡(jiǎn)直不能停啊
先說縮放地圖比例尺
步驟:
- 先在 view 上添加一個(gè)slider, 最小值3,最大值21, 因?yàn)榘俣裙俜浇o出的解釋是:
地圖比例尺級(jí)別,在手機(jī)上當(dāng)前可使用的級(jí)別為3-21級(jí)
- slider 的 value 直接和 BaiduMapManager 單例的 zoomLevel 關(guān)聯(lián)
// -------- 縮小和放大地圖倍數(shù) --------
- (IBAction)changeZoomLevelAction:(UISlider *)sender {
kBaiduMapManager.zoomLevel = sender.value;
}
3.在 zoomLevel 的 set 方法里,將 slider 的 value 值給 mapView 的 zoomLevel 屬性
- (void)setZoomLevel:(CGFloat)zoomLevel
{
_zoomLevel = zoomLevel;
kBaiduMapManager.mapView.zoomLevel = zoomLevel;
}
就這樣,縮放地圖比例尺就搞定了
再說夜間模式的切換
1.百度給我們提供了一個(gè)JSON 文件,就像這樣

夜間模式配置文件
2.然后我們用百度地圖給的 API 將這個(gè) JSON 文件解析出來,返回一個(gè) mapView 就可以了
- (BMKMapView *)customMapViewWithStyle:(NSString *)style
{
NSString *styleName = [NSString stringWithFormat:@"custom_config_0323(%@)",style];
NSString *path = [[NSBundle mainBundle]pathForResource:styleName ofType:nil];
[BMKMapView customMapStyle:path];
/* 先默認(rèn)不開啟夜間模式 */
[BMKMapView enableCustomMapStyle:NO];
return self.mapView;
}
3.我們?cè)偬峁┮粋€(gè)按鈕, 用于切換夜間模式和白天模式
// -------- 點(diǎn)擊夜間模式切換按鈕 --------
- (IBAction)changToBlackBackgroudAction:(UIButton *)sender {
[kBaiduMapManager turnTheMapStyleOn:kMapStyleOn];
sender.selected = kMapStyleOn;
}
4.turnTheMapStyleOn方法的實(shí)現(xiàn)
#pragma mark *** 切換夜間模式 ***
- (void)turnTheMapStyleOn:(BOOL)on
{
[BMKMapView enableCustomMapStyle:!self.isMapStyleOn];
/* isMapStyleOn屬性用于記錄夜間模式的開啟狀態(tài) */
self.isMapStyleOn = !on;
}
這樣就都實(shí)現(xiàn)好了, 就是這么簡(jiǎn)單,輕松, easy

實(shí)現(xiàn)效果