我了解Google在一两天前更新了地图。自更新以来,天气层不再适用于我正在构建的网页。我有安装了Apache服务器的MacBook Air。
当地图加载时,标记仍然有效且纬度和经度正确,但城市名称不再显示,也没有任何天气功能。
这是我试图解决的问题:
*我尝试了我在MacBook上安装的三种不同的网络浏览器 - Firefox,Safari,Google。三者中的问题相同。
*我尝试关闭Mac并重新打开。
*我去了谷歌地图API网站,根据我的编码是正确的
*如果我将zoom属性设置为13,城市名称将显示但没有天气层...我理解这是缩放设置为13或更高的正确行为。
*在Google maps API网站上,我复制并粘贴了天气图层的示例代码,但它确实有效!它们具有美国以外国家的经纬度。我将编码与示例编码进行了比较,除了纬度和经度之外,我的编码是相同的。因此,当我将示例编码中的纬度和经度更改为另一个位置时,天气层停止工作。
这是我的代码,但在我看来,问题出在谷歌的最后。有人建议我在这里发布问题(我已经在productforums.google.com上发布了这个问题),因为Google的员工会看到这个问题。
var map;
function initialize()
{
var mapOptions =
{
center: new google.maps.LatLng(40.0157394, -105.2792435),
/*center: new google.maps.LatLng(49.265984,-123.127491),*/
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
position: google.maps.ControlPosition.TOP_LEFT
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL,
position: google.maps.ControlPosition.LEFT_CENTER
}
};
map = new google.maps.Map(document.getElementById("gmap"), mapOptions);
/* Weather */
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);
/* Marker & InfoWindow */
var marker = new google.maps.Marker(
{
position: mapOptions.center,
map: map
});
var text = '<div id="mapText">' + 'I live in beautiful Boulder, CO!' + '</div>';
var infowin = new google.maps.InfoWindow(
{
content: text,
pixelOffset: new google.maps.Size(0, 20)
});
infowin.open(map, marker);
google.maps.event.addListener(marker, 'click', function()
{
infowin.open(map,marker);
});
};
google.maps.event.addDomListener(window, 'load', initialize);
要解决此问题,我将缩放设置为13,这样至少会显示城市和街道名称,并且当缩放设置为13或更高时,天气功能将被禁用。
我很确定我的编码是正确的。任何想法将不胜感激。