Search code examples
objective-cmkmapviewmkpolyline

Polyline for MKMapView not working


I've been trying and trying to get this poly line to work in Objective C. I've been through every tutorial I can find and gotten nowhere, I cant see whats wrong with it.

    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];

can anyone see what is wrong?

header:

#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

Solution

  • You should implement the following method of MKMapViewDelegate:

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