{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671508881582,"data":{"id":71712155,"title":"7.6 沿途批量深度信息搜索","slug":"wgvhh1","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"

简介

沿途批量深度信息搜索的前提条件,需要先进行沿途搜索,通过沿途搜索获取到需要查询深度信息的POIID列表。沿途批量深度信息搜索提升沿途搜查看信息时,对于深度信息的获取效率,协助用户更快完成出行决策。

场景图

沿途搜完成后,用户点击沿途路径上的POI图标发起沿途批量深度信息搜索,并将点击的POI的深度信息显示在左侧的卡片上。

时序图

初始化 & 反初始化

沿途搜索

关键参数

输入参数

沿途批量深度信息搜索

com.autonavi.gbl.search.model.SearchLineDeepInfoParam

ArrayList<String> com.autonavi.gbl.search.model.SearchLineDeepInfoParam.poiIds

LineDeepQueryType1 int com.autonavi.gbl.search.model.SearchLineDeepInfoParam.queryType

目前该接口仅支持批量搜索服务区、充电站、加油站、终点停车场推荐4种类型。

搜索模式

com.autonavi.gbl.search.model.SearchMode.SearchMode1

取值

描述

备注

SEARCH_MODE_ONLINE_ADVANCED

在线优先

当在线搜索出现异常,会自动转离线搜索

SEARCH_MODE_OFFLINE_ADVANCED

离线优先

若当前网络是wifi,会切到在线优先方式

SEARCH_MODE_ONLINE_ONLY

仅在线


搜索任务id

taskid外部需自己保证全局唯一

沿路径搜索观察者

com.autonavi.gbl.search.observer.IGSearchLineDeepInfoObserver

搜索结果回调参数

搜索结果pstResult返回值

com.autonavi.gbl.search.model.SearchLineDeepInfoResult

信息如表格所示,更多返回信息可参考SearchLineDeepInfoResult结构的成员描述。

ArrayList<LinePoiBase> com.autonavi.gbl.search.model.SearchLineDeepInfoResult.data

com.autonavi.gbl.search.model.LinePoiBase

String com.autonavi.gbl.search.model.LinePoiChild.id

String com.autonavi.gbl.search.model.LinePoiChild.name

LineDeepQueryType1 int com.autonavi.gbl.search.model.LinePoiBase.queryType

跟据沿途批量深度搜索类型可以将LinePoiBase转为沿途批量深度搜索类型对应的子类,从而获取更多深度信息。queryType与LinePoiBase子类的对应关系如下图:

queryType

LinePoiBase子类

com.autonavi.gbl.search.model.LineDeepQueryType.eServiceArea

com.autonavi.gbl.search.model.LinePoiServiceAreaInfo

com.autonavi.gbl.search.model.LineDeepQueryType.eCharing

com.autonavi.gbl.search.model.LinePoiChargeInfo

com.autonavi.gbl.search.model.LineDeepQueryType.eGasStation

com.autonavi.gbl.search.model.LinePoiGasStationInfo

com.autonavi.gbl.search.model.LineDeepQueryType.eParkRecommend

com.autonavi.gbl.search.model.LinePoiParkRecommendInfo

错误码类型

int

euRet为通用的返回错误码,可详见:

com.autonavi.gbl.util.errorcode.common.Service,

com.autonavi.gbl.util.errorcode.common.ThirdParty,

com.autonavi.gbl.util.errorcode.search.Online,

com.autonavi.gbl.util.errorcode.search.Offline 类型。

核心接口

int com.autonavi.gbl.search.SearchService.lineDeepInfoSearch(SearchLineDeepInfoParam param, IGSearchLineDeepInfoObserver observer, @SearchMode.SearchMode1 int mode, int taskid)

备注:taskid为搜索发起请求的唯一任务id,由客户端分配,用于标识发起请求,客户端可根据此id调用中断接口,中断搜索请求,详见中断请求描述。

void com.autonavi.gbl.search.observer.IGSearchLineDeepInfoObserver.onGetLineDeepInfoResult(int taskid, int euRet, SearchLineDeepInfoResult pstResult)

备注1:发起请求为异步接口,结果通过pstResult返回,返回状态参见euRet。

备注2:请注意observer的生命周期,搜索完成或者手动取消之前,请确保观察者不被释放。


说明:函数详情,请复制函数名称到在线API搜索。

调用示例

// 建议定义成static类型\nstatic class SearchLineDeepInfoObserver implements IGSearchLineDeepInfoObserver {\n    @Override\n    public void onGetLineDeepInfoResult(int taskid, int euRet, SearchLineDeepInfoResult stResult) {\n        Log.i(TAG, "onGetLineDeepInfoResult: ");\n        Log.i(TAG, " taskid = " + taskid);\n        Log.i(TAG, " euRet = " + euRet);\n        if (stResult != null) {\n            Log.i(TAG, " code = " + stResult.code);\n            Log.i(TAG, " message = " + stResult.message);\n            Log.i(TAG, " iPoiType = " + stResult.iPoiType);\n\n            if (stResult.data != null && stResult.data.length > 0) {\n                Log.i(TAG, " poiid = " + stResult.data[0].poiId);\n                Log.i(TAG, " name = " + stResult.data[0].name);\n                switch(stResult.data[0].queryType)\n                {\n                    case LineDeepQueryType.eServiceArea:\n                        LinePoiServiceAreaInfo serviceAreaInfo = (LinePoiServiceAreaInfo)stResult.data[0];\n                        break;\n                    case LineDeepQueryType.eCharing:\n                        LinePoiChargeInfo chargeInfo = (LinePoiChargeInfo)stResult.data[0];\n                        break;\n                    case LineDeepQueryType.eGasStation:\n                        LinePoiGasStationInfo gasStationInfo = (LinePoiGasStationInfo)stResult.data[0];\n                        break;\n                    case LineDeepQueryType.eParkRecommend:\n                        LinePoiParkRecommendInfo parkRecommendInfo = (LinePoiParkRecommendInfo)stResult.data[0];\n                        break;\n                    default:\n                        Log.i(TAG, "数据返回异常");\t\n                        break;\n                }\n            }\n        }\n    }\n}\n\n// 回调观察者,这边需要上层管理,不要每次发起搜索都new一个,定义成成员变量管理一个即可\nSearchLineDeepInfoObserver searchLineDeepInfoObserver = new SearchLineDeepInfoObserver();

注意:观察者需要上层以内部类形式实现,建议定义成static类型,回调观察者的初始化需要上层管理,不要每次发起搜索都new一个,定义成成员变量管理一个即可。

public class SearchRequest\n{\n\tpublic void doLineDeepInfoSearch()\n    {\n        // 1. 构建搜索参数\n        SearchLineDeepInfoParam param = new SearchLineDeepInfoParam();\n\t\tparam.poiIds = new ArrayList<String>(Arrays.asList("B061604JM3",\n                                                           "B01380Q30J",\n                                                           "B0FFG3ELL9",\n                                                           "B0FFIL85B5",\n                                                           "B0FFHJ6TSG",\n                                                           "B0FFIMQ8NO",\n                                                           "B0FFIMFST2",\n                                                           "B03190Q9L8",\n                                                           "B0FFL49MA4",\n                                                           "B0FFL41WSY"));\n        param.queryType = LineDeepQueryType.eGasStation; // 加油站\n        \n        // 3. 生成唯一的任务id\n        taskId = 1;\n        \n        // 发起沿途批量深度信息搜索\n        int iret = SearchService.lineDeepInfoSearch(param, searchLineDeepInfoObserver, SEARCH_MODE_ONLINE_ADVANCED, taskId);\n    }\n}
taskId = 1;\nSearchService.abort(taskId);


","body_lake":null,"pub_level":null,"status":"0","updated_at":"2022-12-09 09:23:27","deleted_at":null,"nameSpace":"mnlcaa/v610","browseCount":136,"collectCount":0,"estimateDate":13,"docStatus":0,"permissions":true,"overView":false}}