0

互いに接続されていない 2 つの線を描画するにはどうすればよいですか。2 つの線は異なる色にする必要があります。2 つの線には 4 つの座標セットの点があります。したがって、各行には独自の座標セットがあります。Objective C iOS 7 を使用しています。

Tower Two は現在描画を行っていません

 if ([deg2 isEqual: @""] ) {
    //nil

}else{
    //not nil

    //Tower Two
    //draw line from lat2/long2 to finalLat2/finalLong2
    CLLocationCoordinate2D coordinateArray2[2];
    coordinateArray2[0] = CLLocationCoordinate2DMake([lat2 doubleValue], [long2 doubleValue]); //tower two
    coordinateArray2[1] = CLLocationCoordinate2DMake(finalLat2, finalLong2);
    self.routeLine = [MKPolyline polylineWithCoordinates:coordinateArray2 count:2];

}

タワーワンは引き分け

   //tower one
  // [self.mapview setVisibleMapRect:[self.routeLine boundingMapRect]]; //If you want the route to be visible
    //draw line from lat1/long1 to finalLat1/finalLong1
    CLLocationCoordinate2D coordinateArray[2];
    coordinateArray[0] = CLLocationCoordinate2DMake([lat1 doubleValue], [long1     doubleValue]); //tower one
    coordinateArray[1] = CLLocationCoordinate2DMake(finalLat1, finalLong1);



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

タワーワンがラインカラーを取得する方法は次のとおりです

//Tower One Line
-(MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id<MKOverlay>)overlay
{
    if(overlay == self.routeLine)
    {
        if(nil == self.routeLineView)
        {
            self.routeLineView = [[MKPolylineView alloc] initWithPolyline:self.routeLine];
            self.routeLineView.fillColor = [UIColor greenColor];
            self.routeLineView.strokeColor = [UIColor greenColor];
            self.routeLineView.lineWidth = 5;
        }
        return self.routeLineView;
    }
    return nil;
}
4

1 に答える 1

0

.h ファイルに追加する必要がありました

@property (nonatomic, retain) MKPolyline *routeLine1; //ORGINAL LINE
@property (nonatomic, retain) MKPolylineView *routeLineView1; //ORGINAL LINE

@property (nonatomic, retain) MKPolyline *routeLine2; //ADDED LINE
@property (nonatomic, retain) MKPolylineView *routeLineView2; //ADDED LINE

.m のこれ

-(MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
if(overlay == self.routeLine1)
{
    if(nil == self.routeLineView1)
    {
        self.routeLineView1 = [[MKPolylineView alloc] initWithPolyline:self.routeLine1];
        self.routeLineView1.fillColor = [UIColor greenColor];
        self.routeLineView1.strokeColor = [UIColor greenColor];
        self.routeLineView1.lineWidth = 5;

    }

    return self.routeLineView1;
}


if(overlay == self.routeLine2)
{
    if(nil == self.routeLineView2)
    {
        self.routeLineView2 = [[MKPolylineView alloc] initWithPolyline:self.routeLine2];
        self.routeLineView2.fillColor = [UIColor orangeColor];
        self.routeLineView2.strokeColor = [UIColor orangeColor];
        self.routeLineView2.lineWidth = 5;

    }

    return self.routeLineView2;
}

return nil;

}
于 2015-10-22T22:28:14.117 に答える