kmlLayer导致焦点改变(谷歌地图api v3)

时间:2013-01-05 17:45:19

标签: google-maps-api-3 kml weather

我在一张焦点为8的地图上叠加NOAA雷达信息。当页面加载时,地图最初呈现为8,然后立即重绘自己以显示整个区域。

我正在使用的KML文件包含用于绘制雷达图像的最小/最大纬度/经度坐标(在这种情况下,在美国东南部地区)。如果我将这些坐标更改为覆盖较小的区域,则会根据需要调整Google地图的大小,但会根据KML文件剪切雷达活动。如果用户缩小或滚动到默认地图区域之外,则会出现此问题。

示例地图:http://georgiaoffroad.com/map2.html

示例KML文件:http://georgiaoffroad.com/includes/southeastradar.kml

有没有办法让雷达图像保持较大,但是将地图聚焦在可用雷达图像的较小区域上,以便用户可以缩放或滚动查看周围区域的天气?

2 个答案:

答案 0 :(得分:4)

将图层的选项preserveViewport设置为true:

new google.maps
     .KmlLayer({url:'http://georgiaoffroad.com/includes/southeastradar.kml',
                preserveViewport:true});

答案 1 :(得分:1)

我意识到这是一个非常晚的答案,但我想发布我用过的最适合我的技术。 Molle博士发布的方法不再适用,或者它对我不起作用。

添加" ctaLayer.set(' preserveViewport',true);"将图层设置为地图后,将使地图从自动聚焦到该kmz / kml文件。

var ctaLayer = new google.maps.KmlLayer('/kmz/90201.kmz');
          ctaLayer.setMap(map);
          ctaLayer.set('preserveViewport', true);