资讯专栏INFORMATION COLUMN

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

NusterCache / 3369人阅读

摘要:最近的项目中遇到了一个实时天气显示的问题通过高德地图的开放解决了将思路留下已经将它封装成了一个函数可以直接拿去使用不过使用前最好还是测试一下思路首先通过调用高德地图定位的获取的定位信息中有好像是高德的一组城市地理信息编号吧然后通过调用高德的

最近的项目中遇到了一个实时天气显示的问题.通过高德地图的开放 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所在地的天气;

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;
        }
}

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22621.html

相关文章

  • 高德地图基于阿里云MaxCompute最佳实践

    摘要:目前,高德主要有地图导航两个产品,以及地图,同时还开放了服务,方便移动开发者更好地为用户提供高质量基于位置的服务。另外,高德经常有大型活动,用户访问量会在某个阶段激增,这时就需基于阿里云的弹性伸缩服务,就能实现快速扩展的基础设施。 摘要: 云计算带来的变革不言而喻,作为一种新型的IT交付模式,切实为企业节省IT成本、加快IT与企业业务结合效率、提升创新能力、加强管理水平以及增强系统本身...

    masturbator 评论0 收藏0

发表评论

0条评论

NusterCache

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<