首页 > 其他分享 >如何通过经纬度坐标获取附近的地址信息?

如何通过经纬度坐标获取附近的地址信息?

时间:2022-08-31 09:22:07浏览次数:80  
标签:编码 GeocoderService 经纬度 hwLocation 地址 地理 坐标 new

经纬度是确定每个地点位置的精确坐标,使用坐标描述一个位置,非常准确但是并不直观,面向用户表达并不友好。HMS Core定位服务提供了逆地理编码功能,可以通过纬度获取附近地点的详细地址,将坐标转化为地理描述。例如,在电商App的地图里标定一个点,就可以显示具体位置;打车、外卖App里拖动地图或者点击地图上的某一点,定位标能够选择附近合适的上车地址或者外卖地址;在物流配送App中,需要很精确直观的描述物流车辆所在的线路以及物流配送点,使用逆地理编码功能通过回传的经纬度坐标,来确认车辆位置。

HMS Core定位服务逆地理编码功能拥有强大的地址理解能力,使用更加本地化位置的表达方式,准确率高达90%,支持79种语言,低至200ms的时延。

Demo演示

开发步骤

集成准备

注册成为开发者

在开发应用前需要在华为开发者联盟网站上注册成为开发者并完成实名认证,具体方法请参见帐号注册认证。

创建应用

参见创建项目创建应用完成应用的创建。

生成并配置签名证书指纹

签名证书指纹用于校验应用的真实性,您需要根据签名证书在本地生成签名证书指纹,并在应用上架前将签名证书指纹配置到AppGallery Connect。

具体操作步骤见官网

集成SDK

针对Android Studio开发环境,华为提供了Maven仓集成方式的SDK包。在开始开发前,您需要将SDK集成到您的Android Studio开发环境中。

具体操作步骤见官网

开发步骤

1. 创建地理编码服务客户端

在您的项目中使用到地理编码服务的GeocoderActivity中的onClick()方法中创建一个GeocoderService实例,通过该实例调用地理编码相关接口。

Locale locale = new Locale("zh", "CN");
GeocoderService geocoderService = LocationServices.getGeocoderService(GeocoderActivity.this, locale);

2. 获取逆地理编码信息

如果您希望应用获取逆地理编码信息,可以使用定位服务中的GeocoderService对象提供的getFromLocation()接口。该接口会根据您设置的GetFromLocationRequest请求信息返回一个包含位置信息的List<HWLocation>对象。

2.1. 设置逆地理编码请求参数。

// 参数一:纬度
// 参数二:经度
// 参数三:返回结果最大数量 
// 请传入合理的地区经纬度,否则没有相关地理信息返回。如果是非中国地区,请传入非中国地区的经纬度,且确保经纬度是准确的。
GetFromLocationRequest getFromLocationRequest = new GetFromLocationRequest(39.985071, 116.501717, 5);

2.2. 调用getFromLocation()接口,获取逆地理编码信息。

private void getReverseGeocoding() {
    //初始化GeocoderService对象
    if (geocoderService == null) {
        geocoderService = new GeocoderService(this, new Locale("zh", "CN"));
    }
    geocoderService.getFromLocation(getFromLocationRequest)
            .addOnSuccessListener(new OnSuccessListener<List<HWLocation>>() {
                @Override
                public void onSuccess(List<HWLocation> hwLocation) {
                    // TODO:接口调用成功的处理
                    if (null != hwLocation && hwLocation.size() > 0) {
                        Log.d(TAG, "hwLocation数据集数量: " + hwLocation.size());
                        Log.d(TAG, "CountryName: " + hwLocation.get(0).getCountryName());
                        Log.d(TAG, "City: " + hwLocation.get(0).getCity());
                        Log.d(TAG, "Street: " + hwLocation.get(0).getStreet());
                    }
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(Exception e) {
                    // TODO:接口调用失败的处理
                }
            });
}

2.3. Log日志为:

了解更多详情>>

访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

标签:编码,GeocoderService,经纬度,hwLocation,地址,地理,坐标,new
From: https://www.cnblogs.com/hmscore/p/16641793.html

相关文章

  • 个人博客地址
    博客园简书掘金知乎github码云51CTO......
  • IP地址
    目录IP地址IP地址的组成IP地址的分类公共和私有IP地址特殊地址子网掩码相关公式判断对方主机是否在同一个网段划分子网优化IP地址分配IP地址它们可唯一标识IP网络中的......
  • 关于阿里云的 服务器发回了不可路由的地址。使用服务器地址代替
    如题:在阿里云服务器上可以正常访问ftp地址,但是在本地就一直访问不了,报服务器发回了不可路由的地址。使用服务器地址代替.看了不少网上的解答,配置没有起作用.后面偶然......
  • numpy 数组 浅拷贝 地址
    对于numpy数组:importnumpyasnpa=np.array([1,2,3,4])b=a[0:2]b[0]=np.sum(a[:])/4修改b[0]的值会改变a的值,原因:https://blog.csdn.net/AManFromEarth/arti......
  • 配置用动态的形式去访问服务地址
    第一篇博客背景简介:目前做的一个项目里,需要在前端页面中去访问地图服务和地图数据服务,加载服务的方式,一直是写死的,如下图。老师建议把这个访问方式修改成为动态访问,因为......
  • git 重新设置远端origin地址
    特别注意:如果之前克隆代码,关联远端用的是HTTP方式,需要重新设置远端origin地址;如果之前用的是SSH方式,不用做任何修改。举个例子说一下,如何修改远端origin【不要直接照搬!】:gi......
  • 坐标转换:4326转3857
    functionWGS84ToMercator(lonlat){constcoord={lat:0,lng:0};constearthRad=6378137.0;//地球半径coord.lat=lonlat.ln......
  • VSCode 国内镜像下载地址
    镜像地址https://vscode.cdn.azure.cn/stable/,后面加上VSCode版本号,比如:https://vscode.cdn.azure.cn/stable/e4503b30fc78200f846c62cf8091b76ff5547662/VSCodeUserSet......
  • 广义坐标与基本假设
    本文转自:https://zhuanlan.zhihu.com/p/133815204  学习理论力学之前,我们需要忘记之前学过的牛顿力学体系,因为这是两个完全不同的研究力学的方法,牛顿力学最核心的东西应......
  • 【面试题】如何去掉vue的url地址中的#号?及其原理?
    如何去掉vue的url地址中的#号?及其原理?点击打开视频讲解更加详细如何去掉vue的url地址中的#号?importVuefrom'vue';importVueRouterfrom'vue-router';Vue.use......