关于android:如何通过经纬度坐标获取附近的地址信息

1次阅读

共计 1997 个字符,预计需要花费 5 分钟才能阅读完成。

经纬度是确定每个地点地位的准确坐标,应用坐标形容一个地位,十分精确然而并不直观,面向用户表白并不敌对。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 日志为:

理解更多详情 >>

拜访华为开发者联盟官网
获取开发领导文档
华为挪动服务开源仓库地址:GitHub、Gitee

关注咱们,第一工夫理解 HMS Core 最新技术资讯~

正文完
 0