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

iOS 地图SDK

百度地图SDK是一套应用程序接口, 通过调用地图SDK接口,开发者可以轻松访问百度地图的服务和数据,构建功能丰富、交互性强的地图类应用程序。

跨城综合公交线路规划简介

自v3.1.0起,新增跨城综合公交线路规划MassTransit,支持市内和跨城的公交线路规划,可检索火车、飞机、公交、大巴等公共交通线路。

根据起终点的关键字和城市名称,以及根据不同的方案选择多种策略,获取起终点之间的骑行路线规划结果,来完成跨城公共交通线路规划。规划结果包含不同出行放的多种策略(如火车、飞机、公交、大巴)、路线长度、耗时、途径的每个路段的详细信息等。

此跨城公交线路规划包含旧公交线路规划transit(支持城市内公交规划)的全部功能,旧公交线路规划将废弃,建议使用新版跨城公交线路规划。

可以使用BMKRouteSearch类的massTransitSearch方法,发起综合公交路线规划请求,结果会通过- (void)onGetMassTransitRouteResult:(BMKRouteSearch*)searcher result:(BMKMassTransitRouteResult *)result errorCode:(BMKSearchErrorCode)error 方法回调,通过error判断检索是否发送成功,通过解析result字段获取具体的规划结果。

若需要在地图上展示路线规划结果,可以利用BMKPointAnnotation绘制起终点及线路拐点,利用BMKPolyline来绘制路线。

公交换乘路线规划示例

公交换乘的线路规划实现方式如下(详细代码可参照官方Demo:RouteSearchDemoViewController)

1初始化并发起检索
    //初始化检索对象
    _routeSearch = [[BMKRouteSearch alloc] init];
    //设置delegate,用于接收检索结果
    _routeSearch.delegate = self;
    //构造公共交通路线规划检索信息类
    BMKPlanNode* start = [[BMKPlanNode alloc]init];
    start.name = @"北京";
    start.cityName = @"天安门";
    BMKPlanNode* end = [[BMKPlanNode alloc]init];
    end.name = @"天津";
    end.cityName = @"天津站";
    BMKMassTransitRoutePlanOption *option = [[BMKMassTransitRoutePlanOption alloc]init];
    option.from = start;
    option.to = end;
 
    //发起检索
    BOOL flag = [_routesearch massTransitSearch:option];
 
    if(flag) {
        NSLog(@"公交交通检索(支持垮城)发送成功");
    } else {
        NSLog(@"公交交通检索(支持垮城)发送失败");
    }
2实现现delegate方法,获取结果
/**
 *返回公共交通路线检索结果(new)
 *@param searcher 搜索对象
 *@param result 搜索结果,类型为BMKMassTransitRouteResult
 *@param error 错误号,@see BMKSearchErrorCode
 */
- (void)onGetMassTransitRouteResult:(BMKRouteSearch*)searcher result:(BMKMassTransitRouteResult*)result errorCode:(BMKSearchErrorCode)error
{
    NSLog(@"onGetMassTransitRouteResult error:%d", (int)error);
    if (errorCode == BMK_SEARCH_NO_ERROR) {
        //成功获取结果
    } else {
        //检索失败
    }
}