2016-11-15 4 views
1

私はObjective Cでこのポリラインを動作させようとしてきました。私は見つけられずにどこでも得られるチュートリアルをすべて行ってきました。MKMapViewのポリラインが機能しない

CLLocationCoordinate2D coordinateArray2[2]; 
coordinateArray2[1].longitude = 176.8773669; 
coordinateArray2[0].longitude = 176.88151896; 
coordinateArray2[0].latitude = -39.668593; 
coordinateArray2[1].latitude = -39.67018069; 
_route1Line = [MKPolyline polylineWithCoordinates:coordinateArray2 count:2]; 
[_GPSView setDelegate:self]; 
[_GPSView addOverlay:_route1Line]; 
_testlabel.text = [NSString stringWithFormat:@"%f", coordinateArray2[0].longitude]; 

誰でも間違っていると見ることができますか?

ヘッダー:

#import <UIKit/UIKit.h> 
#import <MapKit/MapKit.h> 


extern int routenumber; //holds current route ID 

extern BOOL inRoute; //holds if on route or not 

extern int followYou; //holds if the app should follow the user or predefined coordinates 

extern NSArray *routeHolder; //holds array of routes 

@interface ViewController : UIViewController <MKMapViewDelegate> 

@property (weak, nonatomic) IBOutlet MKMapView *GPSView; //adding the map view to the controller 

@property (nonatomic, retain) MKPolyline *route1Line; //line for this route 

@property (weak, nonatomic) IBOutlet UILabel *testlabel; 

@end 
+0

申し訳ありませんが、コメントを無視し – Jobalisk

答えて

1

を:

- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay 
{ 
    MKOverlayPathRenderer *theOverlayPathRenderer; 
    { 
     theOverlayPathRenderer = [[MKPolylineRenderer alloc] initWithPolyline:overlay]; 
     theOverlayPathRenderer.lineWidth = ...; 
     theOverlayPathRenderer.fillColor = ...; 
     theOverlayPathRenderer.strokeColor = ...; 
    } 
    return theOverlayPathRenderer; 
} 
0

私はあなたのコードを実行することはできませんので、私は、現時点ではマックではないんだけど、あなたはMKPolylineの無事を作成しましたように見えますが、あなたが不足していますMKPolylineView。その後

_polylineView = [MKPolylineView alloc] initWithPolyline:route1Line]; // Declare it in your header file or in the implementation's interface. 
_polylineView.strokeColor = [UIColor redColor]; 
_polylineView.lineWidth = 5.0 

あなたはMKMapViewDelegateに準拠し、MapViewの実装を確認してください:あなたはMKMapViewDelegateの次のメソッドを実装する必要がありviewForOverlay

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id<MKOverlay>)overlay { 
    return _polylineView; 
} 
+0

あなたは推奨されていないメソッドを提案しています。私の答えをよく見てください。 – OlDor

関連する問題