如何在我的asp.net网站上显示特定城市的天气温度?

时间:2014-07-16 06:25:38

标签: c# asp.net

我如何能够像雅虎网站一样在我的网页上显示天气温度。我想展示一个特定城市的温度。

aspx代码

<div style="position:absolute;height:705px; background-color:#49A3FF; width:214px;  top: 171px; left: 1067px;"  id="bodyright">

</div>

我想在此标签中显示温度。我从谷歌搜索分配我发现它使用谷歌API但我无法理解如何使用谷歌API。请帮助我

3 个答案:

答案 0 :(得分:0)

使用 Microsoft 免费网络服务来获取世界上任何城市的温度。

Here是您应该访问的链接。有很多方法可以调用页面上提到的服务。

示例:

调用它的最简单方法:

http://www.webservicex.net/globalweather.asmx/GetWeather?CityName=Karachi&CountryName=Pakistan

<强>解释

在上面的例子中:

CityName =卡拉奇

CountryName =巴基斯坦

只需更改城市和国家/地区名称即可根据需要使用它。

<强>代码:

//call webservice using HTTP get method
var xml = XDocument.Load("http://www.webservicex.net/globalweather.asmx/GetWeather?CityName=Karachi&CountryName=Pakistan");

//convert it to xml
string response = WebUtility.HtmlDecode(xml.ToString());

您将获得的XML响应:

<string xmlns="http://www.webserviceX.NET">
<?xml version="1.0" encoding="utf-16"?> 
    <CurrentWeather> 
        <Location>Karachi Airport, Pakistan (OPKC) 24-54N 067-08E 22M</Location> 
        <Time>Jul 16, 2014 - 01:25 AM EDT / 2014.07.16 0525 UTC</Time> 
        <Wind> from the WSW (240 degrees) at 9 MPH (8 KT):0</Wind> 
        <Visibility> 3 mile(s):0</Visibility> 
        <SkyConditions> mostly cloudy</SkyConditions> 
        <Temperature> 87 F (31 C)</Temperature> 
        <DewPoint> 75 F (24 C)</DewPoint> 
        <RelativeHumidity> 66%</RelativeHumidity> 
        <Pressure> 29.44 in. Hg (0997 hPa)</Pressure> 
        <Status>Success</Status> 
    </CurrentWeather>
</string>

答案 1 :(得分:0)

你可以使用http://openweathermap.org/current 有一个comlete API描述包括示例。

发送包含城市名称或城市ID的请求。答案是json回调。

实施例:  http://api.openweathermap.org/data/2.5/weather?id=2172797

回调中的温度是&#34; Kelvin&#34;。 1开尔文= -272.15摄氏度 1开尔文= -457.87华氏度

公式: 开尔文=摄氏+ 273.15 摄氏度=开尔文 - 273.15

摄氏和华氏 摄氏度= 5/9 x(华氏度-32) 华氏度=(摄氏度/(5/9))+ 32

你无法将凯尔文直接转换为华氏度。 你必须先将它转换为摄氏度。

答案 2 :(得分:0)

您可以使用雅虎天气服务。无需注册或任何其他内容。

以下是使用JS更新HTML的示例,它还保持每4分钟更新一次温度,以防用户离开浏览器窗口而不刷新...

var dest$ = $('#bodyright'),
    woeid = 2211096;

var updateWeather = function() {
    $.getJSON('//query.yahooapis.com/v1/public/yql?format=json&callback=?&q=' + encodeURIComponent('select item from weather.forecast where woeid=' + woeid + ''), function(data) {
        if (data && data['query'] && data['query']['results'] && data['query']['results']['channel'] && data['query']['results']['channel']['item'] && data['query']['results']['channel']['item']['condition']) {
           var wInfo = data['query']['results']['channel']['item']['condition'];

           $('<span></span>')
               .appendTo(dest$.append('<br/>'))
               .text('Temp: ' + wInfo['temp'] + ' F');

           // last updated...:
           $('<span></span>')
               .appendTo(dest$.append('<br/>'))
               .text('Last Updated: ' + wInfo['date']);

           // yahoo weather image can be loaded using (yimg_we/' + wInfo['code'] + '.gif'), cant remember URL...
           $('<img/>').attr({
                'src': 'https://s.yimg.com/dh/ap/default/121210/' + wInfo['code'] + '.png',
                'alt': wInfo['text'],
                'title': wInfo['text']
            }).appendTo(dest$.append('<br/>'));
        }
    });
    setTimeout(updateWeather, 240000);
};
setTimeout(updateWeather, 50);