MKPolyLine在MAP上不可见

时间:2011-11-21 11:44:22

标签: iphone mapkit

我有以下代码......

DistanceInformation *distanceInformation=[[DistanceInformation alloc]init];

    NSArray  *latLongArray=[distanceInformation calculateDistance];
    [distanceInformation release];
    NSLog(@"lat l %@",latLongArray);
    NSUInteger length,count;
    length = [[latLongArray objectAtIndex:0] count];


    //Calcualte center of the map based on current location and airport location
    CLLocationCoordinate2D centerOfMap;

    centerOfMap.latitude = (27.1766700 + 28.6361600)/2;
    centerOfMap.longitude = (78.0080700 + 78.0526500)/2;

    //Set map span according to the distance between airport and user location
    CGFloat zoomingLevel;

    //set the zoom level of the map according to the distance to airport
    if([[latLongArray objectAtIndex:2] intValue] <= 50)
        zoomingLevel = 0.2;
    else if(([[latLongArray objectAtIndex:2] intValue] > 50)&&([[latLongArray objectAtIndex:2] intValue] <= 100))
        zoomingLevel = 0.6;
    else if(([[latLongArray objectAtIndex:2] intValue]> 100)&&([[latLongArray objectAtIndex:2] intValue] <= 500))
        zoomingLevel = 1.7;
    else if(([[latLongArray objectAtIndex:2] intValue] > 500)&&([[latLongArray objectAtIndex:2] intValue] <= 1000))
        zoomingLevel = 2.0;
    else 
        zoomingLevel = 2.5;

    NSLog(@"Center of map: %f, %f",centerOfMap.latitude, centerOfMap.longitude);
    MKCoordinateRegion region;
    MKCoordinateSpan span;
    span.latitudeDelta=zoomingLevel;
    span.longitudeDelta=zoomingLevel;

    region.span = span;
    region.center = centerOfMap;

    [mapView setRegion:region animated:TRUE];
    [mapView regionThatFits:region];

    CLLocationCoordinate2D  coords[length];

    for (count = 0; count<length; count++) {
        NSLog(@"coo ");
        coords[count] = CLLocationCoordinate2DMake([[[latLongArray objectAtIndex:0] objectAtIndex:count] doubleValue], [[[latLongArray objectAtIndex:1] objectAtIndex:count] doubleValue]);
    }



    //Display polyline containing route points as an overlay over the mapview
    MKPolyline *polyLine=[MKPolyline polylineWithCoordinates:coords count:length];
    NSLog(@"polyLine.pointCount %d",polyLine.pointCount)    ;
    [mapView addOverlay:polyLine];
    [polyLine release]; 

但折线在地图上不可见。使用我检查过的值初始化折线。

1 个答案:

答案 0 :(得分:1)

Noob错误在我身边......忘了实施MKMapViewDelegate方法..

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id < MKOverlay >)overlay{

}