在ios6中调用苹果地图用于导航

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)


如果不想使用苹果自带的地图的话,也可以使用第三方的地图,如百度;
百度地图的URI API:http://developer.baidu.com/map/uri-intro.htm#idmykey2
使用如下:

baidumap://map/direction?origin=latlng:34.264642646862,108.95108518068|name:我家&destination=大雁塔&mode=driving&region=西安 //调起百度PC或Web地图,展示“西安市”从(34.264642646862,108.95108518068 )“我家”到“大雁塔”的驾车路线

注意调用前,需要判断是否已安装百度地图: 使用

if ([[UIApplicationsharedApplication] canOpenURL:[NSURLURLWithString:@"baidumap://map/"]]){ }

其他的如高德、搜狗、图吧等没有找到对应的URI API。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
在Python调用苹果地图的代码可以使用苹果提供的MapKit库来实现。MapKit库是苹果开发的用于iOS和macOS平台上显示地图和处理地理位置信息的框架。 以下是一个简单的示例代码,演示如何在Python使用MapKit库调用苹果地图: ```python import objc from PyObjCTools import AppHelper # 导入MapKit框架 objc.loadBundle('MapKit', globals(), bundle_path=objc.pathForFramework('/System/Library/Frameworks/MapKit.framework')) # 创建一个MapView对象 map_view = objc.lookUpClass('MKMapView').alloc().initWithFrame_(((0, 0), (400, 400))) # 设置地图的显示区域 region = objc.lookUpClass('MKCoordinateRegion') coordinate = objc.lookUpClass('CLLocationCoordinate2D') center = coordinate.alloc().init() center.latitude = 37.331789 center.longitude = -122.029620 span = coordinate.alloc().init() span.latitudeDelta = 0.01 span.longitudeDelta = 0.01 map_region = region.regionWithCenter_span_(center, span) map_view.setRegion_animated_(map_region, True) # 将MapView添加到窗口显示 window = objc.lookUpClass('NSWindow').alloc().initWithContentRect_styleMask_backing_defer_(((0, 0), (400, 400)), 15, 2, False) window.contentView().addSubview_(map_view) window.makeKeyAndOrderFront_(None) # 运行主循环 AppHelper.runEventLoop() ``` 请注意,上述代码是使用PyObjC库来调用Objective-C代码的方式。在运行代码之前,需要确保已经安装了PyObjC库,并且在运行代码时,需要在macOS平台上执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值