Карта Google с KML не подчиняется настройке масштабирования;Вместо этого масштабируется, чтобы соответствовать всем маркерам - PullRequest
4 голосов
/ 02 ноября 2011

Используя 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 Ответ

9 голосов
/ 02 ноября 2011

WOO!Я наконец-то нашел решение!

Для функции KmlLayer требуется еще один параметр, {preserveViewport: true}

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