Say*_*ali 3 iphone maproute mapkit ios ios6-maps
我想在地图上显示地图和绘制路线.我的应用程序支持ios 4 plus.那么我应该如何使用地图来处理ios 6以及之前的工作.另外我想知道sholud我在我的应用程序中使用自定义mapview来显示地图和路线,或者我应该使用
[[UIApplication sharedApplication] openURL:]
Run Code Online (Sandbox Code Playgroud)
我从来没有用过MapKits.所以请提供任何教程.如果有任何可以使用的rd方库,请告诉我.
如果您不想要应用内地图.使用以下内容:
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]];
}
Run Code Online (Sandbox Code Playgroud)
这将打开地图应用程序并检查它是ios5还是ios6.
对于ios5,我使用了LocalizedCurrentLocation这篇文章http://www.martip.net/blog/localized-current-location-string-for-iphone-apps
对于ios6,我使用CLGeocoder获取地标,然后使用它和当前位置打开地图.
记得添加CoreLocation.framework和MapKit.framework
| 归档时间: |
|
| 查看次数: |
9251 次 |
| 最近记录: |