Google Weather Api可以接受经纬度坐标当参数来获取指定经纬度的天气情况,如湿度,风向等,同时也可以获取该点的后5天的天气预报情况。所以有了个想法,就是将Google Weather Api支持的城市的天气情况,然后结合到GoogleMap中,可以直观显示出主要城市的天气情况。首先需要将天气情况存储到数据库中,用以后面的天气情况的显示。如下是针对Google Weather Api的调用并解析(Api调用地址: string GWP_Url = "http://www.google.com/ig/api?hl=zh-cn&weather=,,,{0},{1}";),发送请求解析保存到指定的数据库表。
获取对应的信息即可开始显示在地图上了,数据库表中有对应的经纬度信息,和相应的天气预报情况。 这里主要使用Google Map Api的GInfoWindowTab类显示对应以后每天的天气预报情况。点击查看在线Demo,GoogleMap显示天气预报信息 详细代码如下:
for (var i = 0; i < jsWeathers.length; i++) {
var lat = jsWeathers[i].Lat * 0.000001;
var lon = jsWeathers[i].Lon * 0.000001;
var point = new GLatLng(lat, lon);
var mark = new GMarker(point, { icon: getWeatherIcon(jsWeathers[i].WeatherInfos[0].Icon) });
var infoTabs = [];
for (var k = 0; k < jsWeathers[i].WeatherInfos.length; k++) {
if (k == 0) {
infoTabs.push(new GInfoWindowTab(jsWeathers[i].WeatherInfos[k].DayOfWeek, "城市:" + jsWeathers[i].CityName + "<br/>天气:" + jsWeathers[i].WeatherInfos[k].Conditon + "<br/>" + jsWeathers[i].WeatherInfos[k].Humidity + "<br/>" + jsWeathers[i].WeatherInfos[k].WindCondition));
}
else {
infoTabs.push(new GInfoWindowTab(jsWeathers[i].WeatherInfos[k].DayOfWeek, "天气:" + jsWeathers[i].WeatherInfos[k].Conditon + "<br/>" + "最高温度:" + jsWeathers[i].WeatherInfos[k].High + "<br/>" + "最低温度:" + jsWeathers[i].WeatherInfos[k].Low));
}
}
mark.infoTabs = infoTabs;
map.addOverlay(mark);
(function(mark, infoTabs) {
GEvent.addListener(mark, "mouseover", function() {
mark.openInfoWindowTabsHtml(infoTabs);
});
})(mark, infoTabs);