输出数据协议说明
Query分类 | 对话轮次 | Query | 结果返回 |
搜索指令 | 首次 | “帮我找下最近的XXX”、“帮我找下附近的XXX”、“帮我找一下XXX”、“我要去XXX”、“我想去XXX”、“规划到xxx的路线”、“怎么走路去XXX?”、“去XXX走路怎么走?”、“怎么开车去XXX?” | 总结信息 CMD(算路 & 导航) Components(起终点、途径点、路线、出行方式、算路策略) |
多轮 (三方兼容) | 已为您找到xxx,选择第几个? |
“第一个”、“第二个” |
已为您选中第一个,是否开始导航? |
“是、“否” |
示例代码
/**
*
* @param content 输入的内容
*/
private void queryCurrentLocationTest(String content)
{
AMapAgentQueryParam param = new AMapAgentQueryParam();
param.queryText = content;
/*&
支持第二轮搜索要加
*/
if (mCurrentPoiResult != null)
{
Log.e(TAG, "append query text: queryCurrentLocationTest mCurrentPoiResult = " + mCurrentPoiResult);
param.selectedObject = mCurrentPoiResult;
param.lastActionType = AMapAgentQueryResult.ActionType.SEARCH_POI;
}
else if (mRoutePOIItemList != null)
{
Log.e(TAG, "append query text: queryCurrentLocationTest mRoutePOIItemList = " + mRoutePOIItemList.size());
param.selectedObject = mRoutePOIItemList;
param.lastActionType = AMapAgentQueryResult.ActionType.ROUTE_SEARCH;
}
String sessionId = mAMapApi.getAgentClient().query(param);
Log.e(TAG, "append query text: " + content + ", sessionId: " + sessionId);
}
/**
* 查询结果,返回监听
*/
private AMapAgentCallback mAMapAgentCallback = new AMapAgentCallback()
{
@Override
public void
onQueryResult(AMapAgentQueryResult queryResult)
{
HashMap<Integer, AMapNaviPath> hashMapAmapPath;
List<PoiItem> poiItemV2List = new ArrayList<>();
List<AMapNaviPath> pathListData = new ArrayList<>();
AgentData data = new AgentData();
String time = DataUtils.getTime();
Log.e(TAG, "onQueryResult time: " + queryResult.endPoiName);
Log.e(TAG, "onQueryResult: " + queryResult.sessionId + ", taskId: " + queryResult.taskId + ", sequence: " + queryResult.sequence);
Log.e(TAG, "onQueryResult type: " + queryResult.actionType + ", stateType: " + queryResult.stateType + ", resultType: " + queryResult.resultType);
Log.e(TAG, "onQueryResult summary: " + queryResult.summary);
Log.e(TAG, "onQueryResult endPoiName: " + queryResult.endPoiName);
mCurrentPoiResult = null;
mRoutePOIItemList = null;
if (queryResult.resultObj != null)
{
Log.e(TAG, "onQueryResult resultObj: " + queryResult.resultObj.getClass().getSimpleName() + " " + queryResult.actionType);
if (queryResult.actionType == AMapAgentQueryResult.ActionType.SEARCH_POI)
{ // 搜索poi
mCurrentPoiResult = (PoiResultWrapper)queryResult.resultObj;
poiItemV2List = mCurrentPoiResult.getPoiItemV2List();
}
else if (queryResult.actionType == AMapAgentQueryResult.ActionType.SELECT_POI_WORK_FLOW)
{ // 选点
mCurrentPoiResult = (PoiResultWrapper)queryResult.resultObj;
poiItemV2List = mCurrentPoiResult.getPoiItemV2List();
}
else if (queryResult.actionType == AMapAgentQueryResult.ActionType.ROUTE_SEARCH)
{ // 顺路搜
mRoutePOIItemList = (List<RoutePOIItem>)queryResult.resultObj;
}
else if (queryResult.actionType == AMapAgentQueryResult.ActionType.REQUEST_ROUTE)
{
hashMapAmapPath = (HashMap<Integer, AMapNaviPath>)queryResult.resultObj;
for (Map.Entry<Integer, AMapNaviPath> entry : hashMapAmapPath.entrySet())
{
AMapNaviPath value = entry.getValue();
Log.e(TAG, "aMapNaviPath = value " + value.getLabels());
pathListData.add(value);
}
}
}
}
};