浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
公交路线信息检索简介

开发者可以通过POI检索获取公交类型(公交车,地铁)的POI信息,根据POI对应的UID请求BusLineSearch检索详细的公交路线信息(如:该线路的站点数、各站点名称、参考票价等)。


公交路线信息检索示例

.POI检索获取公交路线UID
1. 发起检索

/**
 * 在"北京"市检索"963"POI信息
 */
mPoiSearch.searchInCity(new PoiCitySearchOption()
        .city("北京") //必填字段
        .keyword("963")); //必填字段

2. 在POI检索结果的回调中获取公交线路的UID 在V5.1.0之前的SDK版本中,通过PoiInfo.type字段获取Poi点类型,其中 公交车路线和地铁路线对应PoiInfo.type字段分别为POITYPE.BUS_LINE(2), POITYPE.SUBWAY_LINE(4)。

@Override
public void onGetPoiResult(PoiResult poiResult) {
    if (poiResult == null || poiResult.error != SearchResult.ERRORNO.NO_ERROR) {
        return;
    }
    //遍历所有POI,找到类型为公交线路的POI
    for (PoiInfo poi : poiResult.getAllPoi()) {
        if (poi.type == PoiInfo.POITYPE.BUS_LINE ||poi.type == PoiInfo.POITYPE.SUBWAY_LINE) {
            //获取该条公交路线POI的UID  
            busLineId = poi.uid;
            break;
        }
    }
}

自V5.1.0起,获取Poi点类型的方式发生了变化,PoiInfo.type字段返回null,应通过PoiInfo.getPoiDetailInfo.getTag方法获取tag字段来匹配。tag字段的取值请参考POI分类。 另外,需要在构造PoiCitySearchOption对象时设置scope字段值为2。 示例如下:

mPoiSearch.searchInCity(new PoiCitySearchOption()
      .city("北京") //必填字段
      .keyword("963") //必填字段
      .scope(2));

POI检索详细介绍请查看POI检索

.BusLineSearch检索公交线路详细信息
发起BusLineSearch示例如下:

mBusLineSearch.searchBusLine(new BusLineSearchOption()
        .city("北京")
        .uid(busLineId));

.开发者可以调用开源的BusLineOverlay代码快速高效地在地图上展示检索结果。

@Override
public void onGetBusLineResult(BusLineResult busLineResult) {
    if (busLineResult == null || busLineResult.error != SearchResult.ERRORNO.NO_ERROR) {
        return;
    }
    overlay.setData(busLineResult);
    overlay.addToMap();
    overlay.zoomToSpan();
}

效果如图:

Screenshot_1543399473_1.png

BusLineResult详情

BusLineResult包含线路 ID、线路名称、线路坐标、所属公交公司、首班车时间、末班车时间、全程里程、起步价、全程票价、是否有月票、沿途站点列表、分段信息。

  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消