高德地图 天气java_通过高德地图的开放 API, 根据 IP 定位获得实时天气

本文介绍了一个通过高德地图开放API获取实时天气的解决方案。首先利用IP定位API获取adcode,然后结合adcode和API密钥调用天气查询API,封装成函数方便使用。在高德官网申请秘钥后,实例化类并调用方法即可得到当前IP所在地区的天气信息。
摘要由CSDN通过智能技术生成

最近的项目中遇到了一个实时天气显示的问题.通过高德地图的开放 API 解决了;

将思路留下.

已经将它封装成了一个函数. 可以直接拿去使用. 不过使用前最好还是测试一下;

思路:

首先通过调用高德地图IP定位的 API;

http://lbs.amap.com/api/webservice/guide/api/ipconfig

获取的 IP 定位信息中有 adcode;(好像是高德的一组城市地理信息编号吧)

然后通过调用高德的天气查询的 Api;

http://lbs.amap.com/api/webservice/guide/api/weatherinfo/

结合之前IP定位获得的adcode和你的密钥;

该类使用步骤

在高德官网申请一个web的秘钥. 然后实例化一个对象. 调用方法info. 方法的参数填上你申请的秘钥,返回值就是你目前ip所在地的天气;

class nansongWeather{

//获得天气信息

public function info($key)

{

//$key = '你在高德申请的秘钥';

$ipInfo = $this->ipInfo($key); //调用方法获得 Ip 定位信息;

$city = $ipInfo->adcode; //获得adcode;

$weatherInfo = $this->weatherInfo($key, $city); //已经获取了天气信息;

return $weatherInfo;

}

//定位信息

public function ipInfo($key)

{

$ch = curl_init("http://restapi.amap.com/v3/ip?key=".$key);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 请求的数据不直接发送到浏览器

$result = curl_exec($ch); //执行请求,直接发送到浏览器

// $city = json_decode($result)->adcode;

$info = json_decode($result);

return $info;

}

//天气信息

public function weatherInfo($key, $city)

{

$ch = curl_init("http://restapi.amap.com/v3/weather/weatherInfo?city=" . $city ."&key=" . $key);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);

$info = json_decode($result)->lives[0];

return $info;

}

}

结果如图 注意:获得的是对象

ad81cffdb303efb80f76b57597fa968f.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值