2012-09-21 2 views

답변

4

나는 지난주에이 일을 조사해 보았고 그렇게 할 방법을 찾지 못했습니다. 목적지를 줄 수있는 것처럼 보입니다. 좌표를 정렬 할 수있는 것보다 많은 것을 제공 할 수 있지만 항상 시작 위치가 현재 위치라고 가정합니다. 현재 시작 위치에 있지 않을 때 여행 계획을 세울 때 제한적입니다. (하지만 어쩌면 나는 그것이 어떻게되는지 전혀 모르겠다. 누군가가 나를 맞출 수 있기를 바란다.)

iOS 6의 라우팅 옵션을 살펴본 후 여기에 결과를 수집했다 ...

How would you providing routing for directions between points on a map? What are the missing pieces?

당신은 아직도 당신이 원하는 정확한 라우팅 애플지도를 열지 못할 수 있습니다, 그러나 아마 당신은 당신의 자신의 예를 MKMapView에 오버레이 및 주석 경로를 그릴 수 있습니다. 그것은 지금 당신이 할 수있는 최선일 것입니다.

다음은 위치로 연결하고 목적지에 대한 레이블을 좌표로만 보내는 대신 제공하는 코드입니다. 전체 주소 정보가있는 레이블에 단순히 대상을 지정하면 작동하지 않으므로 그 값을 제공합니다. 애플지도가 그렇게하지 않기 때문에

if (flag != DirectionsFlag_PublicTransit && itemClass && [itemClass respondsToSelector:@selector(openMapsWithItems:launchOptions:)]) { 
    NSDictionary *address = @{ (NSString *)kABPersonAddressStreetKey : location.title }; 
    MKPlacemark *destinationPlacemark = [[MKPlacemark alloc] initWithCoordinate:location.coordinate addressDictionary:address]; 

    MKMapItem *destinationMapItem = [[MKMapItem alloc] initWithPlacemark:destinationPlacemark]; 
    if (flag == DirectionsFlag_Driving) { 
     [destinationMapItem openInMapsWithLaunchOptions:@{MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving}]; 
    } 
    else if (flag == DirectionsFlag_Walking) { 
     [destinationMapItem openInMapsWithLaunchOptions:@{MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeWalking}]; 
    } 
} 

이 코드는 특히 대중 교통 길 찾기를 처리하지 않습니다. 대신 이전에 사용했던 URL로 Google지도를 열어서 Safari를 열었습니다. 플래그는 운전, 도보 또는 대중 교통의 열거 형 값입니다. 위치는 제목과 좌표 등 다양한 세부 정보가 포함 된 모델입니다.

+2

MKMapItem :: openMapsWithItems의 문서에서 다음과 같이 말합니다 : "launchOptions 사전에 MKLaunchOptionsDirectionsModeKey 옵션을 지정하면 mapItems 배열에 항목이 두 개만 있어야합니다. 배열에 항목이 하나만 있으면지도 앱에서 길 찾기를 생성합니다 사용자의 현재 위치에서지도 항목에 의해 지정된 위치로 이동합니다. 배열에 두 개의 항목이 포함되어있는 경우지도 앱은 첫 번째 항목의 위치에서 두 번째 항목의 위치까지 길을 생성합니다. " 따라서 두 개의 위치 집합을 openInMapsWithLaunchOptions에 전달하면 작동합니다. –

+0

샘플 코드를 제공 할 수 없지만 Objective-C 구문이 혼란 스럽습니다 (저는 Monotouch/C# 사람입니다). –

관련 문제