浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

iOS 导航SDK

百度iOS 导航SDK为AiOS移动端应用提供了一套简单易用的导航服务接口,适用于iOS 2.1及以上版本。专注于为广大开发者提供最好的导航服务,通过使用百度导航SDK,开发者可以轻松为应用程序实现专业、高效、精准的导航功能。

简述

当SDK运行于无法获取GPS数据的设备时,可以利用其它GPS模块获取GPS信息,然后通过SDK提供的接口传入GPS数据发起导航或者巡航。

传入GPS信息

可以调用以下接口传入GPS数据:


//首先设置为外部GPS模式
[BNCoreServices_Location setGpsFromExternal:YES];
// 传入GPS数据
[BNCoreServices_Location setCurrentLocation:self.location];

传入外部GPS导航

在导航前需要算路,算路过程请参考路径规划部分,在算路成功后,不断地传入GPS信息,即可发起导航,代码如下:


//算路成功回调
-(void)routePlanDidFinished:(NSDictionary *)userInfo
{
    NSLog(@"算路成功");
    //设置为外部gps导航模式
    [BNCoreServices_Location setGpsFromExternal:YES];
    //显示导航UI
    [BNCoreServices_UI showNaviUI:BN_NaviTypeReal delegete:self isNeedLandscape:YES];
    //开始发送gps
    [self.externalGPSModel startPostGPS];
}

// self.externalGPSModel的方法,开启定时器不断向SDK抛送GPS信息
- (void)startPostGPS
{
    self.gpsIndex = 0;
    self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(postGPS) userInfo:nil repeats:YES];
    
    [self.timer fire];
}

//抛送GPS信息,其中self.gpsArray是元素为BNLocation的数组
- (void)postGPS
{
    if (!self.gpsArray || self.gpsArray.count == 0 || self.gpsArray.count <= self.gpsIndex) return;
    [BNCoreServices_Location setCurrentLocation:self.gpsArray[self.gpsIndex]];
    self.gpsIndex = (self.gpsIndex + 1)%self.gpsArray.count;
}