2013-02-11 55 views
4

我在我的應用程序和我的視圖中使用Apple Map,我想顯示從用戶位置到當前位置的駕駛方向,現在我只想要所有這一切只在我的應用程序即ie我可以顯示在mapview上的駕駛方向,我曾嘗試使用蘋果地圖應用程序,但我從我的應用程序調用它後,它需要我到蘋果的地圖應用程序,我得到的駕駛方向,但我不能返回回我的應用程序,所以我想,我可以做我的應用程序本身的東西,這樣我可以得到我的當前視圖自己的行車路線..如何獲取我的應用程序內的駕駛方向iOS6

NSString* addr = [NSString stringWithFormat:@"http://maps.apple.com/maps?daddr=%1.6f,%1.6f&saddr=%1.6f,%1.6f",coordinate.latitude,coordinate.longitude,mapView.userLocation.coordinate.latitude,mapView.userLocation.coordinate.longitude]; 
     NSURL* url = [[NSURL alloc] initWithString:[addr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
     [[UIApplication sharedApplication] openURL:url]; 

這段代碼帶我到蘋果的地圖應用程序從我的本地應用程序,但我不能直接返回到我的app.is有一個可能的解決方案,以便我可以回到我的APP後,獲取駕駛方向? (webview沒有爲我工作。我可以在蘋果的應用程序或什麼添加一個後退按鈕)。請幫助....非常感謝!

或者請任何人都可以給我一個更好的代碼來實現,以便我可以在我的應用程序中完成所有這些操作?

我想一個在應用程序的地圖描繪導航路線和行車路線...

+0

你的意思是iOS4的(你已經標記)或iOS6的(你問過)? – Craig 2013-02-11 19:30:56

+0

@克雷格:對不起,在我的身邊加上拼寫錯誤。 – nikesh 2013-02-12 04:17:04

+0

是的,我認爲iOS6更有可能。在這種情況下,您必須小心在非Google地圖上使用Google的數據。這違背了他們的服務條款,雖然我不知道他們是否或如何執行它,但最好避免讓他們失望。 – Craig 2013-02-12 09:07:03

回答

2

這不是實現方向的路上自己的地圖顯示出來,

我已經做了一個樣本你可以覆蓋所有的iOS版本,新的谷歌地圖和iOS 6 tom tom地圖。

這就是:

if([[[UIDevice currentDevice] systemVersion] compare:@"6.0" options:NSNumericSearch] == NSOrderedDescending){ 
     //6.0 or above 
     NSString *Destinationlatlong =[NSString stringWithFormat:@"%@,%@",your.latitude,your.longitude]; 

     NSString* addr = [NSString stringWithFormat:@"comgooglemaps://?saddr=%f,%f&daddr=%@",[AppDelegate zDelegate].location.coordinate.latitude,[AppDelegate zDelegate].location.coordinate.longitude, Destinationlatlong]; 
     addr=[addr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

     NSURL* url = [[[NSURL alloc] initWithString:addr]autorelease]; 
     // NSLog(@"url %@",url); 
     if ([[UIApplication sharedApplication]canOpenURL:url]) { 
      [[UIApplication sharedApplication] openURL:url]; 
     }else{ 
      CLLocationCoordinate2D coords = 
      CLLocationCoordinate2DMake([your.latitude doubleValue],[your.longitude doubleValue]); 
      MKPlacemark *placeMark = [[MKPlacemark alloc] 
             initWithCoordinate:coords addressDictionary:nil]; 


      MKMapItem *destination = [[MKMapItem alloc]initWithPlacemark:placeMark]; 

      [destination openInMapsWithLaunchOptions:nil]; 
     } 
    }else{ 
     NSString *Destinationlatlong =[NSString stringWithFormat:@"%@,%@",your.latitude,your.longitude]; 
     NSString* addr = [NSString stringWithFormat:@"http://maps.google.com/maps?saddr=Current+Location&daddr=%@",Destinationlatlong]; 
     addr=[addr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

     NSURL* url = [[[NSURL alloc] initWithString:addr]autorelease]; 
     // NSLog(@"url %@",url); 
     if ([[UIApplication sharedApplication]canOpenURL:url]) { 
      [[UIApplication sharedApplication] openURL:url]; 
     }else{ 
      UIAlertView *alert=[[[UIAlertView alloc] initWithTitle:@"Warning!" message:@"Device does not support this functionality" delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles: nil]autorelease] ; 
      [alert show]; 
     } 
    } 
+1

Thxs很多... @ sree charan它爲我工作了一點點change.Thxs! – nikesh 2013-02-13 12:59:17

1

這應該讓你開始。總之,在得到JSON從谷歌API驅動指示,分析它,並使用MKPolyline http://iosguy.com/2012/05/22/tracing-routes-with-mapkit/

+0

如果niks2000真的意味着iOS6,那麼在蘋果地圖上使用Google的行車路線不是(合法的)選項。 – Craig 2013-02-11 19:31:45

+0

我只與蘋果的地圖工作,而不是與谷歌的。如果你有任何鏈接,那麼這將是非常有益的..thxs的幫助anyhow.cheers! – nikesh 2013-02-12 03:53:02