2012-05-30 5 views
1

Google Directions API를 사용하는 데 문제가 있습니다. 나는 overview_polylines 문자열이 것은 작동Google 길 찾기 API지도에 폴리선이 추가되지 않았습니다.

NSString *allPolylines = [NSString stringWithFormat:[[[routes objectAtIndex:0] objectForKey:@"overview_polyline"] objectForKey:@"points"]]; 

을 받고는 JSON 문자열을 받고 그것을 분석하고있다. 지도에 추가하는 데 문제가 있습니다. 나는이 게시물을 http://iosguy.com/tag/directions-api/으로 사용하고 있는데, 정확히 내가 무엇을하고있는 것 같습니다.

나는

-(NSMutableArray *)decodePolyLine:(NSString *)encodedStr 

방법을 구현했습니다, 그리고 그것을 잘 작동합니다. NSLogged 결과 및 CLLocation 개체를 출력 해요 것처럼 보여줍니다.

문제는지도에 표시 할 수 없다는 것입니다. 이것은 내가 또한

[self mapView:_mapView viewForOverlay:polyLine]; 

에 명시 적으로 호출을 추가하는 시도

NSMutableArray *_path = [self decodePolyLine:allPolylines]; 
    NSInteger numberOfSteps = _path.count; 

    CLLocationCoordinate2D coordinates[numberOfSteps]; 
    for (NSInteger index = 0; index < numberOfSteps; index++) { 
     CLLocation *location = [_path objectAtIndex:index]; 
     CLLocationCoordinate2D coordinate = location.coordinate; 

     coordinates[index] = coordinate; 
    } 

    MKPolyline *polyLine = [MKPolyline polylineWithCoordinates:coordinates count:numberOfSteps]; 
    [_mapView addOverlay:polyLine]; 
    [self mapView:_mapView viewForOverlay:polyLine]; 

다음 코드입니다 :

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay { 
    MKPolylineView *polylineView = [[MKPolylineView alloc] initWithPolyline:overlay]; 
    polylineView.strokeColor = [UIColor redColor]; 
    polylineView.lineWidth = 1.0; 

    return polylineView; 
} 

마지막 메소드가 호출되는, 내가 NSLog를 사용하여 확인하지만, 지도에는 아무 것도 나타나지 않습니다.

의견이 있으십니까? 미리 감사드립니다.

답변

1

viewForOverlay을 직접 호출하지 않아도된다는 점을 제외하면 표시된 코드는 정상적으로 보입니다.

지도보기는 오버레이를 표시해야하는 경우 해당 위임 메서드를 호출합니다.

위임 메서드를 호출하지 않는 가장 간단한 이유는지도보기의 delegate 속성이 설정되어 있지 않기 때문입니다.

delegate 속성이 설정된 경우 좌표가 기대 한 것과 일치하는지 확인하고 반전되지 않았는지 확인하십시오 (위도와 경도의 반대).

확인할 사항 :
_mapView이 IBOutlet 인 경우 실제로 xib의지도보기에 연결되어 있는지 확인하십시오.

+0

그것에 대해 생각해 봤는데, 내가 생각하기에, 내가 확신하지 못 하겠지만, 내가 집에 도착했을 때 확인해 줄 대리자를 설정하지 않은 것 같아 .. 고마워! –

+0

그것은 그 것이었다. 그것은 지금 바보 같아요. 고마워요! –