Android 高德地图定位城市,通过高德天气API获取天气情况

一、使用高德地图定位当前城市

1、官网首页 | 高德控制台注册用户,进入控制台,创建Android应用

Android 高德地图定位城市,通过高德天气API获取天气情况_第1张图片

Android 高德地图定位城市,通过高德天气API获取天气情况_第2张图片

上述完成后,点-->添加

 Android 高德地图定位城市,通过高德天气API获取天气情况_第3张图片

以上操作完成后,就会有Key,备用,后面会用到

2、地图API引入

定位API,在Module的build.gradle中引入

implementation 'com.amap.api:location:latest.integration';

 3、配置AndroidManifest.xml

在application标签中声明service组件,

4、声明权限






















5、设置高德Key ,上面申请的Key在这里使用

       
            

6、初始化定位,配置参数并启动定位。下面上代码

private AMapLocationClient mLocationClient = null;
private void initMap() {
    AMapLocationClient.updatePrivacyShow(getApplicationContext(), true, true);
    AMapLocationClient.updatePrivacyAgree(getApplicationContext(), true);
    try {
        mLocationClient = new AMapLocationClient(getApplicationContext());
    } catch (Exception e) {
        e.printStackTrace();
    }

    if (null != mLocationClient) {
        mLocationClient.setLocationListener(mLocationListener);
        AMapLocationClientOption mLocationOption = new AMapLocationClientOption();
        mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving);
        mLocationOption.setOnceLocation(true);
        mLocationOption.setLocationCacheEnable(false);
        mLocationClient.setLocationOption(mLocationOption);
        mLocationClient.startLocation();
    }
}

private final AMapLocationListener mLocationListener = aMapLocation -> {
    if (aMapLocation != null) {
        if (aMapLocation.getErrorCode() == 0) {
            // 城市名
            String cityName = aMapLocation.getCity();
            // 可根据城市的 adcode获取相应城市的天气情况
            String cityAdCode = aMapLocation.getAdCode();
               
            Log.d(TAG, "onLocationChanged: city: " + cityName + " adCode: " + cityAdCode);
        } else {
            // 定位失败时,可通过ErrCode(错误码)信息来确定失败的原因,errInfo是错误信息,详见错误码表。
            Log.e("AMapError","location Error, ErrCode:"
                    + aMapLocation.getErrorCode() + ", errInfo:"
                    + aMapLocation.getErrorInfo());
        }
    }
};

 二、使用高德API获取天气

文档地址:天气查询-API文档-开发指南-Web服务 API | 高德地图API

1、申请Key,特别注意,这里的Key是Web服务类型的,与上面Android不通用

Android 高德地图定位城市,通过高德天气API获取天气情况_第4张图片

 2、根据文档,拼成Url请求,请求方式: GET

高德天气查询API服务地址:

实时天气

https://restapi.amap.com/v3/weather/weatherInfo?key="申请的Web服务类型的key"&city="上面通过定位获取到的城市adCode"

预报天气

https://restapi.amap.com/v3/weather/weatherInfo?key="申请的Web服务类型的key"&extensions=all&city="上面通过定位获取到的城市adCode"

3、请求的结果默认是Json格式的,根据官方文档进行解析就可以了。

你可能感兴趣的:(Android,Android,Android,Studio,java)