基于iOS的地图类APP的开发应用研究

来源 :无线互联科技 | 被引量 : 0次 | 上传用户:baichunbo
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:随着移动互联网的快速发展和人们对APP便利性的需求,旅游导航类、物流类、生活服务类APP在应用中标配了地图功能,这些功能越来越受到人们的欢迎,发挥着越来越重要的作用。另一方面,基于iOS系统的便携设备,由于其便携性、稳定性和应用丰富性,拥有着大量的中高端用户群体。因此,对基于iOS系统的地图类应用进行研究,掌握其开发细节显得尤为重要。文章以百度地图为例,研究了基于iOS的地图类APP的开发应用。
  关键词:地图;iOS;API;SDK;开发
  近年来,基于iOS系统的智能手机用户爆炸式地增长,涉及地图功能需求的旅游导航类、物流类、生活服务类APP使用频率越来越高,要求开发者必须能熟练运用地图公司提供的地图API来快速开发地图功能。目前主流的地图公司均提供地图开发API[1]。本文主要以百度地图API为例,阐述如何在封闭的iOS系统中,进行地图类APP的开发应用。
  百度地图提供了非常完善的API,我们可以根据自己项目的需求选择百度地图官方提供的API,其中包含的iOS SDK开发工具与服务,提供了应用软件开发中所需的地图功能的实现、定位、搜索、路线规划等,可应用于大多数终端设备和大多数种操作系统下的地图应用开发[2]。本文阐述如何运用百度iOS SDK创建地图以及添加相关服务功能。
  1 在APP中创建地图功能
  1.1 引用地图API
  在引用地图API文件之前,首先要去注册百度地图开发者,创建百度地图开发应用,得到百度地图API密匙。在cocoaPods导入百度SDK。
  Platfor:ios,’6.0’
  Pod ‘BaiduMapKit’
  然后对项目plist进行配置,并在AppDelegate.m中导入头文件:
  #import
  运用didFinishLaunchingWithOptions方法创建一个百度地图对象,代码如下:
  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  //创建并初始化一个对象
  BMKMapManager *MyManager = [[BMKMapManager alloc] init];
  //启动地图
  BOOL MySuccess = [MyManager start:@”百度地图AK” generalDelegate:nil];
  if (!MySuccess) {
  NSLog(@”创建地图失败”);
  }
  return YES;
  }
  创建百度地图主对象时,将generalDelegate的参数设置为self,主要是为了在onGetNetworkState和onGetPermissionState两个函数中侦听网络状态和获得密匙(key)的授权认证状态,代码如下:
  -(void)onGetNetworkState:(int)MyError
  {
  if (0 == MyError) {
  NSLog(@”地图系统联网成功!”);}
  else{
  NSLog(@”onGetNetworkState启动失败,编号%d”, MyError); }
  }
  -(void)onGetPermissionState:(int) MyError
  {
  if (0 == MyError) {
  NSLog(@”地图系统授权成功!”); }
  else {
  NSLog(@”onGetPermissionState启动失败,编号: %d”, MyError);}
  }
  创建地图截图如图1所示。
  1.2 創建并初始化BMKMapView
  在引入BaiduMapAPI_Map/BMKMapComponent.h头文件后,声明BMKMapView并添加到父视图上,进行地图初始化:
  BMKLocationViewDisplayParam *LclShow = [[BMKLocationViewDisplayParam alloc] init];
  LclShow.isRotateAngleValid = true;
  LclShow.isAccuracyCircleShow = true;
  LclShow.locationViewOffsetX = 0;
  LclShow.locationViewOffsetY = 0;
  [_mapView updateLocationViewWithParam: LclShow];
  完成以上步骤,运行即可看到生成的百度地图。
  2 向地图中添加覆盖物、工具、控件
  在主控制器中添加覆盖物、工具和自定义UI控件,可实现外部操作与按钮等控件的响应事件方法。
  信息窗口、标注、矢量元素等均为覆盖物,其本身拥有地理坐标,如果我们对地图进行缩放操作、拖动地图操作,它们会发生相对应的变化。如果要增加覆盖物,可使用addOverlay()方法,如果要删除覆盖物,则使用removeOverlay()方法。   另外,百度地圖集成很强交互功能的“工具”,它涵盖有:测距工具DistanceTool、标注工具PushpinTool、区域缩放工具DragAndZoomTool。
  应注意的是,初始化“工具”类,必须按照地图所要求的实例参数来提供,才能使“工具”在该地图上生效。可以在地图上同时添加数个“工具”,但同一时刻仅有一个“工具”处于开启状态。
  区域缩放工具却可以自行配置是否自动关闭,而标注工具和测距工具在完成一次运行后会自动退出开启状态。
  var Lclmap = new BMap.Map(“container”); // 生成新的地图对象
  Lclmap.centerAndZoom(new BMap.Point((110.390, 50.870),12);//110.390表示经度,50.870表示纬度,显示地图
  var LclGongJu = new BMap.DistanceTool(Lclmap);
  LclGongJu.open();
  3 侦听事件
  百度地图API的事件机制中提供了addEventListener方法,每一个对象都包含该方法,并且运用这个方法来侦听对象的事件。addEventListener方法有2个参数:(1)侦听的事件名;(2)当事件触发时所需调用的函数。例如,Bmap.Map包含着mousemove,rightclick等事件。当这些事件被触发时,侦听函数会获得对应的事件参数[3]。
  4 自定义地图图层
  因为百度地图对隐私比较注重,通过截屏出来的图片没有地图图层。解决的思路是,百度地图API中有截图的方法,可以通过地图管理对象调截图方法,如果项目中需求图片还有除地图之外的信息,就需要将两个图片进行拼接,才能得到想要的图片。
  5 结语
  本文重点讨论了在iOS系统中,如何运用百度地图API创建地图功能,向地图中添加覆盖物、工具、控件,以及侦听事件、自定义图层。熟练运用和掌握这些地图API,对于快速在APP中内嵌地图功能,提高开发效率,降低地图类功能的开发成本具有重要意义和实践推广价值。
  [参考文献]
  [1]梁广荣,黎红.基于百度地图API的虚拟校园实现[J].廊坊师范学院学报(自然科学版),2012(6):47-49.
  [2]董杰,马宏琳.百度地图API的安卓开发技术研究[J].电脑知识与技术,2017(23):79-80.
  [3]赵鹏程,胡庆武,刘仙雄,等.面向iOS的移动端全景地图构建方法[J].地理与地理信息科学,2016(1):95-99.
  Abstract:With the rapid development of mobile Internet and people’s demand for APP convenience, travel navigation, logistics, and life service APPs are equipped with map functions in their applications. These functions are more and more popular and play a role. More and more important role. On the other hand, iOS-based portable devices have a large number of mid-to-high-end users due to their portability, stability and application richness. Therefore, it is especially important to study the map application based on iOS system and master the development details. This psper takes the Baidu map as an example, researches the development and application of maps APP based on iOS.
  Key words:map; iOS; API; SDK; development
其他文献
摘 要:区块链脱胎于比特币,2008年出现在大众视野,引发了热烈讨论和密切关注。经过10年的迭代发展,区块链技术不只是应用于比特币交易等金融领域中,在医疗、能源、保险等各行各业也得到了广泛应用。文章分析了区块链的特征,以2018年6月杭州互联网法院审理的信息网络传播权纠纷案为例,对我国司法领域的区块链电子存证进行个案分析,探讨了区块链电子存证的证据法价值。  关键词:区块链技术;去中心化;电子证据
期刊
摘 要:当前,国内高校高水平的文科类虚拟仿真实验室少之又少,且利用率不高。文章以福建农林大学为例,从教学设备和场所、教师资源、课程内容、教学理念与管理制度、校內外及校企资源5个方面实现资源共享,以期实现文科类虚拟仿真实验室利用最大化,提高其师生受益的广度和深度。  关键词:资源共享;文科类;虚拟仿真实验室  虚拟仿真技术包括虚拟现实和仿真两部分,其中虚拟现实是指利用计算机技术、网络技术、传感技术等
期刊
摘 要:“数据库原理”课程是广西师范大学 计算机科学与信息工程学院计算机专业及信息管理专业本科生的必修课,关系代数中的“除”运算是该课程的一个重难点。文章结合笔者多年的教学研究和实践,对关系代数“除”运算的教学进行了探讨,希望能够有益于该课程教学的研究。  关键词:“数据库原理”课程教学;关系代数;“除”运算;包含  广西师范大学计算机科学与信息工程学院在学生大二时会开设必修课程—“数据库原理”。
期刊
摘 要:文章首先通過跟踪调查的方式了解机械制造类毕业生的毕业去向;其次,用大数据分析机械制造类企业的招工难现象。在得出结论的基础上,针对机械制造类企业的招工难问题提出若干解决建议。  关键词:机械制造;毕业去向;招工难  1 机械制造类毕业生去向  文章以无锡科技职业学院2014届机械制造类专业的600名大学毕业生为研究对象,对其具体毕业去向进行跟踪调查研究。其中,从模具设计与制造专业选取200名
期刊
摘 要:文章结合南京林业大学图书馆微信订閱号的运营实践,从订阅人群和图文推送消息两个方面相关情况进行分析,指出微信公众订阅号是图书馆进行阅读推广的重要平台,并根据微信订阅号开展阅读推广的优势从组建推广团队、创造推广栏目、打造长效机制3个方面对高校图书馆利用微信公众平台开展阅读推广提出应用建议。  关键词:微信公众平台;阅读推广;图书馆  在十三届全国人大一次会议上,李克强总理代表国务院所作的《政府
期刊
摘 要:SPOC是近年来流行起来的混合了线上与线下学习的新型教学形式,文章通过研究SPOC平台建设和管理,以江苏食品药品职业技术学院为例,开展了线上線下混合式教学模式改革的实践和探索。  关键词:SPOC;课程建设;管理  现在,我们已处在“后MOOC”时期。大规模公共课程已经无法满足学生个性化学习的需求,小规模限制性在线课程(Small Private Online Course,SPOC)更适
期刊
摘 要:陶行知是中国著名的教育家,“人为一大事来,做一大事去;捧着一颗心来,不带半根草去。”这是陶先生为教育事业奉献一生的宣言。回顾陶先生所提出的各种教育思想、教育理念,都为中国教育界乃至世界的教育舞台上增添了绚烂的一笔。在职业教育的发展过程中,教学实践是必不可少的。文章就陶先生代表思想“教学做合一”结合现代学徒制教学实践模式,对陶行知教育思想的核心内容进行分析,并探讨陶行知教育思想对职业教育的深
期刊
摘 要:在“互联网+”背景下,线上教学与线下教学的混合教学模式受到关注。文章针对目前教学模式中存在的各类问题,提出以传统课堂教学为基点,依托互联网,以学生为中心,结合“三维建模与工程图”的课程特点,以碎片化知识点为切入,提供多样化的学习资源,采取多样化的教学传播方式,注重对学习活动和学习情境的构建,注重学习过程和学习效果反馈,促进高校课程的教学水平和教学质量。  关键词:互联网+;教学模式;三维建
期刊
摘 要:文章根据职业教育课程“实践理论一体化”的特点,依托电子商务行业,分析网店美工职业岗位典型工作任务与能力素养要求,重新架构微课程体系结构。将微信、微课有机结合,由任务来驱动教学过程,设计翻转课堂教学模式。并严格按照微课设计流程,开发出知识点成体系化、重点突出、趣味性强的微课,激发学生利用零碎时间进行个性化学习的兴趣,提高课程的教学质量。  关键词:微信公众平台;翻转课堂;微课  随着慕课和微
期刊
摘 要:文章从高职通信类技术课程混合式教学现状分析出发,结合“光纤传输系统运维与管理”教学设计案例,提出高职通信技术类课程的基于翻转课堂的线上线下设计思路,重点从知识图谱构建、碎片化关键知识点、课程内容重构、工单设计、活动策划6个步骤介绍了基于翻转课堂的混合式课程的改造方法。最后,结合教学案例对混合式课程教学中的一些问题作了分析。  关键词:高职;通信技术类课程;翻转课堂;混合式;设计  1 高职
期刊