{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671508883096,"data":{"id":71712148,"title":"7.8 深度信息搜索","slug":"mgpqrp","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"
除了可以显示POI类型、地址、电话等基础信息,还可以透出实时油价、车位信息等深度信息。
备注:关键字搜索也会下发POI深度信息,本篇介绍的深度信息搜索接口主要用于加油站、充电站、停车场等特殊POI的深度信息下发,其余POI深度信息使用关键字搜索下发。具体请查看关键字搜索、深度信息搜索结果字段,按需请求。
com.autonavi.gbl.search.model.SearchDeepInfoParam
String com.autonavi.gbl.search.model.SearchDeepInfoParam.poiid
Coord2DDouble com.autonavi.gbl.search.model.SearchDeepInfoParam.poi_loc
com.autonavi.gbl.search.model.SearchMode.SearchMode1
取值 | 描述 | 备注 |
SEARCH_MODE_ONLINE_ADVANCED | 在线优先 | 当在线搜索出现异常,会自动转离线搜索 |
SEARCH_MODE_OFFLINE_ADVANCED | 离线优先 | 若当前网络是wifi,会切到在线优先方式 |
SEARCH_MODE_ONLINE_ONLY | 仅在线 | |
SEARCH_MODE_OFFLINE_ONLY | 仅离线 |
taskid外部需自己保证全局唯一
com.autonavi.gbl.search.observer.IGSearchDeepInfoObserver
com.autonavi.gbl.search.model.SearchDeepInfoResult
pstResult关键信息如表格所示,更多返回信息可参考SearchDeepInfoResult结构的成员描述。
com.autonavi.gbl.search.model.DeepinfoPoi
String com.autonavi.gbl.search.model.DeepinfoPoi.name
String com.autonavi.gbl.search.model.DeepinfoPoi.address
String com.autonavi.gbl.search.model.DeepinfoPoi.tel
SearchDeepInfoBusinessType1 int com.autonavi.gbl.search.model.DeepinfoPoi.eBusinessType
DeepinfoPoiParkinfo com.autonavi.gbl.search.model.DeepinfoPoi.parkinfo
ArrayList<DeepCharging> com.autonavi.gbl.search.model.DeepinfoPoi.chargeData
ArrayList<DeepinfoPoiGasinfo> com.autonavi.gbl.search.model.DeepinfoPoi.gasinfoList
DeepAirport com.autonavi.gbl.search.model.DeepinfoPoi.airportInfo
DeepTrainStation com.autonavi.gbl.search.model.DeepinfoPoi.trainStation
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.deepInfoSearch(SearchDeepInfoParam param, IGSearchDeepInfoObserver observer, @SearchMode.SearchMode1 int mode, int taskid)
备注:taskid为搜索发起请求的唯一任务id,由客户端分配,用于标识发起请求,客户端可根据此id调用中断接口,中断搜索请求,详见中断请求描述。
void com.autonavi.gbl.search.observer.IGSearchDeepInfoObserver.onGetDeepInfoResult(int taskid, int euRet, SearchDeepInfoResult pstResult)
备注1:发起请求为异步接口,结果通过pstResult返回,返回状态参见euRet。
备注2:请注意observer的生命周期,搜索完成或者手动取消之前,请确保观察者不被释放。
说明:函数详情,请复制函数名称到在线API搜索。
// 建议定义成static类型\npublic static class SearchDeepInfoObserver implements IGSearchDeepInfoObserver{\n @override\n public void onGetDeepInfoResult(int taskid, int euRet, SearchDeepInfoResult stResult) {\n Log.i(TAG, "onGetDeepInfoResult: ");\n Log.i(TAG, " taskid = " + taskid);\n Log.i(TAG, " euRet = " + euRet);\n if (stResult != null) {\n Log.i(TAG, " result = " + stResult.result);\n Log.i(TAG, " message = " + stResult.message);\n Log.i(TAG, " version = " + stResult.version);\n Log.i(TAG, " timestamp = " + stResult.timestamp);\n\n if (stResult.deepinfoPoi != null) {\n Log.i(TAG, " address = " + stResult.deepinfoPoi.address);\n Log.i(TAG, " poiid = " + stResult.deepinfoPoi.poiid);\n Log.i(TAG, " name = " + stResult.deepinfoPoi.name);\n }\n\n }\n }\n}\n\n// 回调观察者,这边需要上层管理,不要每次发起搜索都new一个,定义成成员变量管理一个即可\nSearchDeepInfoObserver searchDeepInfoObserver = new SearchDeepInfoObserver();
注意:观察者需要上层以内部类形式实现,建议定义成static类型,回调观察者的初始化需要上层管理,不要每次发起搜索都new一个,定义成成员变量管理一个即可。
public class SearchRequest\n{\n public void doDeepInfoSearch()\n {\n // 1. 构建搜索参数\n SearchDeepInfoParam param = new SearchDeepInfoParam();\n param.poiid = "B0FFGJ5M2W";\n param.poi_loc.lat = 39.992009;\n param.poi_loc.lon = 116.472824;\n\n // 2. 生成唯一的任务id\n taskId = 1;\n\n // 发起深度信息搜索\n int iret = SearchService.deepInfoSearch(param, searchDeepInfoObserver, SEARCH_MODE_ONLINE_ADVANCED, taskId);\n }\n}
taskId = 1;\nSearchService.abort(taskId);