• 上课班制:

    随到随学

  • 授课时间:

    全天

  • 授课对象:

    全体

  • 网报价格:¥99    课程原价:¥99
  • 咨询热线:400-998-6158
  • 授课地址:南通市人民中路23-6号新亚大厦
  • 课程详情

  • 机构简介
  • 地图信息
  • 预约试听

近年来,基于iOS系统的智能手机用户爆炸式地增长,涉及地图功能需求的旅游导航类、物流类、生活服务类APP使用频率越来越高,要求开发者*须能熟练运用地图公司提供的地图API来开发地图功能。目前主流的地图公司均提供地图开发API。本文主要以百度地图API为例,阐述如何在封闭的iOS系统中,进行地图类APP的开发应用。


百度地图提供了非常完善的API,我们可以根据自己项目的需求选择百度地图官方提供的API,其中包含的iOS SDK开发工具与服务,提供了应用软件开发中所需的地图功能的实现、定位、搜索、路线规划等,可应用于大多数终端设备和大多数种操作系统下的地图应用开发。本文阐述如何运用百度iOS SDK创建地图以及添加相关服务功能。


在引用地图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);}

}



在引入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];

完成以上步骤,运行即可看到生成的百度地图。


在主控制器中添加覆盖物、工具和自定义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();


百度地图API的事件机制中提供了addEventListener方法,每一个对象都包含该方法,并且运用这个方法来侦听对象的事件。addEventListener方法有2个参数:(1)侦听的事件名;(2)当事件触发时所需调用的函数。例如,Bmap.Map包含着mousemove,rightclick等事件。当这些事件被触发时,侦听函数会获得对应的事件参数[3]。


因为百度地图对隐私比较注重,通过截屏出来的图片没有地图图层。解决的思路是,百度地图API中有截图的方法,可以通过地图管理对象调截图方法,如果项目中需求图片还有除地图之外的信息,就需要将两个图片进行拼接,才能得到想要的图片。


本文重点讨论了在iOS系统中,如何运用百度地图API创建地图功能,向地图中添加覆盖物、工具、控件,以及侦听事件、自定义图层。熟练运用和掌握这些地图API,对于在APP中内嵌地图功能,提高开发效率,降低地图类功能的开发成本具有重要意义和实践推广价值。

更多培训课程,学习资讯,课程优惠等学校信息,请进入 南通科迅教育南通崇川区web培训 网站详细了解,免费咨询电话:400-998-6158

预约试听
  • 姓名: *
  • 性别:
  • 手机号码: *
  • QQ:
  • 微信:
  • 其它说明:
  • 验证码: *  看不清,请点击刷新
相关课程