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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

(八十二)利用苹果服务器获取导航信息和绘制路径

發(fā)布時(shí)間:2025/5/22 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (八十二)利用苹果服务器获取导航信息和绘制路径 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

要通過(guò)蘋(píng)果的服務(wù)器獲得導(dǎo)航數(shù)據(jù),利用系統(tǒng)自帶的類(lèi)即可實(shí)現(xiàn),先創(chuàng)建MKDirectionsRequest,然后利用request創(chuàng)建MKDirections,最后調(diào)用MKDirection對(duì)象的calculateDirectionsWithCompletionHandler:方法,該方法通過(guò)一個(gè)結(jié)構(gòu)體回調(diào),來(lái)獲取導(dǎo)航信息。

結(jié)構(gòu)體傳入的參數(shù)是MKDirectionsResponse對(duì)象,其中routes包含的是路徑,一般只有一條,就是從起點(diǎn)通往終點(diǎn)的路線(xiàn),在route里還包含step,每個(gè)step是路徑中的一小部分,利用for-in進(jìn)行遍歷即可。

需要注意的是,request在請(qǐng)求之前需要傳入起點(diǎn)和終點(diǎn),屬性名為source和destination,接收MKMapItem對(duì)象,要得到MKMapItem,應(yīng)該先得到MKPlacemark,要得到MKPlacemark,首先應(yīng)當(dāng)利用地理編碼得到CLPlacemark,然后利用CLPlacemark初始化MKPlacemark。這個(gè)在上一節(jié)有講,這里不再贅述。

- (void)startNavigation{MKPlacemark *startMrk = [[MKPlacemark alloc] initWithPlacemark:_startMrk];MKPlacemark *endMrk = [[MKPlacemark alloc] initWithPlacemark:_endMrk];MKMapItem *startItem = [[MKMapItem alloc] initWithPlacemark:startMrk];MKMapItem *endItem = [[MKMapItem alloc] initWithPlacemark:endMrk];MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];request.source = startItem;request.destination = endItem;MKDirections *directions = [[MKDirections alloc] initWithRequest:request];[directions calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) {if(error){return;}for (MKRoute *route in response.routes) {NSLog(@"%@ %fkm %fh",route.name,route.distance / 1000,route.expectedTravelTime / 3600);// 繪制路線(xiàn),通過(guò)向地圖上添加遮蓋(蒙板)// 系統(tǒng)開(kāi)始繪制路徑時(shí),會(huì)詢(xún)問(wèn)路徑的屬性,寬度、顏色等。[_mapView addOverlay:route.polyline];for (MKRouteStep *step in route.steps) {NSLog(@"%@ %f",step.instructions,step.distance);}}}];} 觀察上面的代碼,對(duì)于路徑,可以通過(guò)mapView的addOverlay:方法傳入一個(gè)MKPolyline對(duì)象即可實(shí)現(xiàn)向地圖上添加路徑。

需要注意的是,繪制路徑之前系統(tǒng)會(huì)調(diào)用mapView的代理方法,詢(xún)問(wèn)路徑繪制的細(xì)節(jié),如果不實(shí)現(xiàn)這個(gè)方法,無(wú)法繪制路徑,首先讓控制器成為mapView的代理,然后實(shí)現(xiàn)下面的方法,設(shè)置路徑樣式。

- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay{MKPolylineRenderer *pathRender = [[MKPolylineRenderer alloc] initWithOverlay:overlay];pathRender.lineWidth = 6;pathRender.lineJoin = kCGLineJoinRound;pathRender.strokeColor = [UIColor redColor];return pathRender;}

一般要在起點(diǎn)和終點(diǎn)放置大頭針,只需要定義模型遵循MKAnnotation協(xié)議,然后創(chuàng)建模型,調(diào)用mapView的addAnnotation:方法即可放置大頭針,樣式為默認(rèn)。這個(gè)方法應(yīng)該在地理編碼獲取到終點(diǎn)回調(diào)時(shí)添加,下面是完整的代碼。

// // ViewController.m // 通過(guò)蘋(píng)果服務(wù)器獲取導(dǎo)航信息 // // Created by 11 on 7/22/15. // Copyright (c) 2015 soulghost. All rights reserved. //#import "ViewController.h" #import <MapKit/MapKit.h> #import "MyAnnotation.h"@interface ViewController () <MKMapViewDelegate> @property (weak, nonatomic) IBOutlet UITextField *startView; @property (weak, nonatomic) IBOutlet UITextField *endView; @property (strong, nonatomic) CLGeocoder *gcoder; @property (strong, nonatomic) CLPlacemark *startMrk,*endMrk; @property (weak, nonatomic) IBOutlet MKMapView *mapView;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];_gcoder = [[CLGeocoder alloc] init];_mapView.delegate = self;}- (IBAction)startBtnClick:(id)sender {NSString *start = _startView.text;NSString *end = _endView.text;[_gcoder geocodeAddressString:start completionHandler:^(NSArray *placemarks, NSError *error) {if(placemarks.count) _startMrk = [placemarks firstObject];else return;[_gcoder geocodeAddressString:end completionHandler:^(NSArray *placemarks, NSError *error) {if(placemarks.count) _endMrk = [placemarks firstObject];else return;[self startNavigation];// 添加起點(diǎn)和終點(diǎn)的大頭針MyAnnotation *startAnnotation = [[MyAnnotation alloc] init];startAnnotation.title = _startMrk.locality;startAnnotation.subtitle = _startMrk.name;startAnnotation.coordinate = _startMrk.location.coordinate;[_mapView addAnnotation:startAnnotation];MyAnnotation *endAnnotation = [[MyAnnotation alloc] init];endAnnotation.title = _endMrk.locality;endAnnotation.subtitle = _endMrk.name;endAnnotation.coordinate = _endMrk.location.coordinate;[_mapView addAnnotation:endAnnotation];}];}];}- (void)startNavigation{MKPlacemark *startMrk = [[MKPlacemark alloc] initWithPlacemark:_startMrk];MKPlacemark *endMrk = [[MKPlacemark alloc] initWithPlacemark:_endMrk];MKMapItem *startItem = [[MKMapItem alloc] initWithPlacemark:startMrk];MKMapItem *endItem = [[MKMapItem alloc] initWithPlacemark:endMrk];MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];request.source = startItem;request.destination = endItem;MKDirections *directions = [[MKDirections alloc] initWithRequest:request];[directions calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) {if(error){return;}for (MKRoute *route in response.routes) {NSLog(@"%@ %fkm %fh",route.name,route.distance / 1000,route.expectedTravelTime / 3600);// 繪制路線(xiàn),通過(guò)向地圖上添加遮蓋(蒙板)// 系統(tǒng)開(kāi)始繪制路徑時(shí),會(huì)詢(xún)問(wèn)路徑的屬性,寬度、顏色等。[_mapView addOverlay:route.polyline];for (MKRouteStep *step in route.steps) {NSLog(@"%@ %f",step.instructions,step.distance);}}}];}// 繪制路徑的樣式 - (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay{MKPolylineRenderer *pathRender = [[MKPolylineRenderer alloc] initWithOverlay:overlay];pathRender.lineWidth = 6;pathRender.lineJoin = kCGLineJoinRound;pathRender.strokeColor = [UIColor redColor];return pathRender;}@end

轉(zhuǎn)載于:https://www.cnblogs.com/aiwz/p/6154117.html

總結(jié)

以上是生活随笔為你收集整理的(八十二)利用苹果服务器获取导航信息和绘制路径的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品人人 | 男插女av | 欧美毛片网站 | 亚洲第一色在线 | 黄色av免费| 亚洲精品无人区 | 天天综合天天 | 99re热这里只有精品视频 | 美女一级黄| 久久国产视频播放 | 高清国产一区二区三区 | 日日艹夜夜艹 | 无码精品人妻一区二区三区漫画 | 国产美女视频91 | 国产精品4| 成人精品免费在线观看 | 欧美日韩成人一区二区在线观看 | 欧美三级自拍 | 久久观看最新视频 | 大牛影视剧免费播放在线 | 麻豆人妻少妇精品无码专区 | 午夜激情影院 | 欧美一区二区三区成人精品 | 美女赤身免费网站 | 欧美亚洲丝袜 | 粗大黑人巨茎大战欧美成人免费看 | 亚洲熟妇无码一区二区三区导航 | 一级日韩一级欧美 | 97国产| 三级免费网站 | 国产三区在线播放 | 人体毛片 | 91中文字幕网 | 丁香花电影免费播放在线观看 | 亚洲欧洲一区二区 | 日韩欧美在线免费 | 人妖干美女 | 国产激情综合五月久久 | asian日本肉体pics | 国产在线观看精品 | 国产精品第56页 | 欧美视频一区二区三区四区在线观看 | 无码人妻精品丰满熟人区 | 最新日韩视频 | 白丝动漫美女 | 五月天激情综合网 | 色天堂影院 | 少妇特黄a一区二区三区88av | 久久久久久九九九九九 | 五月天堂网 | 日本免费精品 | 日韩一区二区三区在线免费观看 | 另类综合小说 | 久久久免费观看 | 黄色69| 99热日本 | 黑人巨大国产9丨视频 | 婷婷久久精品 | 中文成人无字幕乱码精品区 | 欧美日韩一区二区三区69堂 | 午夜精品久久久久久久99老熟妇 | 亚洲欧美日韩一区二区三区在线观看 | 精品久久精品久久 | 一色综合 | 国产真实伦对白全集 | 国产精品一区二区三区不卡 | 精品人妻无码专区视频 | 女人高潮娇喘1分47秒 | 久久精品视 | 日本h在线| 色婷婷综合视频 | 国产精品二区在线 | 日本人妻一区二区三区 | 国产精品一区二区三区久久久 | 亚洲午夜18毛片在线看 | 不卡在线一区二区 | 成人18视频 | 青草草在线 | 91麻豆精品国产91久久久更新时间 | 亚洲综合网av | 一区二区三区欧美在线 | 波多野结衣影院 | 黑人黄色一级片 | 亚洲免费久久 | 中文字幕丰满孑伦无码专区 | 91偷拍精品一区二区三区 | 精品在线观看免费 | 久久美女av | 蘑菇福利视频一区播放 | 91麻豆视频 | 国产女优在线播放 | 特级黄色录像 | 呦女精品 | 少妇无码一区二区三区 | 国产精品黄在线观看 | 精品国偷自产在线 | 99久久久无码国产精品免费麻豆 | 无码日韩精品一区二区 | 韩国女同性做爰三级 |