• # 初体验之腾讯位置服务彩云天气开发者api


    初体验

    最近接触到了boxjs,看到了里面一个比较有意思的彩云天气的脚本,由于自己本身就是彩云天气pro的用户,日常使用过程中感觉到彩云的降雨提醒还是挺方便的,于是就准备开始使用这个天气的脚本。
    脚本主要用到两个平台的接口:

    1. 腾讯位置服务平台提供获取经纬度的接口
    2. 彩云天气申请开发者api调用对应经纬度的天气状况

    测试环境选择了自己的iphone上的JSbox来运行一个简单的js脚本:

    //简单思路就是 获取ip再获取天气信息
    const locationKey = "XXXXXXXXXXXXX"
    const weatherKey = "XXXXXXXXXXXX"
    
    const apiList = {
        location:"https://apis.map.qq.com/ws"
    }
    
    function getLonLat(){
        $http.get({
            url: `${apiList.location}/location/v1/ip?key=${locationKey}`,
            handler: (resp) => {
                let location = resp.data&&resp.data.result&&resp.data.result.location
                getLocation(location)
            }
        });
    }
    function getLocation(location){
        $http.get({
            url: `${apiList.location}/geocoder/v1/?key=${locationKey}&location=${location.lat},${location.lng}`,
            handler: (resp) => {
                var data = resp.data;
                $console.info(data.result.formatted_addresses.recommend);
            }
        });
    }
    
    /**
     * 
     * @param {lat:"",lng:""} location 
     */
    function getWeather(location){
        $http.get({
            url: `${apiList.weather}/${weatherKey}/${location.lng},${location.lat}/weather.json`,
            handler: (resp) => {
                let data = resp.data;
                console.info(data)
    			//运行结果参照彩云天气https://open.caiyunapp.com/%E9%80%9A%E7%94%A8%E9%A2%84%E6%8A%A5%E6%8E%A5%E5%8F%A3/v2.5
            }
        });
    }
    
    getLonLat()
    

    顿时醒悟

    写到这其实我只是想测试一下两个接口的基本用法以及可用之处,然后突然想到jsbox里面内置的$location可以直接获取到设备的位置信息,通过这样获取到的位置坐标会比ip的更加精准

    //根据原生SDK获取手机位置
    function getPhoneLoc(){
        $location.fetch({
            handler: function(resp) {
                var lat = resp.lat;
                var lng = resp.lng;
                var alt = resp.alt;
                
                let loc = {lat:lat,lng:lng}
                getLocation(loc)
                
            }
        });
    }
    

    最后运行结果

    各位晚安

  • 相关阅读:
    Python——thread
    Python——dummy_thread( _dummy_thread in Python 3.+)
    Python——pyiso8601
    Python——os(一)进程参数
    Python——eventlet.hubs
    Python——eventlet.backdoor
    Python——eventlet.greenthread
    解决zabbix可用性为灰色状态
    实时查看docker容器日志
    docker pull 报错Get https://xxx.xxx.xxx.xxx:5000/v1/_ping: http: server gave HTTP response
  • 原文地址:https://www.cnblogs.com/Eyeseas/p/13611457.html
Copyright © 2020-2023  润新知