一直以來我很喜歡地圖應用,可以大範圍看到資訊的廣度,像是垃圾車經過的地點或微笑單車租借站的地點。
最近想要在地圖上繪製路徑,研究過後發現非常簡單,將有經緯度的資料準備好,透過MapKit來繪製即可!
看到下方程式碼展示,就知道如何實現囉~
遵循MKMapViewDelegate,在rendererForOverlay指定要繪製線條的顏色與粗細。
/** Theme: Draw on Map IDE: Xcode 11 Language: Objective C Date: 108/07/07 Author: HappyMan Blog: https://cg2010studio.com/ */ -(void)setupData { CLLocationCoordinate2D coordinateArray[[pointArr count]]; for (int i = 0; i < [pointArr count]; i++) { // Ex: 121.381670999968 25.0741819965287 float longitude = [[[pointArr[i] componentsSeparatedByString:@" "] firstObject] floatValue]; float latitude = [[[pointArr[i] componentsSeparatedByString:@" "] lastObject] floatValue]; coordinateArray[i] = CLLocationCoordinate2DMake(latitude, longitude); } MKPolyline *pl = [MKPolyline polylineWithCoordinates:coordinateArray count:[pointArr count]]; [stationMapView setVisibleMapRect:[pl boundingMapRect]]; //If you want the route to be visible [stationMapView addOverlay:pl]; } #pragma mark - MKMapViewDelegate -(MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay { if ([overlay isKindOfClass:[MKPolyline class]]) { MKPolylineRenderer *aView = [[MKPolylineRenderer alloc] initWithPolyline:(MKPolyline *)overlay]; aView.fillColor = [UIColor redColor]; aView.strokeColor = [UIColor blueColor]; aView.lineWidth = 3; return aView; } return nil; }
我所使用的開放資料是來自「公共運輸整合資訊流通服務平臺」(Public Transport Data eXchange,PTX),資料品質相當優良~
在此我指定顏色為藍色、粗細為3。
最近在進行Side Project,想把自行車路線功能繪製出來,以下分別是台北市和新北市的自行車路線,看來台北市規劃的相當完整,到處都有適合騎車的自行車路線。
若你有興趣的話,可以去App Store下載「微笑單車管家」喔:)~
隨意留個言吧:)~