2014-09-25 5 views

답변

3

다음은 참고 용으로 작성한 것입니다.하지만 사과의 경우 URL 스키마를 통해 탐색을 시작할 수있는 방법을 찾지 못했습니다.

+ (void)navigateToLocation:(CLLocation*)_navLocation { 
    if ([[UIApplication sharedApplication] canOpenURL: 
     [NSURL URLWithString:@"comgooglemaps://"]]) { 
     NSString *string = [NSString stringWithFormat:@"comgooglemaps://?daddr=%f,%f&directionsmode=driving",_navLocation.coordinate.latitude,_navLocation.coordinate.longitude]; 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:string]]; 
    } else { 
     NSString *string = [NSString stringWithFormat:@"http://maps.apple.com/?ll=%f,%f",_navLocation.coordinate.latitude,_navLocation.coordinate.longitude]; 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:string]]; 
    } 
} 
+0

위도에지도 및 센터 위치를 엽니 다. 그러나 내비게이션을 시작하지 않습니다. ( – htafoya

2

올바른지, Google과 Apple 모두 사용자 입력이 필요하지만 이동 버튼을 누르기 만하면됩니다.

당신은 시작과 끝 위치를 모두 지정하려면 다음 형식을 사용에 대한

comgooglemaps-x-callback://?saddr=&daddr=<Your Location> 
+0

%%이어야하며 공백을 사용하십시오. – htafoya

1

스위프트 3 헬퍼 클래스 :

애플지도 :

http://maps.apple.com/maps?saddr=Current%20Location&daddr=<Your Location> 

Google지도를 Apple지도 또는 Google지도 탐색 시작

struct LinksHelper { 
    static func startNavigation(coordinate: CLLocationCoordinate2D) { 
     struct Links { 
      static let kGoogleMapsSchema = "comgooglemaps://" 
      static let kGoogleMaps = "\(kGoogleMapsSchema)?daddr=%f,%f&directionsmode=driving" 
      static let kAppleMaps = "https://maps.apple.com/?saddr=Current Location&daddr=%f,%f&z=10&t=s" 
     } 

     var path: String! 

     if let googleMapsSchemaUrl = URL(string:Links.kGoogleMapsSchema), UIApplication.shared.canOpenURL(googleMapsSchemaUrl) { 
      path = Links.kGoogleMaps 
     } else { 
      path = Links.kAppleMaps 
     } 
     guard let str = String(format: path, coordinate.latitude, coordinate.longitude).addingPercentEncoding(
      withAllowedCharacters: .urlQueryAllowed) else { 
       return 
     } 

     guard let url = URL(string: str) else { 
      return 
     } 

     UIApplication.shared.openURL(url) 
    } 
}