iOS 開發 如何獲得使用者當前位置(通過經緯度獲得城市、省份等資訊)
iOS系統自帶定位,用CLLocationManager就可以輕鬆的實現定位的操作,獲得的是一組經緯度,當然,也可以根據給出的經緯度獲取相應的省份、城市、街道等資訊,下面就看一個根據經緯度獲得城市的demo:
因為獲取經緯度需要CLLocationManager類,而這個類包含在CoreLocation框架中,獲取城市資訊需要mapKit框架,所以需要首先在工程中匯入這兩個框架:
匯入框架的步驟:選擇1.target――2.Build Phases――3.Link Binary With Libraries ――4.點選“+”號:如圖所示步驟:
點選加號之後在搜尋框裡輸入相應的框架,即可搜尋到,如圖所示
下面就該寫程式碼了,首先在檢視控制器中匯入:
#import <CoreLocation/CoreLocation.h> #import <MapKit/MapKit.h>
兩個標頭檔案,然後.m中的具體程式碼如下:
#import "ANNViewController.h"
@interface ANNViewController ()
@property (strong, nonatomic) IBOutlet UILabel *longitude;
@property (strong, nonatomic) IBOutlet UILabel *latitude;
@property (strong, nonatomic) IBOutlet UILabel *location;
@property (strong, nonatomic) CLLocationManager *locationManager;
@end
@implementation ANNViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.view.backgroundColor = [UIColor whiteColor];
//建立CLLocationManager物件
self.locationManager = [[CLLocationManager alloc] init];
//設定代理為自己
self.locationManager.delegate = self;
}
- (IBAction)locationButton:(UIButton *)sender {
[self.locationManager startUpdatingLocation];
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
//將經度顯示到label上
self.longitude.text = [NSString stringWithFormat:@"%lf", newLocation.coordinate.longitude];
//將緯度現實到label上
self.latitude.text = [NSString stringWithFormat:@"%lf", newLocation.coordinate.latitude];
// 獲取當前所在的城市名
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
//根據經緯度反向地理編譯出地址資訊
[geocoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *array, NSError *error)
{
if (array.count > 0)
{
CLPlacemark *placemark = [array objectAtIndex:0];
//將獲得的所有資訊顯示到label上
self.location.text = placemark.name;
//獲取城市
NSString *city = placemark.locality;
if (!city) {
//四大直轄市的城市資訊無法通過locality獲得,只能通過獲取省份的方法來獲得(如果city為空,則可知為直轄市)
city = placemark.administrativeArea;
}
NSLog(@"city = %@", city);
}
else if (error == nil && [array count] == 0)
{
NSLog(@"No results were returned.");
}
else if (error != nil)
{
NSLog(@"An error occurred = %@", error);
}
}];
//系統會一直更新資料,直到選擇停止更新,因為我們只需要獲得一次經緯度即可,所以獲取之後就停止更新
[manager stopUpdatingLocation];
}
主要就是直轄市的城市獲得需要拐個彎,iOS7添加了一個新的方法,代替了上面這個方法:
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { NSLog(@"longitude = %f", ((CLLocation *)[locations lastObject]).coordinate.longitude); NSLog(@"latitude = %f", ((CLLocation *)[locations lastObject]).coordinate.latitude); [manager stopUpdatingLocation]; }
後面的處理和上面的方法一樣,大家可以看一下。
另外還有一些CLGeocoder的屬性如下:
@property (nonatomic, readonly) NSDictionary *addressDictionary; // address dictionary properties @property (nonatomic, readonly) NSString *name; // eg. Apple Inc. @property (nonatomic, readonly) NSString *thoroughfare; // street address, eg. 1 Infinite Loop @property (nonatomic, readonly) NSString *subThoroughfare; // eg. 1 @property (nonatomic, readonly) NSString *locality; // city, eg. Cupertino @property (nonatomic, readonly) NSString *subLocality; // neighborhood, common name, eg. Mission District @property (nonatomic, readonly) NSString *administrativeArea; // state, eg. CA @property (nonatomic, readonly) NSString *subAdministrativeArea; // county, eg. Santa Clara @property (nonatomic, readonly) NSString *postalCode; // zip code, eg. 95014 @property (nonatomic, readonly) NSString *ISOcountryCode; // eg. US @property (nonatomic, readonly) NSString *country; // eg. United States @property (nonatomic, readonly) NSString *inlandWater; // eg. Lake Tahoe @property (nonatomic, readonly) NSString *ocean; // eg. Pacific Ocean @property (nonatomic, readonly) NSArray *areasOfInterest; // eg. Golden Gate Park
相關推薦
iOS 開發 如何獲得使用者當前位置(通過經緯度獲得城市、省份等資訊)
iOS系統自帶定位,用CLLocationManager就可以輕鬆的實現定位的操作,獲得的是一組經緯度,當然,也可以根據給出的經緯度獲取相應的省份、城市、街道等資訊,下面就看一個根據經緯度獲得城市的demo: 因為獲取經緯度需要CLLocationM
根據HTML5 獲取當前位置的經緯度
yun .get rip 變量 src ted call location gets 是想讓地圖的定位用戶位置更準確一些。 查看了介紹: http://www.w3school.com.cn/html5/html_5_geolocation.asp 看介紹中拿數據挺簡單。
IOS 地圖定位,標記位置,獲取經緯度,MKMapView的使用
IOS 地圖定位,標註地圖,獲取經緯度: 一、使用MKMapView 定位 二、在地圖上通過經緯度標註(大頭針) 最終效果圖: 開啟應用程式會自動定位並且放大到自己的位置,然後在我的位置上顯示自己的經緯度,通過填寫經緯度可以放置大頭針標註。 一、獲取自身的位置和經緯
iOS開發之tableview位置錯亂,偏移,回到原來位置
上拉重新整理後發現數據位置錯亂?tableview的偏移不對?比如資料一共有40條,一次載入20條,正常應該顯示在第21條,上拉時載入後發現tableview停在了第11條或者30幾條,如果你發生了和我一樣的情況,那看這裡 - (void)addRefresh
iOS開發適配之通過系統statusBar判斷裝置網路狀態(iPhone X 已適配)
通過系統statusBar判斷裝置網路狀態 (已適配iPhone X) // 獲取裝置網路狀態 + (NSString *)deviceNetWorkStatus { UIApplicatio
iOS開發:常用的UIView控制元件——UILabel、UITextField、UIButton
前面幾篇文章已經對iOS開發中比較基本的幾個檔案進行了瞭解,今天主要學習StoryBoard檔案和幾個常見的UI控制元件。 Storyboard功能是在iOS5開始新增的功能,一種新技術的出現大多是為了彌補舊技術的不足,而在storyboard之前iOS 開發設計介面是使用nib檔案(xib
iOS開發(swift):Aspect Fill 和 Aspect Fit 等的區別
參考資料:https://blog.csdn.net/henanzhg/article/details/50765903?utm_source=blogxgwz6 當我們需要在UIImageView中新增圖片的時候,在UIImageView的屬性編輯欄中有Mode選項欄中有很多種圖片的填充方式,
iOS開發之靜態庫(三)—— 圖片、介面xib等資原始檔封裝到.a靜態庫
轉自:https://blog.csdn.net/mylizh/article/details/38707175編譯環境:Macbook Air + OS X 10.9.2 + XCode5.1 + iPhone5s(iOS7.0.3)一、首先將資原始檔打包成bundle新建
iOS開發之正則表示式快速教程(NSPredicate、NSRegularExpression)
1、校驗密碼強度 密碼的強度必須包含大小寫字母和數字的組合,不能使用特殊字元,長度在8-10之間 ^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ 2、校驗中文 字串只能是中文 ^[\\u4e00-\\u9fa5]{0,}$ 3、由數字,26個英文字母或下劃線
iOS開發-使用Runloop實現執行緒保活、執行緒常駐
保證執行緒的長時間存活 在iOS開發過程中,有時一些花費時間比較長的操作阻塞主執行緒,導致介面卡頓,那麼我們就會建立一個子執行緒,然後把這些花費時間比較長的操作放在子執行緒中來處理。可是當子執行緒中的任務執行完畢後,子執行緒就會被銷燬掉。 首先,我們建立一
IOS開發(7)WKWebView載入本地HTML、CSS、JS檔案JS(解決html內訪問其他資源路徑問題)
這段時間開發IOS應用,自己本身是搞java web 和 android,搞ios應用後面還有好多坑要跳,所以學習一點就整理一點筆記。不敢保證內容都是對的,但至少,我嘗試過分析整理的。 UIWebVIew和WKWebView都是ios提供的web控制元件。但是
iOS開發之自定義鍵盤(數字,字母型別等隨意切換)
專案開發很多時候用系統給的鍵盤不是很滿足自身實際需求,那就自定義一個吧: 方法其實很簡單,重新定義一個view,繼承UItextfield,把UI設計好的需求鍵盤加入新的otherKeyboardView,然後執行程式碼: self.inputView =self.oth
iOS開發_textField的placeholder屬性的字型顏色、大小的設定
textField.placeholder = @"大保羅的iOS歷程"; [textField setValue:[UIColor redColor] forKeyPath:@"_placeho
React Native獲取地理位置(獲取具體城市、經緯度)
並不是所有的APP都要獲取你當前的地理位置的,但是有的APP對這方面是特別重要的,例如催收的行業,準確獲取借款人的位置,才能不撲空~~ 基本上實現的原理其實很簡單,前端要做的事情就是每次開啟APP的時候獲取一下手機當前的位置,或者每隔幾分鐘就重新獲取一次。 注:RN提供的方法只能獲取到經緯度,不會直接給你具
iOS開發:PDF檔案的載入及顯示(網路、本地)
話說,公司專案需要顯示PDF檔案,於是遍尋了網路,發現的方法以下幾種: 1.使用UIWebView載入,沒啥說的,根據檔案路徑,網路或者本地皆可,建立一個NSURLRequest,然後用webView載入就可以了,但僅僅能顯示檔案,很low; 2.使用UID
iOS開發筆記之跳轉QQ聊天頁、跳轉微信、應用內撥打電話
NSURL *url; // QQ url = [NSURL URLWithString:[NSString stringWithFormat:@"mqq://im/chat?chat_type=wpa&uin=%@&version=1&src_typ
iOS開發——高德地圖調研之顯示地圖、定位與地理編碼等
在 檔案中加入(**注意2D地圖和3D地圖不能同時使用) od 'AMap3DMap' #3D地圖SDK pod 'AMap2DMap' #2D地圖SDK(2D地圖和3D地圖不能同時使用) pod 'AMapSearch' #搜尋服務SDK 然後進行下載 然後開啟字尾為.xcworkspace工程 程式碼如下
java後臺百度地圖經緯度和地址之間的相互轉換(通過經緯度獲取地址、通過地址獲取經緯度)
準備工作: 百度地圖有json和xml兩種形式儲存資料 3、匯入jar包:此處通過json形式,需匯入jar包 json所需要的jar包如下: json-lib-2.3-jdk15.jar json所依賴的jar如下: commons-beanutils-1.
asp程式碼微信使用者獲取座標位置及詳細地址省市縣區街道等資訊
//獲取定位 //$(".getLocation").on(“click”, function(){ wx.getLocation({ type: ‘gcj02‘, // 預設為wgs84的gps座標,如果要返回直接給openLocation用的火星座標,可傳入‘gcj02‘ success
金蝶BOS,客戶端,服務端,獲取當前組織、使用者等資訊
以下程式碼摘自於EAS客戶端前端程式碼,用於獲取當前登入使用者相應資訊。 @Override public void onLoad() throws Exception { // 得到當前組織的編號,通過客戶端上下文獲取 // 服務端要通過服務端的上下