iOS MKMapView導航畫線

2021-09-17 23:54:20 字數 2087 閱讀 9206

說明:

mkmapview是地圖控制項,支援在地圖上畫導航路徑等操作。

一、將mkmapview控制項拖動到main.storyboard檢視中,並拖線到viewcontroller.m建立控制項引用,匯入mapview相關依賴包,實現**,初始化位址與經緯度互轉管理器:

#import "viewcontroller.h"

//匯入自定義標註圖示類

#import "myannotation.h"

//匯入地圖依賴包

#import //匯入定位依賴包

#import @inte***ce viewcontroller () //mkmapview地圖控制項

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

//字串位址與經緯度互轉管理器

@property (nonatomic, strong) clgeocoder *geocoder;

@end

@implementation viewcontroller

/*懶載入,初始化位址與經緯度互轉管理器

*/- (clgeocoder *)geocoder

return _geocoder;

}- (void)viewdidload

...@end

二、自定義標註圖示:

建立myannotation類,實現mkannotation協議:

//  自定義標註圖示

// myannotation.h

#import #import @inte***ce myannotation : nsobject //經緯度值

@property (nonatomic, assign) cllocationcoordinate2d coordinate;

//標題

@property (nonatomic, copy) nsstring *title;

//二級標題

@property (nonatomic, copy) nsstring *subtitle;

@end

三、將起點與終點標註圖示,在中間畫上導航路徑:

1.建立導航路徑:

/*

自定義方法:建立導航路徑

*/- (void)createpath

//得到起點

clplacemark *fromclp = [placemarks firstobject];

//2.將終點位址轉為經緯度

[self.geocoder geocodeaddressstring:toa completionhandler:^(nsarray* _nullable placemarks, nserror * _nullable error)

//得到終點

clplacemark *toclp = [placemarks firstobject];

//3.新增線路到地圖上

[self addlinetomap:fromclp toclp:toclp];

}];}];

}

2.將線路新增到地圖上:

/*

自定義方法:將線路新增到地圖上

*/- (void)addlinetomap:(clplacemark *)fromclp toclp:(clplacemark *)toclp

}];}

3.建立自定義標註圖示,並加入地圖中:

/*

自定義方法:建立自定義標註圖示,並加入地圖中

*/- (void)addannotatio:(mkplacemark *)mkp

4.重寫mapview-rendererforoverlay方法,將線畫到地圖上:

/*

mkmapview方法:必須重寫,將線畫到地圖上

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

強人畫的畫 )

這是在哥本哈根的街頭拍到的,這位街頭畫家,據他講,這種做畫的方式也是一種生活,他已經作畫20多年了。呵呵,當然不素偶拍滴啦 先用粉筆打底 測量一下比例是否正確 給路人講解 立體畫草稿 開始繪畫 畫的是felix貓 細節需要精心刻畫 開始完善畫面 中國舞獅和felix貓,呼之欲出 換個角大功告成 與作...

IntelliJ IDEA 導航 結構導航

1.最近的操作導航 大多數情況下,我們只需要使用最近的檔案或者開啟最近使用過的工具視窗,並在此之間頻繁切換,你可以通過ctrl e快捷鍵來建立快速訪問最近檔案和工具視窗的視窗並且快速導航到該視窗。此操作缺省會選擇你上乙個處理過的視窗。你可以通過此操作開啟任意視窗。2.快速類導航 通過快捷鍵ctrl ...

drawArc 畫扇形 畫弧線

設定漸變色 這個正方形的顏色是改變的 shader mshader new lineargradient 0,0,100,100,new int null,shader.tilemode.repeat 乙個材質,打造出乙個線性梯度沿著一條線。p.setshader mshader rectf rec...