发布于2022年11月4日3年前 用户在App里搜索某个地点时,并不满足单一的地点信息,希望得到更多可以帮助其做决策的深度信息。例如有打车出行需求的用户,在打车App里搜索地点时可以显示周边的地点,精确到某个路口,让用户可以自由选择合适的上下车点。银行金融App类可以让用户在搜索时显示附近线下网点和营业时间、电话以及周边道路信息等。 不过在App里开发搜索地点的相关信息功能需要大量的地点数据等信息,面对数据不够的情况,怎么才能开发提供用户在查看不同类型的地点(如酒店、餐饮、景点)时,可以获取到有针对性的深度信息(如营业时间、评分等)的能力呢? HMS Core位置服务提供一站式搜索服务,拥有2.6+亿全球POI数据,覆盖200+国家与地区,支持全球70+种语言。其中地点详情功能可以根据地点的唯一主键地点ID获取地点详情,地点详细信息请求返回有关指定地点的更全面的信息, 如地点名称、地址详细信息、经纬度等。比如用户打开物流类App可以搜索到附近网点、营业时间、电话等;旅行类App提供搜索景点具体的位置、附近的酒店、天气等;LBS类游戏也可以基于地点详情功能做相关改编,在游戏内搜索某地点时可以查看该地点的任务、玩家、区域排名等。 Demo演示 开发步骤 1. 开发准备 1.1 配置AppGallery Connect 在开发应用前,需要在AppGallery Connect中配置相关信息。 1.2 集成HMS Core SDK 针对Android Studio开发环境,华为提供了Maven仓集成方式的HMS Core SDK包。在开始开发前,您需要将HMS Core SDK集成到您的Android Studio开发环境中。 1.3 配置混淆脚本 编译APK前需要配置混淆配置文件,避免混淆HMS Core SDK导致功能异常。 详细准备步骤可参考华为开发者联盟官网。 2. 地点详情 // 声明SearchService对象 private SearchService searchService; // 创建SearchService实例 searchService = SearchServiceFactory.create(this, " API key "); // 创建请求体 DetailSearchRequest request = new DetailSearchRequest(); request.setSiteId(" C2B922CC4651907A1C463127836D3957 "); request.setLanguage(" fr "); request.setChildren( false ); // 创建搜索结果侦听器 SearchResultListener<DetailSearchResponse> resultListener = new SearchResultListener<DetailSearchResponse>() { // 正常结果返回 @Override public void onSearchResult(DetailSearchResponse result) { Site site; if (result == null || (site = result.getSite()) == null) { return; } Log.i("TAG", String.format("siteId: '%s', name: %s\r\n", site.getSiteId(), site.getName())); } // 异常结果返回 @Override public void onSearchError(SearchStatus status) { Log.i("TAG", "Error : " + status.getErrorCode() + " " + status.getErrorMessage()); } }; // 调用地点详情接口 searchService.detailSearch(request, resultListener); 了解更多详情>> 访问华为开发者联盟官网 获取开发指导文档 华为移动服务开源仓库地址:GitHub、Gitee 关注我们,第一时间了解 HMS Core 最新技术资讯~
创建帐户或登录后发表意见