自动缩放以在Google Maps V3上显示标记

时间:2016-08-06 10:42:31

标签: javascript google-maps google-maps-api-3

我尝试在Google地图上按照自动缩放的说明操作,以便它始终适合地图上的标记。但我无法让它发挥作用。任何人都可以看到我的代码出了什么问题吗?

<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>

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:4)

  1. 您的所有标记都具有相同的名称。
  2. 你永远不会把它们放在标记数组中。
  3. initMarkers不存在。
  4. proof of concept fiddle

    代码段

    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>

答案 1 :(得分:2)

标记未添加到标记数组中,因此您在迭代空白数组。您需要将标记添加到数组中。你也给了所有标记相同的名称。请在下面找到固定代码。

<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>