1

プロジェクトでOCMapViewを使用しています。OCMapView はMap Kit クラスタ ピンポイントです。

mapkit に行を追加したい。このような

ここに画像の説明を入力

しかし、これを行う私のコード:マップ上のオーバーレイラインへの論理的な追加ではありません。

ここに画像の説明を入力

私はこのコードを扱います。

CLLocationCoordinate2D *coordinates
    = malloc(sizeof(CLLocationCoordinate2D) * [self.mapView.annotations count]);
    for (int i=0; i<[self.mapView.annotations count]; i++) {
        OCMapViewSampleHelpAnnotation * ann=[annodationArray objectAtIndex:i];
        coordinates[i]=ann.coordinate;


    }
    self.routeLineView=nil;
self.routeLine = [MKPolyline polylineWithCoordinates:coordinates count:self.mapView.annotations.count]; // 
    free(coordinates);
    [self.mapView setVisibleMapRect:[self.routeLine boundingMapRect]]; //If you want the route to be visible
    dispatch_async(dispatch_get_main_queue(), ^{
        [self.mapView addOverlay:self.routeLine];
    });

私のオーバーレイデリゲートメソッドを見ることができます

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay{
    //normally here is circle. 

    if(overlay == self.routeLine)
    {
        if(nil == self.routeLineView)
        {
            self.routeLineView = [[MKPolylineView alloc] initWithPolyline:self.routeLine];
            self.routeLineView.fillColor = [UIColor redColor];
            self.routeLineView.strokeColor = [UIColor redColor];
            self.routeLineView.lineWidth = 3;

        }

        return self.routeLineView;
    }

    return nil;


} 

また、プロジェクトコードを共有しています。この問題を解決するにはどうすればよいですか?

https://www.dropbox.com/s/q0gtwihtl8o2pom/OCMapView-master.zip

4

1 に答える 1

0

(これらは追加されたすべての注釈self.mapView.displayedAnnotationsです) の代わりに (これらは表示されているもののみです) を使用してください。self.mapView.annotations

于 2013-10-18T13:51:01.203 に答える