ios 實現兩個地點畫線相連

2021-08-09 17:42:13 字數 2264 閱讀 2146

1、建立地理編碼物件

2、呼叫方法去獲取地標

3、獲取clplacemark物件

4、建立mkplacemark

5、建立mkmapitem起點位置

6、建立mkmapitem終點的位置

7、建立方向請求的物件

8.、建立方向物件

9、計算兩個點之間的路線,去獲取路線的資訊,route中有個polyline折線屬性

10、新增到地圖上面呼叫addoverly,被新增的物件需要遵守這個協議

11、在**方法中建立地圖的渲染物,設定線條的顏色,如果我們不設定就會導致看不見,然後返回物件

**如下所示

#import "viewcontroller.h"

#import #import @inte***ce viewcontroller ()//在storyboard中的乙個文字輸入框,讓我們輸入地點使用

@property (weak, nonatomic) iboutlet uitextfield *textfield;

@property (nonatomic ,strong)clgeocoder *geocoder;

@property (weak, nonatomic) iboutlet mkmapview *mapview;

@property (nonatomic ,strong)cllocationmanager *manager;

@end

@implementation viewcontroller

-(clgeocoder *)geocoder

return _geocoder;

}-(cllocationmanager *)manager

return _manager;

}- (ibaction)startguide:(id)sender

//遍歷陣列去選取資料,取最後乙個地標

clplacemark *placemark = placemarks.lastobject;

//建立mkplacemark物件

mkplacemark * pmk = [[mkplacemark alloc]initwithplacemark:placemark];

//獲取現在的地標

mkmapitem * currentitem = [mkmapitem mapitemforcurrentlocation];

//獲取目的的地標

mkmapitem * destinationitem = [[mkmapitem alloc]initwithplacemark:pmk];

//實現畫線的方法

//導航和畫線其實都是像蘋果伺服器去傳送請求

//1、首先我們要去建立方向的請求物件

mkdirectionsrequest * request = [mkdirectionsrequest new];

//設定起點

request.source = currentitem;

//設定終點

request.destination = destinationitem;

//2、建立方向物件

mkdirections * directions = [[mkdirections alloc]initwithrequest:request];

//3.計算兩點之間的路線

[directions calculatedirectionswithcompletionhandler:^(mkdirectionsresponse * _nullable response, nserror * _nullable error)

//5、獲取路線資訊

for(mkroute * route in response.routes)

}];}];

}- (void)viewdidload

//顯示使用者的位置

self.mapview.usertrackingmode = mkusertrackingmodefollow;

//設定**屬性

self.mapview.delegate = self;

}#pragma mark 設定地圖渲染物

-(mkoverlayrenderer *)mapview:(mkmapview *)mapview rendererforoverlay:(id)overlay

效果圖如下

兩個棧實現佇列 兩個佇列實現棧

1.兩個棧實現佇列 大致思路 入佇列時,將元素入棧s1,出佇列時,將s2中的元素出棧即可,如果s2為空,那麼將s1中 s1.size 1 個元素出棧,加入到s2中,然後將s1中最後乙個元素出棧,即完成了出佇列的操作 include using namespace std include includ...

兩個棧實現佇列,兩個佇列實現棧

include include include using namespace std 使用兩個棧實現佇列,實現了push,pop,front操作 其中棧s2是輔助棧,push直接在s1中插入 pop從s2中出棧,如果s2是空的,將s1倒進s2,然後再出棧,這樣減少了倒棧次數,比較高效。front就...

兩個棧實現佇列 兩個佇列實現棧

一 題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。二 1 自己 基本思路 乙個棧用於壓縮,乙個專門用於彈出。因為棧是先進後出,所有的元素入棧再出棧,再入棧就可以將順序調整過來。但是沒有想到優化。class solution int pop int tem...