28

マップ上に描画するポイントの配列があり、既にデコードされています。

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

近いと思いますが、今何をすべきかわかりません。

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

4

3 に答える 3

14

終わり。

非常に愚かなことでした。MapView のデリゲートを設定しませんでした。[map setDelegate:self]; を追加するだけです。トリックをしました。

とにかくありがとうございました!。

于 2012-06-06T09:39:30.410 に答える
4

座標で MKPolyline を作成し、その polyLine をマップ ビューに追加するだけです。

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

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

于 2012-06-06T09:34:48.613 に答える
0
MKPolyline *polyline = [MKPolyline polylineWithCoordinates:coordinates count:self.allPins.count];
[self.mapView addOverlay:polyline];

このhttp://pinkstone.co.uk/how-to-draw-an-mkpolyline-on-a-map-view/を確認し、迅速なhttp://rshankar.com/how-to-add-mapview-annotationを確認してください-and-draw-polyline-in-swift/

于 2012-06-06T09:37:49.817 に答える