您当前的位置: iOS导航SDK > 开发指南 > 传入外部GPS功能
传入外部GPS功能

简述

当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 showPage:BNaviUI_NormalNavi delegate:self extParams:nil];
    //开始发送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;
}