IOS定位和地圖

現(xiàn)在手機軟件基本上都需要定位担扑,比如打個的恰响,附近的人,附近的餐廳等等涌献,這些應用都需要定位和地圖服務胚宦。

我這個人分不清東西南北,很容易轉蒙圈了,在梳理IOS知識之前枢劝,我先總結一下經(jīng)緯度的知識井联,我記不住一樣長的是經(jīng)度還是緯度,所以我通過谷歌老師了解到您旁,很好記憶烙常,因為我們一般都會說東經(jīng)西經(jīng),所以經(jīng)線是和赤道平行的線鹤盒,肯定也包括赤道線蚕脏,而從南極到北極的連線叫經(jīng)線,希望我不會再忘記了侦锯。

在IOS里面針對定位服務驼鞭,實現(xiàn)定位功能步驟如下

1.創(chuàng)建一個位置管理器:CLLocationManager類 對象locationManager

? ? ? ? 設置代理locationManager.delegate = self?

2.判斷是否啟用定位服務:locationServicesEnabled ->Bool ? ?

3.設置精度:locationManager.desireAccuarcy = kCLLocationAccuracyBest

? ? ? ?屬性:desiredAccuracy ? 用于定位精度

? ? ? ? ? ? ? ? ? ? kCLLocationAccuracyBestForNavigation? 最高精度,用于導航程序

? ? ? ? ? ? ? ? ? ? ?kCLLocationAccuracyBest 最精確

? ? ? ? ? ? ? ? ? ? ?kCLLocationAccuracyNearestTenMeters ? ?十米誤差范圍

? ? ? ? ? ? ? ? ? ? ?kCLLocationAccuracyHundredMeters ? ? ? ? 百米誤差范圍 ??

? ? ? ? ? ? ? ? ? ? ?kCLLocationAccuracyKilometer ? ? ? ? ? ? ? ? ?千米誤差范圍

? ? ? ? ? ? ? ? ? ? ?kCLLocationAccuracyThreeKilometers ? ? ? ?三千米誤差范圍

4.設置距離篩選器:locationManager.distanceFilter = 50? 當你移動一段位移后尺碰,所以移動距離大于篩選器說設置50m時候挣棕,通知委托更新位置;但是位置一段更新過于頻繁就會消耗電池電量葱蝗,我們可以返回它的默認的沒有篩選器模式穴张,使用常量kCLDistanceFilterNone细燎;

locationManager.distanceFilterkCLDistanceFilterNone

5.設置什么啟動(ios版本8.0.0以上的需要設置)

locationManager.requestWhenInUseAuthorization()//當App進入前臺時候開啟定位

locationManager.requestAlwaysAuthorization()//始終開啟

6. 然后就是啟動 位置管理器進行定位locationManager.startUpdatingLocation;??

如果我們不需要繼續(xù)輪詢更新位置可以使用locationManager.stopUpdatingLocation;

停止更新两曼,否則應用程序打開會一直更新,這些都需要添加委托的玻驻,遵循 ? ? ? ? ? ? ? ? ? ? ? ?CLLocationManagerDelegate協(xié)議

7.顯示實況地圖

經(jīng)緯度MKCoordinateSpan 和? 范圍 MKCoordinateRegion

struct MKCoordinateSpan{

? ? CLLocationDegrees latitudeDelta; ?//double類型?

? ? CLLocationDegrees longitudeDlta;

}

struct? MKCoordinateRegion{

? ? CLLocationCoordinate2Dcenter;//表示顯示的中心

? ? MKCoordinateSpanspan;//表示比例

}

方向?qū)Ш?/p>

? ? startUpdatingHeading ?開始方向?qū)Ш???

? ? stopUpdatingHeading ?停止方向?qū)Ш?/p>

需要注意的是

? ? 1.定位的頻率和精度不是越精度越好悼凑,因為耗能費電的原因

? ? 2.定位成功后會返回數(shù)組,每個元素代表一個CLLocation位置信息

? ? 3.除了提供定位功能? CLLocationManager還可以調(diào)用startMonitoringForRegion:方法對指定區(qū)域進行監(jiān)控

地理編碼 ?

? ?由于上面的只能讀取經(jīng)度和緯度璧瞬,不能獲取具體的城市位置等等户辫,需要進行逆地理編碼和地理編碼

? ?CLGeocoder 主要兩個方法 ?定位的結果是一個CLPlacemark

?geocodeAddressString(addressString:String!,completionHandler:CLGeocodeCompletionHandler!)?

geocodeAddressString(addressString:String!, inRegion region:CLRegion!, completionHandler:CLGeocodeCompletionHandler!)

逆地理編碼

reverseGeocodeLocation(location:CLLocation!, completionHandler:CLGeocodeCompletionHandler!)

地圖 MapKit

IOS 地圖開發(fā)有兩種方式:1.使用MapKit框架 ?2.直接調(diào)用蘋果官方自帶的地圖應用,無法進行精確的控制嗤锉。 重點是MapKit

MapKit框架提供MKMapView控件

屬性

? ? mapType?

? ? ? ? ? ? MKMapTypeStandard :標準地圖渔欢,一般情況下使用此地圖即可滿足;

? ? ? ? ? ? MKMapTypeSatellite :衛(wèi)星地圖瘟忱;

? ? ? ? ? ? MKMapTypeHybrid :混合地圖奥额,加載最慢比較消耗資源;

? ?userLocation ?用戶位置

? annotations ?當前地圖所有大頭針访诱,只讀屬性?

方法

? ? addAnnotations ? ? ?添加大頭針?

? ? removeAnnotations ?刪除大頭針

? ? setRegion ? ?設置顯示區(qū)域

? ? dequeueReusableAnnotationViewWithIdentifier ?從緩存池中取大頭針(類似Cell)

代理方法

? ? didSelectAnnotationView ?點擊選中某個大頭針觸發(fā)

? ? var ? point:MKPointAnnotation=MKPointAnnotation()

注意:

a.這個代理方法的調(diào)用時機:每當有大頭針顯示到系統(tǒng)可視界面中時就會調(diào)用此方法返回一個大頭針視圖放到界面中垫挨,同時當前系統(tǒng)位置標注(也就是地圖中藍色的位置點)也是一個大頭針,也會調(diào)用此方法触菜,因此處理大頭針視圖時需要區(qū)別對待九榔。

b.類似于UITableView的代理方法,此方法調(diào)用頻繁,開發(fā)過程中需要重復利用MapKit的緩存池將大頭針視圖緩存起來重復利用哲泊。

c.自定義大頭針默認情況下不允許交互剩蟀,如果交互需要設置canShowCallout=true

d.如果代理方法返回nil則會使用默認大頭針視圖,需要根據(jù)情況設置切威。



參考互聯(lián)網(wǎng)資源整理喻旷。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市牢屋,隨后出現(xiàn)的幾起案子且预,更是在濱河造成了極大的恐慌,老刑警劉巖烙无,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锋谐,死亡現(xiàn)場離奇詭異,居然都是意外死亡截酷,警方通過查閱死者的電腦和手機涮拗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來迂苛,“玉大人三热,你說我怎么就攤上這事∪茫” “怎么了就漾?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長念搬。 經(jīng)常有香客問我抑堡,道長,這世上最難降的妖魔是什么朗徊? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任首妖,我火速辦了婚禮,結果婚禮上爷恳,老公的妹妹穿的比我還像新娘有缆。我一直安慰自己,他們只是感情好温亲,可當我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布棚壁。 她就那樣靜靜地躺著,像睡著了一般铸豁。 火紅的嫁衣襯著肌膚如雪灌曙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天节芥,我揣著相機與錄音在刺,去河邊找鬼逆害。 笑死,一個胖子當著我的面吹牛蚣驼,可吹牛的內(nèi)容都是我干的魄幕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼颖杏,長吁一口氣:“原來是場噩夢啊……” “哼纯陨!你這毒婦竟也來了?” 一聲冷哼從身側響起留储,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤翼抠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后获讳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阴颖,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年丐膝,在試婚紗的時候發(fā)現(xiàn)自己被綠了量愧。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡帅矗,死狀恐怖偎肃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情浑此,我是刑警寧澤累颂,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站尤勋,受9級特大地震影響喘落,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜最冰,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望稀火。 院中可真熱鬧暖哨,春花似錦、人聲如沸凰狞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赡若。三九已至达布,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間逾冬,已是汗流浹背黍聂。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工躺苦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人产还。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓匹厘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親脐区。 傳聞我的和親對象是個殘疾皇子愈诚,可洞房花燭夜當晚...
    茶點故事閱讀 44,629評論 2 354

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