带有KML的Google地图不会遵循缩放设置;而是缩小以适合所有标记

时间:2011-11-02 00:31:36

标签: google-maps

使用Google Maps Javascript API V3,我设置了一个地图,用于从动态生成的KML文件中提取数据。结果如下: http://theevolvement.org/MapRetailers.php

在我的代码中(下面复制),我在地图的选项中将缩放指定为12。当页面加载时,它从指定的缩放开始,但在大约一秒钟内,地图缩小(并移动其指定的中心)以适合所有绘制的点。

我们希望使用指定的缩放加载地图,而不是包含所有绘制的数据。所以任何人都可以给出任何关于我做错的建议将不胜感激。谢谢大家!

    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="//maps.googleapis.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript">
    function initialize() {
      var vegas = new google.maps.LatLng(36.1589862,-115.1723833);
      var myOptions = {
        zoom: 12,
        center: vegas,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      }
      var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
      var ctaLayer = new google.maps.KmlLayer('http://theevolvement.org/MapRetailers.php?getKML=1&t=<?=mktime()?>');
      ctaLayer.setMap(map);
    }
    </script>
    </head><body onload="initialize()">
    <div id="map_canvas"></div>
    </body>

1 个答案:

答案 0 :(得分:9)

WOO!我终于找到了解决方案!

KmlLayer函数需要另一个参数{preserveViewport:true}

  var ctaLayer = new google.maps.KmlLayer('<?=$kmlURL?>', {preserveViewport: true});