地圖的基本使用-MKMapView

地圖的基本使用-MKMapView(地圖顯示)

  • MapKit有一個比較重要的UI控件 :MKMapView,專門用于地圖顯示
  • 設(shè)置MKMapView對應(yīng)的屬性時莲趣,注意該屬性是從哪個系統(tǒng)版本開始引入的鸳慈,做好不同系統(tǒng)版本的適配

1. 設(shè)置地圖顯示類型

  1. 地圖的樣式可以手動設(shè)置, 在iOS9.0之前有3種, iOS9.0之后增加了2種

  2. 設(shè)置方式

self.mapView.mapType = MKMapTypeStandard;
枚舉類型 對應(yīng)含義
MKMapTypeStandard 標(biāo)準(zhǔn)地圖
MKMapTypeSatellite 衛(wèi)星地圖
MKMapTypeHybrid 混合模式(標(biāo)準(zhǔn)+衛(wèi)星)
MKMapTypeSatelliteFlyover 3D立體衛(wèi)星(iOS9.0)
MKMapTypeHybridFlyover 3D立體混合(iOS9.0)
  • 實例圖片在本文末尾

2. 設(shè)置地圖控制項

  1. 地圖的旋轉(zhuǎn), 縮放, 移動等等操作行為都可以開啟或者關(guān)閉

  2. 設(shè)置方式

self.customMapView.zoomEnabled = YES;   // 是否縮放
self.customMapView.scrollEnabled = YES; // 是否滾動
self.customMapView.rotateEnabled = YES; // 是否旋轉(zhuǎn)
self.customMapView.pitchEnabled = NO; // 是否顯示3DVIEW

3. 設(shè)置地圖顯示項

  1. 地圖上的指南針, 比例尺, 建筑物, POI點都可以控制是否顯示

  2. 設(shè)置方式

// 是否顯示指南針(iOS9.0)
self.customMapView.showsCompass = YES;
// 是否顯示比例尺(iOS9.0)
self.customMapView.showsScale = YES;
// 是否顯示交通(iOS9.0)
self.customMapView.showsTraffic = YES;
// 是否顯示建筑物
self.customMapView.showsBuildings = YES;
// 顯示興趣點
self.customMapView.showsPointsOfInterest = true

4. 顯示用戶位置

  1. 效果:
    1. 可以設(shè)置顯示用戶當(dāng)前所在位置,以一個藍(lán)點(大頭針)的形式呈現(xiàn)在地圖上
    • 地圖不會縮放,而且當(dāng)用戶位置移動時,地圖不會跟隨用戶位置移動而移動


      用戶位置.png
  1. 設(shè)置方式
self.customMapView.showsUserLocation = YES;
**注意事項: 如果要顯示用戶位置, 在iOS8.0之后, 需要主動請求用戶授權(quán)**

5. 追蹤用戶位置 - 不夠靈活

  1. 效果:

    • 會在地圖上顯示一個藍(lán)點, 標(biāo)識用戶所在位置;
    • iOS8.0-,地圖不會自動滾動到用戶所在位置
    • iOS8.0+喧伞,地圖會自動放大到合適比例走芋,當(dāng)用戶位置移動時, 地圖會跟隨用戶位置移動而移動; 但是有時候失效;
  2. 設(shè)置方式

self.customMapView.userTrackingMode = MKUserTrackingModeFollowWithHeading;

注意事項: 如果要顯示用戶位置, 在iOS8.0之后, 需要主動請求用戶授權(quán)

3 userTrackingMode屬性

userTrackingMode屬性 含義
MKUserTrackingModeNone 不跟蹤用戶的位置
MKUserTrackingModeFollow 跟蹤并在地圖上顯示用戶的當(dāng)前位置
MKUserTrackingModeFollowWithHeading 跟蹤并在地圖上顯示用戶的當(dāng)前位置绩郎,地圖會跟隨用戶的前進(jìn)方向進(jìn)行旋轉(zhuǎn)

6.MKMapView的代理

  • MKMapView可以設(shè)置一個代理對象,用來監(jiān)聽地圖的相關(guān)行為

  • 常見的代理方法有:

    // 位置變化時調(diào)用翁逞,每個位置變化時只調(diào)用一次
    // 每次調(diào)用肋杖,都會把用戶的最新位置(userLocation參數(shù))傳進(jìn)來
    // MKUserLocation: 系統(tǒng)大頭針數(shù)據(jù)模型,內(nèi)含用戶位置
    - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation;
    
    // 地圖的顯示區(qū)域即將發(fā)生改變的時候調(diào)用
    - (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated;
    
    // 地圖的顯示區(qū)域已經(jīng)發(fā)生改變的時候調(diào)用
    - (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated;
    
    

6. 測試環(huán)境

  1. 加載地圖數(shù)據(jù)需要聯(lián)網(wǎng)
  • XCode版本根據(jù)測試選擇不同版本
    • iOS9.0 只能使用 XCode7.0版本
  • iOS系統(tǒng)版本根據(jù)測試選擇不同版本
    • 例如地圖類型, 在iOS9.0之后才有新增

7. 常見問題總結(jié)

    1. 地圖加載不顯示?
        檢查網(wǎng)絡(luò)是否通暢

    2. 地圖放的太大都是格子, 禁止瀏覽
        正常, 為了國家安全等原因, 不能看的太詳細(xì)

    3. 地圖運行起來APP占用內(nèi)存非常大
        正常, 地圖加載了很多資源

    4. 用戶位置不顯示
        首先, 檢查代碼, 是否有設(shè)置顯示用戶位置,是否有進(jìn)行請求位置授權(quán)
        其次, 查看模擬器是否有位置信息
        第三, 重置模擬器, 模擬器又發(fā)神經(jīng)了.

8.地圖類型實例圖片

標(biāo)準(zhǔn)地圖:

MKMapTypeStandard.png

衛(wèi)星地圖:

MKMapTypeSatellite.png

混合模式(標(biāo)準(zhǔn)+衛(wèi)星):

MKMapTypeHybrid.png

3D立體衛(wèi)星:

MKMapTypeSatelliteFlyover.png

3D立體混合:

MKMapTypeHybridFlyover.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挖函,一起剝皮案震驚了整個濱河市状植,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌怨喘,老刑警劉巖津畸,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異必怜,居然都是意外死亡肉拓,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門梳庆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來暖途,“玉大人,你說我怎么就攤上這事膏执∽な郏” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵更米,是天一觀的道長欺栗。 經(jīng)常有香客問我,道長壳快,這世上最難降的妖魔是什么纸巷? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮眶痰,結(jié)果婚禮上瘤旨,老公的妹妹穿的比我還像新娘。我一直安慰自己竖伯,他們只是感情好存哲,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著七婴,像睡著了一般祟偷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上打厘,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天修肠,我揣著相機與錄音,去河邊找鬼户盯。 笑死嵌施,一個胖子當(dāng)著我的面吹牛饲化,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吗伤,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼吃靠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了足淆?” 一聲冷哼從身側(cè)響起巢块,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎巧号,沒想到半個月后族奢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡丹鸿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年歹鱼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卜高。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖南片,靈堂內(nèi)的尸體忽然破棺而出掺涛,到底是詐尸還是另有隱情,我是刑警寧澤疼进,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布薪缆,位于F島的核電站,受9級特大地震影響伞广,放射性物質(zhì)發(fā)生泄漏拣帽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一嚼锄、第九天 我趴在偏房一處隱蔽的房頂上張望减拭。 院中可真熱鬧,春花似錦区丑、人聲如沸拧粪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽可霎。三九已至,卻和暖如春宴杀,著一層夾襖步出監(jiān)牢的瞬間癣朗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工旺罢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留旷余,地道東北人绢记。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像荣暮,于是被迫代替她去往敵國和親庭惜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容