当你在应用地位搜寻时,父子节点信息能够帮忙您解锁更丰盛的地位后果,让您的出行更便捷。比方当你在搜寻机场不仅会返回机场的信息,还会返回航站楼、停车场、出入口等信息,为用户提供更场景化的地位后果,满足用户摸索大型场合的需要。
本文介绍了如何应用华为位置服务实现搜寻地位返回父子节点信息,以下是具体开发步骤
1. 开发前筹备
您须要实现必要的开发筹备工作,同时请确保您的工程中曾经配置HMS Core SDK的Maven仓地址,并且实现了本服务的SDK集成。
1.1 在我的项目级build.gradle文件中配置maven仓地址。
<code class="java">buildscript { repositories { google() jcenter() maven { url 'https://developer.huawei.com/repo/' } } //配置AGC插件 dependencies { classpath "com.android.tools.build:gradle:3.3.2" } }
<code class="java">allprojects { repositories { google() jcenter() maven { url 'https://developer.huawei.com/repo/' } } }
1.2 在利用级build.gradle中引入SDK。
<code class="java">ependencies { implementation 'com.huawei.hms:site:4.0.0.202' }
2. 开发步骤
2.1 创立搜寻服务。
<code class="java">SearchService searchService = SearchServiceFactory.create(this, Utils.getApiKey());
2.2 开发者创立查问后果解决类
“SearchResultListener”,该类实现SearchResultListener<TextSearchResponse>接口,应用此类中的“onSearchResult(TextSearchResponse results)”办法获取查问后果并实现具体业务。
<code class="java">SearchResultListener<TextSearchResponse> resultListener = new SearchResultListener<TextSearchResponse>() { @Override public void onSearchResult(TextSearchResponse results) { Log.d(TAG, "onTextSearchResult: " + results.toString()); List<Site> siteList; if (results == null || results.getTotalCount() <= 0 || (siteList = results.getSites()) == null || siteList.size() <= 0) { resultTextView.setText("Result is Empty!"); return; } for (Site site : siteList) { // 开发者依据须要解决数据后果 .... // 子节点数据 if ((site.getPoi() != null)) { ChildrenNode[] childrenNodes = poi.getChildrenNodes(); // 开发者依据须要解决数据后果 .... } } } @Override public void onSearchError(SearchStatus status) { resultTextView.setText("Error : " + status.getErrorCode() + " " + status.getErrorMessage()); } };
2.3 创立TextSearchRequest类,配置申请参数。
<code class="java">TextSearchRequest request = new TextSearchRequest(); String query = "Josep Tarradellas Airport"; request.setQuery(query); Double lat = 41.300621; Double lng = 2.0797638; request.setLocation(new Coordinate(lat, lng)); // 设置获取子节点信息 request.setChildren(true);
2.4 设置申请后果处理器,实现申请与后果处理器的绑定。
<code class="java">searchService.textSearch(request, resultListener);
这样就实现了搜寻地位返回父子节点信息 ,上面是实现效果图,展现下此性能的弱小吧。
欲了解更多详情,请参阅:
华为开发者联盟官网:https://developer.huawei.com/consumer/cn/hms/huawei-sitekit/?ha_source=hms1
获取开发领导文档:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/android-sdk-introduction-0000001050158571?ha_source=hms1
参加开发者探讨请到Reddit社区:https://www.reddit.com/r/HMSCore/
下载demo和示例代码请到Github:https://github.com/HMS-Core
解决集成问题请到Stack Overflow:https://stackoverflow.com/questions/tagged/huawei-mobile-services?tab=Newest
原文链接:
https://developer.huawei.com/consumer/cn/forum/topic/0201435810623210160?fid=18
作者:胡椒