Shun 发表于 2022-8-18 10:28:18

应用缺少POI数据,如何开发地点深度信息?

用户在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);

https://www.cnblogs.com/hmscore/p/16597677.html
页: [1]
查看完整版本: 应用缺少POI数据,如何开发地点深度信息?