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