{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671508885555,"data":{"id":71712134,"title":"7.11 子到达点搜索","slug":"dz52wv","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"

简介

子到达点搜索通过指定目的POI,根据父子关系类型搜索子POI信息,目前支持的父子关系类型有:门、室内地图-建筑物设施出入口(门)、进站、出站、出发、到达、地铁出入口、室内地图-建筑物室内点、景区内子景点、景区内设施、航站楼/候机楼、火车站/机场/汽车站的候机室/候车室、停车场、售票处、医院科室(如住院部、门诊楼、急诊楼)和楼/栋/区/期。


子到达点搜索只支持在线搜索


基础版用来检索 火车站、机场的可达字段,此时 rel_type 传值为 "103,104,105,106,303,304,305" , 参考 childType 值定义

时序图

初始化 & 反初始化

关键参数

输入参数

子到达点搜索请求参数

com.autonavi.gbl.search.model.SearchNaviInfoParam

String com.autonavi.gbl.search.model.SearchNaviInfoParam.poiid

String com.autonavi.gbl.search.model.SearchNaviInfoParam.rel_type

父子关系类型可能值如下:

           *  101:门

          *  102:室内地图-建筑物设施出入口(门)

          *  103:进站

          *  104:出站

         *  105:出发

          *  106:到达

          *  107:地铁出入口

          *  201:室内地图-建筑物室内点

          *  301:景区内子景点

          *  302:景区内设施

          *  303:航站楼/候机楼

          *  304:火车站/机场/汽车站的候机室/候车室

          *  305:停车场

          *  306:售票处

          *  307:医院科室(如住院部、门诊楼、急诊楼)

         *  308:楼/栋/区/期

搜索模式

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.IGSearchNaviInfoObserver

搜索结果回调参数

搜索结果pstResult返回值

com.autonavi.gbl.search.model.SearchNaviInfoResult

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

ArrayList<SearchNaviInfoItem> com.autonavi.gbl.search.model.SearchNaviInfoResult.naviInfoItem

SearchNaviInfoBase com.autonavi.gbl.search.model.SearchNaviInfoItem.naviInfo

ArrayList<SearchNaviInfoBase> com.autonavi.gbl.search.model.SearchNaviInfoItem.childrenItem

错误码类型

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.naviInfoSearch(SearchNaviInfoParam param, IGSearchNaviInfoObserver observer, @SearchMode.SearchMode1 int mode, int taskid)

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


void com.autonavi.gbl.search.observer.IGSearchNaviInfoObserver.onGetNaviInfoResult(int taskid, int euRet, SearchNaviInfoResult pstResult)

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

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


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

调用示例

// 建议定义成static类型\nstatic class SearchNaviInfoObserver implements IGSearchNaviInfoObserver {\n    @Override\n    public void onGetNaviInfoResult(int taskid, int euRet, SearchNaviInfoResult stResult) {\n        Log.i(TAG, "onGetNaviInfoResult: ");\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.naviInfoItem != null && stResult.naviInfoItem.length > 0) {\n                // 父节点\n                Log.i(TAG, " address = " + stResult.naviInfoItem[0].naviInfo.address);\n                Log.i(TAG, " poiid = " + stResult.naviInfoItem[0].naviInfo.id);\n                Log.i(TAG, " name = " + stResult.naviInfoItem[0].naviInfo.name);\n                // 子节点\n                if (stResult.naviInfoItem[0].childrenItem!=null && stResult.naviInfoItem[0].childrenItem.length>0)\n                {\n                    Log.i(TAG, " address = " + stResult.naviInfoItem[0].childrenItem[0].address);\n                    Log.i(TAG, " poiid = " + stResult.naviInfoItem[0].childrenItem[0].id);\n                    Log.i(TAG, " name = " + stResult.naviInfoItem[0].childrenItem[0].name);\n                }\n            }\n        }\n    }\n}\n\n// 回调观察者,这边需要上层管理,不要每次发起搜索都new一个,定义成成员变量管理一个即可\nSearchNaviInfoObserver searchNaviInfoObserver = new SearchNaviInfoObserver();

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

public class SearchRequest\n{\n    public void doNaviInfoSearch()\n    {\n        // 1. 构建搜索参数\n        SearchNaviInfoParam param = new SearchNaviInfoParam();\n        param.poiid = "B0FFITC8LD";\n        param.rel_type = "101,102,308";\n\n        // 2. 生成唯一的任务id\n        taskId = 1;\n\n        // 发起子到达点搜索\n        int iret = SearchService.naviInfoSearch(param, searchNaviInfoObserver, 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:31:14","deleted_at":null,"nameSpace":"mnlcaa/v610","browseCount":102,"collectCount":0,"estimateDate":9,"docStatus":0,"permissions":true,"overView":false}}