日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS开发——高级技术地图功能的实现

發布時間:2025/7/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS开发——高级技术地图功能的实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

地圖功能的實現

因為有個項目要在地圖中顯示位置,所以用到了MapKit。

記錄下來,以免以后忘記。

加入MapKit library

首先得在項目中加入MapKit,如圖

?

MapView

先增加一個ViewController,我這里用的storyboard,這個玩意還是挺好用的,比以前用xib好多了。

然后拖一個mapview上去,如:

給新增加的ViewController綁定一個class。首先得增加一個class,從uiViewController繼承下來。這個很簡單,如圖

把新增加的ViewController綁定到這個class,也很easy,發現Xcode還是挺牛的。就是在右邊Identity inspector里面的custom class里面改成新增加的類,原來是UIViewController。

然后給map view控件綁定一個變量,類型是MKMapView

然后就初始化mapview,顯示。代碼如下:

1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 // Do any additional setup after loading the view. 5 6 _mapView.mapType = MKMapTypeStandard;//標準模式 7 _mapView.showsUserLocation = YES;//顯示自己 8 9 _mapView.zoomEnabled = YES;//支持縮放 10 11 12 CLLocationCoordinate2D pos = {39.931203, 116.395573};//找個坐標,我是用百度坐標抓取弄的。http://api.map.baidu.com/lbsapi/getpoint/ 13 14 MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(pos,2000, 2000);//以pos為中心,顯示2000米 15 MKCoordinateRegion adjustedRegion = [_mapView regionThatFits:viewRegion];//適配map view的尺寸 16 [_mapView setRegion:adjustedRegion animated:YES]; 17 18 19 }

?

我這里使用百度坐標,找了個坐標(直接搜索“百度 坐標”),然后在我們自己的地圖里顯示。這樣運行一下就可以看到:

Map view delegate 回調

可以實現協議MKMapViewDelegate, 這樣就會有幾個回調。

1 - (void) mapViewWillStartLoadingMap:(MKMapView *)mapView//開始從服務器獲取地圖數據 2 { 3 4 } 5 6 -(void)mapViewDidFinishLoadingMap:(MKMapView *)mapView//獲取數據結束 7 { 8 9 } 10 11 - (void) mapViewDidFailLoadingMap:(MKMapView *)mapView withError:(NSError *)error//獲取數據失敗了。 12 { 13 14 }

?

獲取設備當前位置并且在地圖中顯示

增加一個按鈕,點擊這個按鈕,將顯示設備當前位置。點擊上面的按鈕將顯示某個固定位置。

CLLocationManager,首先使用CLLocationManager來獲取設備的當前位置。

代碼也是很簡單

?

1 //獲得自己的當前的位置信息 2 - (void) getCurPosition 3 { 4 //開始探測自己的位置 5 if (locationManager==nil) 6 { 7 locationManager =[[CLLocationManager alloc] init]; 8 } 9 10 11 if ([CLLocationManager locationServicesEnabled]) 12 { 13 locationManager.delegate=self; 14 locationManager.desiredAccuracy=kCLLocationAccuracyBest; 15 locationManager.distanceFilter=10.0f; 16 [locationManager startUpdatingLocation]; 17 } 18 }

?

然后實現回調函數

?

1 #pragma mark -- CLLocationManagerDelegate 2 - (void) locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations 3 { 4 if ([locations count] > 0) { 5 CLLocation* loc = [locations objectAtIndex:0]; 6 CLLocationCoordinate2D pos = [loc coordinate]; 7 8 NSLog(@"locationManager, longitude: %f, latitude: %f", pos.longitude, pos.latitude); 9 10 if (show == NO) { 11 MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(pos,2000, 2000);//以pos為中心,顯示2000米 12 MKCoordinateRegion adjustedRegion = [_mapView regionThatFits:viewRegion];//適配map view的尺寸 13 [_mapView setRegion:adjustedRegion animated:YES]; 14 15 show = YES; 16 } 17 } 18 }

?

當設備位置變化時,這個函數會被調用。這樣我們就可以根據位置來做一些事情了。這個例子里就在第一次獲取位置的時候更新一下地圖顯示。以設備當前位置為中心,顯示2000米。

?

完了。貼一下mapview所在的controller代碼:

?

1 // 2 // KMapViewController.m 3 // MapDemo 4 // 5 // Created by Kevin on 14-2-10. 6 // Copyright (c) 2014年 Kevin. All rights reserved. 7 // 8 9 #import "KMapViewController.h" 10 11 @interface KMapViewController () 12 13 @end 14 15 @implementation KMapViewController 16 17 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 18 { 19 self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 20 if (self) { 21 // Custom initialization 22 } 23 return self; 24 } 25 26 - (void)viewDidLoad 27 { 28 [super viewDidLoad]; 29 // Do any additional setup after loading the view. 30 31 show = NO; 32 33 _mapView.mapType = MKMapTypeStandard;//標準模式 34 _mapView.showsUserLocation = YES;//顯示自己 35 _mapView.delegate = self; 36 _mapView.zoomEnabled = YES;//支持縮放 37 38 39 NSString* i = self.Index; 40 41 if([i isEqualToString:@"1"]) 42 { 43 CLLocationCoordinate2D pos = {39.931203, 116.395573};//找個坐標,我是用百度坐標抓取弄的。http://api.map.baidu.com/lbsapi/getpoint/ 44 45 MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(pos,2000, 2000);//以pos為中心,顯示2000米 46 MKCoordinateRegion adjustedRegion = [_mapView regionThatFits:viewRegion];//適配map view的尺寸 47 [_mapView setRegion:adjustedRegion animated:YES]; 48 49 } 50 else 51 { 52 [self getCurPosition]; 53 } 54 55 } 56 57 - (void)didReceiveMemoryWarning 58 { 59 [super didReceiveMemoryWarning]; 60 // Dispose of any resources that can be recreated. 61 } 62 63 - (void) dealloc 64 { 65 66 // [super dealloc]; 67 } 68 69 //獲得自己的當前的位置信息 70 - (void) getCurPosition 71 { 72 //開始探測自己的位置 73 if (locationManager==nil) 74 { 75 locationManager =[[CLLocationManager alloc] init]; 76 } 77 78 79 if ([CLLocationManager locationServicesEnabled]) 80 { 81 locationManager.delegate=self; 82 locationManager.desiredAccuracy=kCLLocationAccuracyBest; 83 locationManager.distanceFilter=10.0f; 84 [locationManager startUpdatingLocation]; 85 } 86 } 87 88 #pragma mark -- MPMapViewDelegate 89 90 - (void) mapViewWillStartLoadingMap:(MKMapView *)mapView 91 { 92 93 } 94 95 -(void)mapViewDidFinishLoadingMap:(MKMapView *)mapView 96 { 97 98 } 99 100 - (void) mapViewDidFailLoadingMap:(MKMapView *)mapView withError:(NSError *)error 101 { 102 103 } 104 105 #pragma mark -- CLLocationManagerDelegate 106 - (void) locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations 107 { 108 if ([locations count] > 0) { 109 CLLocation* loc = [locations objectAtIndex:0]; 110 CLLocationCoordinate2D pos = [loc coordinate]; 111 112 NSLog(

轉載于:https://www.cnblogs.com/LifeTechnologySupporter/p/4762747.html

總結

以上是生活随笔為你收集整理的iOS开发——高级技术地图功能的实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕码精品视频网站 | 少妇视频一区 | 久久亚洲综合网 | 亚洲成人无码久久 | 国产精品日日摸夜夜爽 | 一区二区日韩电影 | 在线精品一区 | 成人三级图片 | 小色哥网站| 成人免费视频国产免费麻豆 | 性高潮影院 | 国产96在线 | 亚洲 | 波多野结衣啪啪 | 黄色国产一级片 | 日韩草逼视频 | 日韩专区中文字幕 | 日韩欧美一二三四区 | 亚洲黄色在线观看视频 | 插插插日日日 | 亚州欧美在线 | 日韩不卡在线播放 | 国产在线视视频有精品 | 国产日韩在线免费观看 | 天天做天天爱天天做 | 中国国产黄色片 | 波多在线视频 | 伊人久久久久久久久久 | 美女一级视频 | 亚洲天天 | 午夜精品在线免费观看 | 欧美老肥妇做.爰bbww视频 | 日本国产在线观看 | 狠狠人妻久久久久久 | 亚洲视频自拍 | 国产精品av一区二区 | 欧美精品aaa | 啪啪av网站| 少妇系列在线观看 | 夜夜操导航 | 人妻系列一区 | 黑人性生活视频 | 欧美激情综合色综合啪啪五月 | 久久草国产 | 人妻丰满熟妇av无码区不卡 | 色午夜 | 日韩中出 | 黄色小毛片 | 国产成人av一区二区三区在线观看 | 久久伊人av | 老头巨大又粗又长xxxxx | 欧美特黄aaaaaa| 欧美激情视频网址 | 日韩永久 | 午夜在线观看影院 | 午夜黄视频 | 精品伦精品一区二区三区视频密桃 | 91网站观看| 在线视频一二区 | www.中文字幕在线观看 | 国产精品高潮呻吟 | 成人h在线观看 | 人妻夜夜爽天天爽三区麻豆av网站 | 四虎影 | 欧美视频1区| 在线观看国产视频 | 国产亚洲精品久久久久久无几年桃 | 亚欧美精品 | caoporn视频在线| avtt中文字幕 | 视色网站 | 好爽又高潮了毛片 | 国产一级视频免费观看 | 午夜成年人视频 | 久久久精品国产sm调教网站 | 久久这里只有精品99 | 97国产成人 | 国产理论一区 | 777国产成人入口 | 台湾男男gay做爽爽的视频 | 巨乳在线播放 | 肌肉猛男裸体gay网站免费 | 爱爱视频网址 | 日韩一卡 | 国产探花视频在线观看 | 91黄视频在线观看 | 伊人www | 黄色一级视频免费 | 亚洲精品77777| www色中色 | 亚洲精品日韩综合观看成人91 | 成人av一区二区三区在线观看 | 熟女少妇在线视频播放 | 大肉大捧一进一出视频 | 饥渴放荡受np公车奶牛 | 日本午夜小视频 | 精品人妻av一区二区 | 国产成人在线影院 | 日韩国产亚洲欧美 | 男人手机天堂 |