2012-11-06 49 views
3

我想在地图上显示地图&绘制路线。我的应用程序支持ios 4 plus。那么我应该如何使用地图来处理iOS 6以及之前的工作。此外,我想知道我sholud使用自定义的MapView在我的应用程序来显示地图&路线或我应该使用如何在ios 6的地图上绘制路线?

[[UIApplication sharedApplication] openURL:] 

我从来没有用户MapKits。所以请提供任何教程。另外让我知道是否有任何可用的第三方图书馆。

回答

1
+0

如果这帮助了你,请把它标记为接受 –

5

如果你不不想要应用内地图。使用以下内容:

NSString *destinationAddress = @"Amsterdam"; 

Class itemClass = [MKMapItem class]; 
if (itemClass && [itemClass respondsToSelector:@selector(openMapsWithItems:launchOptions:)]) { 

    CLGeocoder *geocoder = [[CLGeocoder alloc] init]; 
    [geocoder geocodeAddressString:destinationAddress completionHandler:^(NSArray *placemarks, NSError *error) { 
     if([placemarks count] > 0) { 

      MKPlacemark *placeMark = [[MKPlacemark alloc] initWithPlacemark:[placemarks objectAtIndex:0]]; 

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

      MKMapItem *mapItem2 = [MKMapItem mapItemForCurrentLocation]; 


      NSArray *mapItems = @[mapItem, mapItem2]; 

      NSDictionary *options = @{ 
     MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving, 
     MKLaunchOptionsMapTypeKey: 
      [NSNumber numberWithInteger:MKMapTypeStandard], 
     MKLaunchOptionsShowsTrafficKey:@YES 
      }; 

      [MKMapItem openMapsWithItems:mapItems launchOptions:options]; 

     } else { 
      //error nothing found 
     } 
    }]; 
    return; 
} else { 

    NSString *sourceAddress = [LocalizedCurrentLocation currentLocationStringForCurrentLanguage]; 

    NSString *urlToOpen = [NSString stringWithFormat:@"http://maps.google.com/maps?saddr=%@&daddr=%@", 
       [sourceAddress stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], 
       [destinationAddress stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlToOpen]]; 
} 

这将打开地图应用程序并检查它是否是ios5或ios6。

对于iOS5的我用的是LocalizedCurrentLocation从这个帖子http://www.martip.net/blog/localized-current-location-string-for-iphone-apps

对于iOS6的我用CLGeocoder拿到标,然后打开它的地图和当前位置。

记住添加CoreLocation.frameworkMapKit.framework

+0

您好。你可以给我一个想法,我怎么能得到一个地图内的应用程序描绘的导航路线和驾驶方向...请帮助。因为我用你的上面的代码,但它会带我离开我的本地应用程序,我不能暨回到我的应用程序,然后检查路线或地图后..谢谢! – nikesh

+0

我的帖子的第一行:'如果你不想要一个应用内地图。'做一个应用内导航地图并不容易。检查这篇文章的一些信息http://stackoverflow.com/questions/2834523/drawing-a-route-in-mapkit-in-iphone-sdk –