小工具天气,用户拉链?

时间:2017-05-22 00:58:17

标签: widget weather

任何人都知道网上有一个好的吗?我能找到的唯一适用于网络的小部件是精准的,但他们的邮政编码通常会生成错误的城市,因此它不准确。

我不介意,更难以编码,但我并不知道每个人说的代码。或者工作的例子。通过邮政编码自动显示用户天气的某些内容

非常感谢任何建议,谢谢。

2 个答案:

答案 0 :(得分:1)

2我可以想到的替代方案,Yahoo YQLWunderground API。这2不是基于小部件的,而是用于返回原始天气信息的API(例如,以json格式)。你必须自己做格式化。

Yahoo YQL是免费的,但老实说,我不知道您每天可以进行多少查询的限制。 Yahoo YQL将要求您使用woeid进行查询。例如,

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20u=%27c%27%20and%20woeid=56069&format=json

56069分,指向阿鲁巴的奥拉涅斯塔德。该列表可以从this weather station file检索。但是,您还需要从IP2Location购买商业套餐,以获取气象站代码进行匹配。

第二个选项是Wunderground。拥有开发人员版API,但每天限制为500次。他们的API只需要查询的国家代码和城市名称。例如,

http://api.wunderground.com/api/Your_Key/conditions/q/TH/Bangkok.json

因此,TH是ISO3166国家代码,曼谷是城市。对于此选项,您可以使用免费的位置Web服务(例如IPInfoDB)或数据库版本(例如IP2Location LITE DB)或任何位置服务提供商。

答案 1 :(得分:0)

您可以通过IP地址获取城市名称。试试https://geoip-db.com

的服务

一个jQuery示例(虽然其他代码片段也可以在他们的网页上找到):

<!DOCTYPE html>
<html>
<head>
    <title>GEOIP DB - City name by IP address</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js">
    </script>
</head>
<body>
    <div>Country: <span id="country"></span>
    <div>State: <span id="state"></span>
    <div>City: <span id="city"></span>
    <div>Latitude: <span id="latitude"></span>
    <div>Longitude: <span id="longitude"></span>
    <div>IP: <span id="ip"></span>
    <script>
        $.ajax({
            url: "https://geoip-db.com/jsonp",
            jsonpCallback: "callback",
            dataType: "jsonp",
            success: function( location ) {
                $('#country').html(location.country_name);
                $('#state').html(location.state);
                $('#city').html(location.city);
                $('#latitude').html(location.latitude);
                $('#longitude').html(location.longitude);
                $('#ip').html(location.IPv4);  
            }
        });     
    </script>
</body>
</html>