ios 使用Core Location定位

2021-06-23 09:56:51 字數 1550 閱讀 1871

core location可以利用三種技術來實現:gps、蜂窩基站三角網定位(cell tower triangulation)和wi-fi定位服務(wps),其中gps是最精確的。

我們只用告訴core location我們想要的精度級別,它將從它可用的技術中決定哪種可以更好地滿足你的需求。

為了與core location打交道,需要建立乙個位置管理器例項,如下所示:

cllocationmanager *locationmanager = [[cllocationmanageralloc]init];
這將建立乙個例項,但它並沒有馬上開始工作,還要設定委託和請求指定精度級別:

locationmanager.desiredaccuracy = kcllocationaccuracybest;    

/*kcllocationaccuracynearesttenmeters

kcllocationaccuracyhundredmeters

kcllocationaccuracykilometer

kcllocationaccuracythreekilometers*/

設定距離篩選器:

locationmanager.distancefilter = 1000.0f;

將告知位置管理器直到iphone已經從以前報告的位置移動至少1000公尺之後才通知其委託。

//啟動位置管理器:

[locationmanager startupdatinglocation];

//停止位置管理器:

[locationmanager stopupdatinglocation];

//使用cllocation獲取緯度和經度:

cllocationdegrees *latitude = thelocation.coordinate.latitude;

cllocationdegrees *longitude = thelocation.coordinate.longitude;

另外,horizontalaccuracy屬性描述以coordinate作為其中心的乙個圓的半徑。此值越大,位置就越不準確。

altitude屬效能告訴你你在海平面以上還是以下多少公尺。

verticalaccuracy表示core location在其精確的海拔方面的準確程度。

cllocationmanagerdelegate有兩個委託方法:

當更新位置的時候,將呼叫locationmanager:didupdatetolocation:fromlocation:方法。

當遇到錯誤的時候,將呼叫locationmanager:didfailwitherror:方法。

錯誤**有kclerrordenied和kclerrorlocationunknow兩種。前者通常表示訪問拒絕(可能是由使用者拒絕),並且應用程式之後都將無法訪問core location;後者的錯誤一般可能是臨時的。

IOS 陣列使用

arc下 定義陣列 nsmutablearray tt和nsmutablearray tb 當nsmutablearray tb nsmutablearray alloc init nsdictionary d nsdictionary dictionarywithobject 123 forkey...

iOS使用濾鏡

ciimage.這個類儲存影象資料。它可以從uiimage 影象檔案 或者是畫素資料中構造出來。cifilter.濾鏡類包含乙個字典結構,對各種濾鏡定義了屬於他們各自的屬性。濾鏡有很多種,比如鮮豔程度濾鏡,色彩反轉濾鏡,剪裁濾鏡等等。把uiimage轉換成濾鏡可以操作的ciimage ciimage...

ios 記憶體使用陷阱

在iphone開發過程中,中的記憶體洩露我們很容易用記憶體檢測工具leaks 檢測出來,並一一改之,但有些是因為ios 的缺陷和用法上的錯誤,leaks 檢測工具並不能檢測出來,你只會看到大量的記憶體被使用,最後收到didreceivememorywarning,最終導致程式崩潰。以下是開發過程中遇...