关闭

ios 调用系统的地图

标签: ios系统地图
206人阅读 评论(0) 收藏 举报
分类:
NSString *string = @"http://maps.apple.com/maps?saddr=39.98,116.31&daddr=41.59,117.40";
[[UIApplication sharedApplication]  openURL:[NSURL URLWithString:string]];

ios6以下我们一般用google地图来导航,但ios6中调用会有点问题,会打开web浏览器再询问之类的,不直观友好。所以在ios6中建议直接用apple map。本来调用apple map应该和调用google map类似,但使用:

http://maps.apple.com/maps?saddr=%f,%f&daddr=%f,%f 会提示无法定位,不知道为什么?

使用maps://saddr=%f,%f&daddr=%f,%f 会找不到当前位置,也不清楚原因?

不过还是找到了解决方法,如下(包括两种地图调用方式)

但是有时候会有问题
if (SYSTEM_VERSION_LESS_THAN(@”6.0”)) { // ios6以下,调用google map
NSString *urlString = [[NSString alloc]
initWithFormat:@”http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f&dirfl=d“,
cutLat,cutLon,stationLat,stationLon];
NSURL *aURL = [NSURL URLWithString:urlString];
[urlString release];
[[UIApplication sharedApplication] openURL:aURL];
} else { // 直接调用ios自己带的apple map
CLLocationCoordinate2D to;
to.latitude = stationLat;
to.longitude = stationLon;
MKMapItem *currentLocation = [MKMapItem mapItemForCurrentLocation];
MKMapItem *toLocation = [[MKMapItem alloc] initWithPlacemark:[[[MKPlacemark alloc] initWithCoordinate:to addressDictionary:nil] autorelease]];
toLocation.name = @”Destination”;
[MKMapItem openMapsWithItems:[NSArray arrayWithObjects:currentLocation, toLocation, nil] launchOptions:[NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:MKLaunchOptionsDirectionsModeDriving, [NSNumber numberWithBool:YES], nil] forKeys:[NSArray arrayWithObjects:MKLaunchOptionsDirectionsModeKey, MKLaunchOptionsShowsTrafficKey, nil]]];
[toLocation release];
}

define

SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice
currentDevice]
systemVersion]
compare:v
options:NSNumericSearch] ==
NSOrderedAscending)

文章链接:http://blog.sina.com.cn/s/blog_9c3c519b010146py.html

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:36402次
    • 积分:695
    • 等级:
    • 排名:千里之外
    • 原创:26篇
    • 转载:50篇
    • 译文:0篇
    • 评论:5条
    最新评论