0

私はこれに慣れていないので、何か単純なものが欠けている可能性があります。

基本的に、ポイントからポイントへ直線を描きたいのですが、私の場合、各線を座標の配列で描画する必要があるすべてのポイントがあります。そして、overlay メソッドを使用して線を描画します。そして、これはすべて、私がすでに定義および構成した MKMapView にあります (正しく)。

したがって、座標の配列を入力し、オーバーレイ/ポリラインを作成するために使用するコードは次のとおりです。

CLLocationCoordinate2D coordinateArray[arrayOfLatitudes.count];
    for (int i = 0; i < arrayOfLatitudes.count; i++) {

    double tempLatitude = [[arrayOfLatitudes objectAtIndex:(i)] doubleValue];
    double tempLongitude = [[arrayOfLongitudes objectAtIndex:(i)] doubleValue];

    coordinateArray[i] = CLLocationCoordinate2DMake(tempLatitude, tempLongitude);


}

self.routeLine = [MKPolyline polylineWithCoordinates:coordinateArray count:arrayOfLatitudes.count];
[self.mapView setVisibleMapRect:[self.routeLine boundingMapRect]]; //If you want the route to be visible
[self.mapView addOverlay:self.routeLine];

これは、routeLine を構成すると想定する ViewForOverlay メソッドです。

(MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
 if ([overlay isKindOfClass:[MKPolyline class]])
 {
    MKPolylineView *mapOverlayView = [[MKPolylineView alloc] initWithPolyline:overlay];
    //add autorelease if not using ARC
    mapOverlayView.strokeColor = [UIColor redColor];
    mapOverlayView.lineWidth = 3;
    return mapOverlayView;
}

return nil;

}

.h にもこれらの宣言があります。

@property (nonatomic, retain) MKPolyline *routeLine; 
@property (nonatomic, retain) MKPolylineView *routeLineView; 

別のクラスで正確なロジック (物事の順序) を使用しており、線が問題なく表示されるため、MapView に描画された routeLine が表示されない理由がわかりません。

ここで何が欠けていますか?私を助けてください

前もって感謝します

4

1 に答える 1

0

言い忘れましたが、コードの最初のブロックは、「waitForMe」(void) というメソッド内にあります。私のviewDidLoadメソッドからwaitForMeを呼び出しています。

于 2014-11-10T17:54:04.133 に答える