此部分中的概念仅适用于 google.maps.weather 库中提供的地图项。默认情况下,系统在加载 Maps JavaScript API 时不会加载该库,您必须使用 libraries 引导程序参数进行明确指定。
您可以通过 google.maps.weather 库的 WeatherLayer 类和 CloudLayer 类在地图上显示天气数据和云图。启用云况图层会在地图中添加云量图像(在 0 到 6 的缩放级别下显示)。
启用天气图层会在地图上显示来自 weather.com 的当前天气状况,其中包括表示晴天、多云、雨天等天气的图标。点击某个特定地区的天气图标会打开一个信息窗口,其中列出了当前湿度和风况等详细数据,以及未来四天的天气预报。
您可以通过 WeatherMouseEvent 对象的 featureDetails 属性访问这些详细数据。以下示例在您单击图标时进行检测,然后显示相关位置的当前温度。google.maps.event.addListener(weatherLayer, 'click', function(e) {
alert('The current temperature at ' + e.featureDetails.location + ' is '
+ e.featureDetails.current.temperature + ' degrees.');
});
利用 WeatherLayerOptions 对象,您可以停用信息窗口,配置天气图层上显示的标签颜色,并自定义显示的温度单位(摄氏度或华氏度)和风速单位(公里/小时、英里/小时或米/秒)。
如果启用了天气图层且缩放级别设为 12 或以下,那么您的地图上会停用管理标签(如街道或地区的名称)。如果缩放级别为 13,地图会自动停用天气图层,并恢复显示管理标签。
以下示例启用了云况和天气图层,并将默认单位设为华氏度。
程序运行结果如下:
程序代码如下:[code]
html,body { height: 100%; margin: 0; padding: 0; }#map_canvas {
height: 100%;
}
@media print {
html,body {
height: auto;
}
#map_canvas {
height: 650px;
}
}
var map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
var weatherLayer = new google.maps.weather.WeatherLayer({
temperatureUnits: google.maps.weather.TemperatureUnit.FAHRENHEIT
});
weatherLayer.setMap(map);
var cloudLayer = new google.maps.weather.CloudLayer();
cloudLayer.setMap(map);
}
</script>
[/code]