简体   繁体   English

自动缩放以适合Google Maps V3上的标记

[英]Autozoom to fit markers on Google Maps V3

I tried to follow instructions for autozoom on Google maps so that it always fits to the markers on the maps. 我试图按照说明在Google地图上进行自动缩放,以使其始终适合于地图上的标记。 But I can't get it to work. 但是我无法正常工作。 Can anyone see what's wrong with my code? 谁能看到我的代码出了什么问题?

<script>

    function initMap() {
        var myLatLng = { lat: 55.561213987, lng: 8.1286275387 };

        var map = new google.maps.Map(document.getElementById('map-canvas'), {
            zoom: 13,
            center: myLatLng    
        });

        var marker = new google.maps.Marker({
            position: myLatLng,
            map: map,
            title: 'Top moderne sommerhus med alle faciliteter beliggende på en skøn grund med mange'
        });


        var marker = new google.maps.Marker({
            position: { lat: 55.5577227947, lng: 8.1225042121 },
            label: "1",
            map: map,
            title: 'Lækkert sommerhus beliggende på en dejlig naturgrund'
        });

        var marker = new google.maps.Marker({
            position: { lat: 55.5570797278, lng: 8.1276749566 },
            label: "2",
            map: map,
            title: 'Sommerhus med stråtag beliggende på en meget stor grund med mange fyrretræer og '
        });

        var marker = new google.maps.Marker({
            position: { lat: 55.56169, lng: 8.13126 },
            label: "3",
            map: map,
            title: 'Dette skønne feriehus fremstår utroligt flot'
        });

        var marker = new google.maps.Marker({
            position: { lat: 55.5560563333123, lng: 8.12075257301331 },
            label: "4",
            map: map,
            title: 'Spændende, velholdt, stråtækt feriehus i sten, beliggende på delvis lukket natur'
        });

        var marker = new google.maps.Marker({
            position: { lat: 55.55282, lng: 8.12843 },
            label: "5",
            map: map,
            title: 'Kun 850 m fra Vesterhavet med den dejlige sandstrand og ca'
        });


        var map;
        var bound = new google.maps.LatLngBounds();
        var markers = new Array();

        //jQuery style entry point, change if necessary
        $(document).ready(function(){
          initMap();
          initMarkers();

          for(var i in markers)
          {
            bound.extend(markers[i].getPosition());
          }
          map.fitBounds(bound);
        });

        }
</script>

Any help will be much appreciated! 任何帮助都感激不尽!

  1. All your markers have the same name. 您所有的标记都具有相同的名称。
  2. You don't ever put them in the markers array. 您永远不会将它们放在markers数组中。
  3. initMarkers doesn't exist. initMarkers不存在。

proof of concept fiddle 概念证明

code snippet: 代码段:

 function initMap() { var myLatLng = { lat: 55.561213987, lng: 8.1286275387 }; var map = new google.maps.Map(document.getElementById('map-canvas'), { zoom: 13, center: myLatLng }); var markers = []; var marker = new google.maps.Marker({ position: myLatLng, map: map, title: 'Top moderne sommerhus med alle faciliteter beliggende på en skøn grund med mange' }); markers.push(marker); var marker = new google.maps.Marker({ position: { lat: 55.5577227947, lng: 8.1225042121 }, label: "1", map: map, title: 'Lækkert sommerhus beliggende på en dejlig naturgrund' }); markers.push(marker); var marker = new google.maps.Marker({ position: { lat: 55.5570797278, lng: 8.1276749566 }, label: "2", map: map, title: 'Sommerhus med stråtag beliggende på en meget stor grund med mange fyrretræer og ' }); markers.push(marker); var marker = new google.maps.Marker({ position: { lat: 55.56169, lng: 8.13126 }, label: "3", map: map, title: 'Dette skønne feriehus fremstår utroligt flot' }); markers.push(marker); var marker = new google.maps.Marker({ position: { lat: 55.5560563333123, lng: 8.12075257301331 }, label: "4", map: map, title: 'Spændende, velholdt, stråtækt feriehus i sten, beliggende på delvis lukket natur' }); markers.push(marker); var marker = new google.maps.Marker({ position: { lat: 55.55282, lng: 8.12843 }, label: "5", map: map, title: 'Kun 850 m fra Vesterhavet med den dejlige sandstrand og ca' }); markers.push(marker); // initMarkers(); var bound = new google.maps.LatLngBounds(); for (var i in markers) { bound.extend(markers[i].getPosition()); } map.fitBounds(bound); } //jQuery style entry point, change if necessary $(document).ready(function() { initMap(); }); 
 html, body, #map-canvas { height: 100%; width: 100%; margin: 0px; padding: 0px } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://maps.googleapis.com/maps/api/js"></script> <div id="map-canvas"></div> 

The markers were not added to the markers array and hence you were iterating over a blank array. 标记未添加到标记数组,因此您要遍历空白数组。 You need to add the markers to the array. 您需要将标记添加到数组。 Also you had given all the markers the same name. 您还为所有标记指定了相同的名称。 Please find below the fixed code. 请在下面找到固定代码。

<script>
var map;
var bound = new google.maps.LatLngBounds();
var markers = new Array();

function initMap() {
        var myLatLng = { lat: 55.561213987, lng: 8.1286275387 };

        map = new google.maps.Map(document.getElementById('map-canvas'), {
            zoom: 13,
            center: myLatLng    
        });
    }

   function initMarkers(){


        var marker1 = new google.maps.Marker({
            position: myLatLng,
            map: map,
            title: 'Top moderne sommerhus med alle faciliteter beliggende på en skøn grund med mange'
        });
        markers.push(marker1)

        var marker2 = new google.maps.Marker({
            position: { lat: 55.5577227947, lng: 8.1225042121 },
            label: "1",
            map: map,
            title: 'Lækkert sommerhus beliggende på en dejlig naturgrund'
        });
        markers.push(marker2)

        var marker3 = new google.maps.Marker({
            position: { lat: 55.5570797278, lng: 8.1276749566 },
            label: "2",
            map: map,
            title: 'Sommerhus med stråtag beliggende på en meget stor grund med mange fyrretræer og '
        });
        markers.push(marker3)

        var marker4 = new google.maps.Marker({
            position: { lat: 55.56169, lng: 8.13126 },
            label: "3",
            map: map,
            title: 'Dette skønne feriehus fremstår utroligt flot'
        });
        markers.push(marker4)

        var marker5 = new google.maps.Marker({
            position: { lat: 55.5560563333123, lng: 8.12075257301331 },
            label: "4",
            map: map,
            title: 'Spændende, velholdt, stråtækt feriehus i sten, beliggende på delvis lukket natur'
        });
        markers.push(marker5)

        var marker6 = new google.maps.Marker({
            position: { lat: 55.55282, lng: 8.12843 },
            label: "5",
            map: map,
            title: 'Kun 850 m fra Vesterhavet med den dejlige sandstrand og ca'
        });
        markers.push(marker6)
     }





        //jQuery style entry point, change if necessary
        $(document).ready(function(){
          initMap();
          initMarkers();

          for(var i in markers)
          {
            bound.extend(markers[i].getPosition());
          }
          map.fitBounds(bound);
        });


</script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM