var WeatherRetriever = { map: { "\u6674":14, "\u591a\u4e91":1, "\u9634":4, "\u96fe":11, "\u7279\u5927\u66b4\u96e8":9, "\u5927\u66b4\u96e8":9, "\u66b4\u96e8":9, "\u96f7\u9635\u96e8":3, "\u9635\u96e8":10, "\u5927\u96e8":9, "\u4e2d\u96e8":9, "\u5c0f\u96e8":9, "\u96e8\u5939\u96ea":13, "\u66b4\u96ea":15, "\u9635\u96ea":15, "\u5927\u96ea":15, "\u4e2d\u96ea":15, "\u5c0f\u96ea":6, "\u5f3a\u6c99\u5c18\u66b4":2, "\u6c99\u5c18\u66b4":2, "\u6c99\u5c18":2, "\u626c\u6c99":5, "\u51b0\u96f9":8, "\u6d6e\u5c18":1, "\u973e":12 }, imageMap: { "0": "14", "1": "1", "2": "4", "3": "10", "4": "3", "5": "3", "6": "13", "7": "9", "8": "9", "9": "9", "10": "9", "11": "9", "12": "9", "13": "15", "14": "6", "15": "15", "16": "15", "17": "15", "18": "11", "19": "9", "20": "2", "21": "9", "22": "9", "23": "9", "24": "9", "25": "9", "26": "6", "27": "15", "28": "15", "29": "2", "30": "5", "31": "2", "32": "12", "33": "4", "34": "4", "35": "4" }, retrieve: function(city, date, time, callback) { var days = (Util.date.parse(date) - Util.date.floor()) / 86400000, code = CityMap.name2weather[city]; if (!code) { return ; } if (days < 0 || days > 6) { return ; } var currentTime = Util.date.formatTime(), offset = days * 2; if (currentTime < '18:00') { offset += 1; } //假设不存在起落在同日8:00前的航班;起飞时间在8:00前,天气认为是白天天气 if (time >= '20:00') { offset += 1; } $.getJSON(config.urls.weather + code, function(data) { var img = data.yb[days ? 'img' + offset : 'img_single'], title = data.yb[days ? 'img_title' + offset : 'img_title_single']; if (img === '99') { img = 'img' + (offset - 1); } callback && callback(img, title); }); }, fill: function(element, date) { for (i=0; i<=15; i++) { $('.weather .icon', element).removeClass('weatherIcon' + i); } $('.weather .icon', element).addClass('weatherIcon0'); $('.weather .text', element).text('无法获取').addClass('noText'); this.retrieve($('.point', element).text(), date, $('.time',element).text(), function(weatherImg, weatherTitle) { var i; if (WeatherRetriever.imageMap[weatherImg] !== undefined) { $('.weather .icon', element).removeClass('weatherIcon0').addClass('weatherIcon' + WeatherRetriever.imageMap[weatherImg]); $('.weather .text', element).text(weatherTitle).removeClass('noText'); $('.weather .text,.icon', element).hide().fadeIn('slow'); } }); } };