小部件天气,按用户压缩?
Widget weather, by user zip?
有人知道一个好的网络吗?我能找到的唯一适用于网络的小部件是 accuweather,但他们的邮政编码经常生成错误的城市,所以它不准确。
我不介意更多,硬编码,但我不知道每个人说的代码。或工作示例。有些东西会根据用户的邮政编码自动显示用户天气
如有任何建议,我们将不胜感激,谢谢。
您可以通过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>
2 我能想到的替代方案,Yahoo YQL and Wunderground API。这 2 个不是基于小部件的,而是 API 到 return 原始天气信息(例如,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 的 woied 指向阿鲁巴岛的奥腊涅斯塔德。该列表可以从 this weather station file 检索。但是,您还需要在IP2Location购买商业套餐,获取气象站代码进行匹配。
第二个选项是Wunderground。有一个开发者版本 API 但限制为每天 500 次调用。他们的 API 只需要国家代码和城市名称进行查询。例如,
http://api.wunderground.com/api/Your_Key/conditions/q/TH/Bangkok.json
其中TH是ISO3166国家代码,Bangkok是城市。对于此选项,您可以使用免费的位置网络服务,例如 IPInfoDB or database version such as IP2Location LITE DB,或任何位置服务提供商。
有人知道一个好的网络吗?我能找到的唯一适用于网络的小部件是 accuweather,但他们的邮政编码经常生成错误的城市,所以它不准确。
我不介意更多,硬编码,但我不知道每个人说的代码。或工作示例。有些东西会根据用户的邮政编码自动显示用户天气
如有任何建议,我们将不胜感激,谢谢。
您可以通过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>
2 我能想到的替代方案,Yahoo YQL and Wunderground API。这 2 个不是基于小部件的,而是 API 到 return 原始天气信息(例如,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 的 woied 指向阿鲁巴岛的奥腊涅斯塔德。该列表可以从 this weather station file 检索。但是,您还需要在IP2Location购买商业套餐,获取气象站代码进行匹配。
第二个选项是Wunderground。有一个开发者版本 API 但限制为每天 500 次调用。他们的 API 只需要国家代码和城市名称进行查询。例如,
http://api.wunderground.com/api/Your_Key/conditions/q/TH/Bangkok.json
其中TH是ISO3166国家代码,Bangkok是城市。对于此选项,您可以使用免费的位置网络服务,例如 IPInfoDB or database version such as IP2Location LITE DB,或任何位置服务提供商。