Google Maps V3 Javascript Получение границ для работы с KML и маркерами

Я делаю карту, на которой у меня есть загрузка KML и маркеры, загружаемые на один и тот же холст, в котором я хочу, чтобы граница была такой же большой, как маркеры, даже если kml находится на холсте. Я использую это в сочетании с php, поэтому в коде есть немного php, но ничего особенного, кроме ввода информации для переменных.

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">  
  jQuery(document).ready(function($) {
      if ($('#map_canvas').length != 0) {
                    var myLatlng = new google.maps.LatLng(45.266438, -93.233225);
                    var myOptions = {
                      zoom: 4,
                      center: myLatlng,
                      mapTypeId: google.maps.MapTypeId.ROADMAP
                    }
                    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

                    var bounds = new google.maps.LatLngBounds();

                    var kmlLayer = new google.maps.KmlLayer('<?php bloginfo('template_url'); ?>/includes/delivery-maps/mansettisdel.kml', { map: map });

                var jsongeo = <?php echo(json_encode($geo_json)); ?>;               
                $.each(jsongeo, function(index, value) {  
                        var latlng = new google.maps.LatLng(value.lat,value.lng);
                        var marker = new google.maps.Marker({
                            position: latlng, 
                            map: map,
                            title:"Hello World!"
                            }); 
                        bounds.extend(latlng);
                    map.fitBounds(bounds);  

                    });                 

                    }    

    });
</script>

вот var_dump json, который я прокручиваю через широту и долготу.

string(617) "[{"type":"delivery","lat":"45.341969","lng":"-93.277657","date":"2011-07-11"},{"type":"delivery","lat":"45.005360","lng":"-93.323738","date":"2011-07-12"},{"type":"delivery","lat":"45.319408","lng":"-93.202446","date":"2011-07-12"},{"type":"delivery","lat":"45.131786","lng":"-93.216576","date":"2011-07-13"},{"type":"delivery","lat":"44.804131","lng":"-93.166885","date":"2011-07-13"},{"type":"delivery","lat":"45.119965","lng":"-93.287727","date":"2011-07-13"},{"type":"delivery","lat":"42.358433","lng":"-71.059776","date":"2011-07-13"},{"type":"delivery","lat":"34.195915","lng":"-84.507317","date":"2011-07-13"}]"

Теперь у меня нет проблем с прохождением маркеров, а только с границами. Я не знаю, есть ли что-то другое, что я мог бы сделать с лат, долго, но я прочитал об этом тонну и не могу ничего найти.

Вот что появляется.
Что появляется

Вот что я хотел бы показать. Что я хочу показать

Несмотря на то, что KML есть на карте, я бы хотел, чтобы маркеры были границами. Есть ли что-то, что карты Google делают, чтобы установить его в KML, или у меня есть границы, сделанные неправильно? Я заметил, что он переходит в представление границ, а затем ВПРАВО в представление KML.


person Dan    schedule 13.07.2011    source источник


Ответы (1)


Попробуйте добавить параметр saveViewport: true в параметры KML, чтобы он читался так:

var kmlLayer = new google.maps.KmlLayer('<?php bloginfo('template_url'); ?>/includes/delivery-maps/mansettisdel.kml', { 
  map: map,
  preserveViewport: true
});

Это должно остановить его масштабирование до границ KML.

http://code.google.com/apis/maps/documentation/javascript/reference.html#KmlLayerOptions

person Dave Folan    schedule 10.11.2011