2012-06-06 9 views
25

私は地図上に描画する点の配列、その既にデコード有する:MapViewにMKPolylineを描画する方法は?

- (void) drawRoute:(NSArray *) path { 
    NSInteger numberOfSteps = path.count; 

    CLLocationCoordinate2D coordinates[numberOfSteps]; 
    for (NSInteger index = 0; index < numberOfSteps; index++) { 
     CLLocation *location = [path objectAtIndex:index]; 
     CLLocationCoordinate2D coordinate = location.coordinate; 

     coordinates[index] = coordinate; 
    } 

    MKPolyline *polyLine = [MKPolyline polylineWithCoordinates:coordinates count:numberOfSteps]; 
    [map addOverlay:polyLine]; 
} 

「マップ」MKMapViewのインスタンスであり、そしてパス配列は、点の既に復号化セットを表します。

私はライン[map addOverlay:polyLine];と考えていました。私はいくつかのページでこの方法を見てきました。

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay { 
    MKPolylineView *polylineView = [[MKPolylineView alloc] initWithPolyline:overlay]; 
    polylineView.strokeColor = [UIColor redColor]; 
    polylineView.lineWidth = 1.0; 

    return polylineView; 
} 

実際にマップに描かれているのはpolylineViewですか?私はまた、この最後のメソッドの "< MKOverlay> overlay"引数にMKPolyline(上記のメソッドから)を渡そうとしましたが、例外がスローされました。

私は近くにいると思うが、今何をすべきかわからない。

助けてください!事前にどうもありがとうございました。

+2

このコードは、iOS7では廃止されました。 –

答えて

13

完了のために。

非常にばかげたことでしたが、私はMapViewのデリゲートを設定しませんでした。単に[map setDelegate:self]を追加します。トリックをしました。

ありがとうございました!

4

&座標でMKPolylineを作成して、そのポリラインをマップビューに追加するだけです。

MKPolyline *polyLine = [MKPolyline polylineWithCoordinates:coordinates count:numberOfSteps]; 
    [map addOverlay:polyLine]; 

あなたは、いくつかの座標上でポリラインを描画する方法についてのチュートリアルhereがあります。 編集: URLが有効ではないようです。このURLのアーカイブされたバージョンhereが見つかります。

+0

アーカイブされたバージョンへのリンク:http://web.archive.org/web/20120906022305/http://navarra.ca/?p=786 – Brian

関連する問題