在日常出行中,路线规划是非常重要的一环。用户想去某个地方,获取到该地方的所有路线,然后根据预估的行程时间选择合适的路线,极大地方便了出行。日常生活中也有大量的使用场景。在旅游APP中,可以根据乘客的目的地为用户规划合适的出行路线和预计到达时间;各服务点的路线;在外卖APP中,合理的路线规划可以让骑手更容易接单和送货。HMSCore位置服务和地图服务结合可以实现这个功能。您可以先利用位置服务的位置搜索能力,通过指定的关键字和可选的地理范围搜索周围环境,然后利用地图服务的路线规划能力,显示到达目的地的路线。在确定位置时,基于GNSS、Wi-Fi、基站等多种混合定位方式,帮助应用快速、准确地获取位置信息。获取位置信息后,集成地图服务,地图数据可覆盖200多个国家和地区,支持数百种语言,全方位提升用户体验。不仅如此,地图服务还可以根据不同的交通工具和实时路况信息,提供不同的路线规划方案和预估到达时间。效果显示地图服务提供了3种交通方式,驾车、骑行和步行。根据不同的交通工具,可以快速计算出几种合适的路线规划方案,并给出距离和预计到达时间。不仅是不同的交通工具,地图服务还可以根据路况信息,提供距离短和速度快两种备选路线偏好,大大提升了用户体验。路由偏好设置开发步骤集成准备AGC账号注册,项目创建1)注册为开发者注册地址:请点击链接2)创建应用,添加sha256,启用地图/站点切换,下载json文件集成华为地图服务和定位serviceSDK1)复制“agconnect-services.json”文件到应用级根目录?在“allprojects>repositories”配置HMSCoreSDK的Maven仓库地址。?在“buildscript>repositories”配置HMSCoreSDK的Maven仓库地址。?如果App中添加了“agconnect-services.json”文件,需要在“buildscript>dependencies”中添加agcp配置。buildscript{repositories{maven{url'https://developer.huawei.com/repo/'}google()jcenter()}dependencies{classpath'com.android.tools.build:gradle:3.3.2'classpath'com.huawei.agconnect:agcp:1.3.1.300'}}allprojects{repositories{maven{url'https://developer.huawei.com/repo/'}google()jcenter()}}2)在“dependencies”中添加以下编译依赖dependencies{implementation'com.huawei.hms:maps:{version}'implementation'com.huawei.hms:site:{version}'}3)在文件头添加配置应用插件:'com.华为。agconnect'4)在android中配置签名。将生成签名证书指纹生成的签名文件复制到你项目的app目录下,在“build.gradle”文件中配置签名signingConfigs{release{//签名证书storeFilefile("**.**")//密钥存储密码storePassword"******"//别名keyAlias"******"//密钥密码keyPassword"******"v2SigningEnabledtruev2SigningEnabledtrue}}buildTypes{release{minifyEnabledfalseproguardFilesgetDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'debuggabletrue}debug{debuggabletrue}}项目中用到的主要代码和函数1)文本搜索:通过实现textSearch在locationservices实现文本内容搜索和展示的功能。SearchResultListenerresultListener=newSearchResultListener(){//搜索成功返回搜索结果。@OverridepublicvoidonSearchResult(TextSearchResponseresults){ListsiteList;if(results==null||results.getTotalCount()<=0||(siteList=results.getSites())==null||siteList.size()<=0){resultTextView.setText("结果为空!”);返回;}mFirstAdapter.refresh(siteList);StringBuilder响应=newStringBuilder("\n");response.append("成功\n");整数计数=1;地址详情地址详情;坐标位置;噗噗;坐标边界视口;对于(站点站点:站点列表){addressDetail=site.getAddress();location=site.getLocation();poi=站点.getPoi();viewport=site.getViewport();response.append(String.format("[%s]siteId:'%s',name:%s,formatAddress:%s,country:%s,countryCode:%s,location:%s,poiTypes:%s,视口是%s\n\n",""+(count++),site.getSiteId(),site.getName(),site.getFormatAddress(),(addressDetail==null?"":addressDetail.getCountry()),(addressDetail==null?"":addressDetail.getCountryCode()),(location==null?"":(location.getLat()+","+location.getLng())),(poi==null?"":Arrays.toString(poi.getPoiTypes())),(viewport==null?"":viewport.getNortheast()+","+viewport.getSouthwest())));}resultTextView.setText(response.toString());Log.d(TAG,"onTextSearchResult:"+response.toString());}//搜索异常返回结果码和描述@OverridepublicvoidonSearchError(SearchStatusstatus){resultTextView.setText("Error:"+status.getErrorCode()+""+status.getErrorMessage());}};//调用地点搜索API.searchService.textSearch(request,resultListener);2)步行路径规划:调用地图服务API接口实现数据回调和呈现它在地图上Api文档:请点击链接NetworkRequestManager.getWalkingRoutePlanningResult(latLng1,latLng2,newNetworkRequestManager.OnNetworkListener(){@OverridepublicvoidrequestSuccess(Stringresult){generateRoute(result);}@OverridepublicvoidrequestFail(StringerrorMsg){MessMessage.obtain();Bundlebundle=newBundle();bundle.putString("errorMsg",errorMsg);msg.what=1;msg.setData(bundle);mHandler.sendMessage(msg);}});更多详情>>访问位置服务开发者联盟官网访问地图服务开发者联盟官网获取位置服务开发指导文档获取地图服务开发指导文档访问华为开发者联盟官网获取开发指导文档华为移动服务开源仓库地址:GitHub,关注我们Gitee,第一时间了解HMSCore最新技术资讯~