谷歌地图标记不起作用

时间:2015-08-19 14:03:21

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

问题

  • 我需要在谷歌地图中实现多个标记。

  • 标记在Google地图中不可见。

html代码

   <span class="latitude" data-val={{value.latitude}} value={{value.latitude}} data-long={{value.longitude}} data-name="{{value.name}}"></span>

js code

 var zindex = 0;

 var locations = [];



 $.each($('.latitude'), function(index, value) {
     //console.log($(this).data('val'));
     var lat = $(this).data('val');
     var longs = $(this).data('long');
     locations.push($(this).data('name'));
     locations.push($(this).data('val'));
     locations.push($(this).data('long'));
     locations.push(zindex);
     console.log(locations);
     // console.log("---------");
     //  console.log(longs);
     //  console.log(zindex);
     var map = new google.maps.Map(document.getElementById('map'), {
         zoom: 10,
         center: new google.maps.LatLng(lat, longs),
         mapTypeId: google.maps.MapTypeId.ROADMAP
     });

     var infowindow = new google.maps.InfoWindow();

     var marker, i;

     for (i = 0; i < locations.length; i++) {
         marker = new google.maps.Marker({
             position: new google.maps.LatLng(locations[i][1], locations[i][2]),
             map: map,
             html: locations[0],
             //icon: image
         });
         console.log(locations[i]);

         google.maps.event.addListener(marker, 'click', (function(marker, i) {
             return function() {
                 infowindow.setContent(locations[i][0]);
                 infowindow.open(map, marker);
             }
         })(marker, i));
     }
     zindex++;
 });

json

  ["Conference Planning Meeting", 25.788969, -80.226439, 0, "Darwin Festival", -12.462827, 130.841777, 1, "Indiana State Fair", 39.768403, -86.158068, 2, "ICTP-CIMPA Advanced School", "-13.525000", -71.972222, 3, "HR Management MBA", 25.271139, 55.307485, 4, "10-day Finance & Accounting MBA", 25.271139, 55.307485, 5, "Leadership and Management Skills for the 21st Century", 51.511214, -0.119824, 6, "Results-Based Management and Performance Indicators", "45.508670", -73.553993, 7, "Capital Budgeting and Financial Management in the Public Sector", "45.508670", -73.553993, 8, "IDPM Accreditation Training Session", "45.508670", -73.553993, 9, "PPMS Accreditation Training Session", "45.508670", -73.553993, 10, "Erie County Fair", 42.715893, -78.829477, 11, "International Conference of Physics Students", 45.813029, 15.977895, 12, "Iowa State Fair", 41.600545, -93.609106, 13, "Illinois State Fair", 42.101483, -72.589811, 14, "Missouri State Fair", 38.704461, -93.228261, 15, "West Virginia State Fair", 40.964529, "-76.884410", 16, "Central States Fair", 44.080543, -103.231015, 17, "Wilson County Fair", "36.208110", -86.291102, 18, "Miami County Fair", 42.605589, "-83.149930", 19, "Montgomery County Agricultural Fair", 39.143441, -77.201371, 20, "Flowers And Honey All Year Round", "59.934280", 30.335099, 21, "School Fair", 47.026859, 28.841551, 22, "Singapore World Stamp Exhibition", 1.280095, 103.850949, 23, "Wilderness Medicine Conference", -33.867487, "151.206990", 24…]
  • 我无法找到任何建议最受欢迎的问题。
  • 我有来自stackoverflow网站的代码。

1 个答案:

答案 0 :(得分:2)

所以很难阅读你的代码,但这里有一个例子,它为每个span元素创建一个标记,其中包含类&#34; location&#34;使用数据属性:data-lat(纬度),data-lng(经度)和data-name

&#13;
&#13;
var map,
  infowindow,
  locations = [];

$(document).ready(function() {
  //initialize the map
  map = new google.maps.Map($('#map')[0], {
    zoom: 10,
    center: new google.maps.LatLng(0, 0),
    mapTypeId: google.maps.MapTypeId.ROADMAP
  });

  //initialize the infowindow
  infowindow = new google.maps.InfoWindow();

  //will use to fit all markers on map
  var bounds = new google.maps.LatLngBounds()

  //get locations
  $('.location').each(function(i, el) {
    var latitude = $(el).data('lat')
    var longitude = $(el).data('lng')
    var latlng = new google.maps.LatLng(latitude, longitude)

    //initialize marker
    var marker = new google.maps.Marker({
      position: latlng,
      map: map,
      name: $(el).data('name')
    })

    //include this marker in resulting view
    bounds.extend(latlng)

    //Notice the scope of the callback; `this` is context of clicked marker
    google.maps.event.addListener(marker, 'click', (function(e) {
      infowindow.close()
      infowindow.setContent(this.name)
      infowindow.open(map, marker)
    }).bind(marker));

    //add to collection so it can be accessed later
    locations.push(marker)
  });

  //set the map to show all markers
  map.fitBounds(bounds);
});
&#13;
html, body,
#map {
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
}
span.location {
  display: none;
}
&#13;
<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>

<span class="location" data-lat="25.788969" data-lng="-80.226439" data-name="Conference Planning Meeting">Conference Planning Meeting</span>
<span class="location" data-lat="-12.462827" data-lng="130.841777" data-name="Darwin Festival">Darwin Festival</span>
<span class="location" data-lat="39.768403" data-lng="-86.158068" data-name="Indiana State Fair">Indiana State Fair</span>
<span class="location" data-lat="-13.525000" data-lng="-71.972222" data-name="ICTP-CIMPA Advanced School">ICTP-CIMPA Advanced School</span>
<span class="location" data-lat="25.271139" data-lng="55.307485" data-name="HR Management MBA">HR Management MBA</span>
<span class="location" data-lat="25.271139" data-lng="55.307485" data-name="10-day Finance & Accounting MBA">10-day Finance & Accounting MBA</span>
<span class="location" data-lat="51.511214" data-lng="-0.119824" data-name="Leadership and Management Skills for the 21st Century">Leadership and Management Skills for the 21st Century</span>
<span class="location" data-lat="45.508670" data-lng="-73.553993" data-name="Results-Based Management and Performance Indicators">Results-Based Management and Performance Indicators</span>
<span class="location" data-lat="45.508670" data-lng="-73.553993" data-name="Capital Budgeting and Financial Management in the Public Sector">Capital Budgeting and Financial Management in the Public Sector</span>
<span class="location" data-lat="45.508670" data-lng="-73.553993" data-name="IDPM Accreditation Training Session">IDPM Accreditation Training Session</span>
<span class="location" data-lat="45.508670" data-lng="-73.553993" data-name="PPMS Accreditation Training Session">PPMS Accreditation Training Session</span>
<span class="location" data-lat="42.715893" data-lng="-78.829477" data-name="Erie County Fair">Erie County Fair</span>
<span class="location" data-lat="45.813029" data-lng="15.977895" data-name="International Conference of Physics Students">International Conference of Physics Students</span>
<span class="location" data-lat="41.600545" data-lng="-93.609106" data-name="Iowa State Fair">Iowa State Fair</span>
<span class="location" data-lat="42.101483" data-lng="-72.589811" data-name="Illinois State Fair">Illinois State Fair</span>
<span class="location" data-lat="38.704461" data-lng="-93.228261" data-name="Missouri State Fair">Missouri State Fair</span>
<span class="location" data-lat="40.964529" data-lng="-76.884410" data-name="West Virginia State Fair">West Virginia State Fair</span>
<span class="location" data-lat="44.080543" data-lng="-103.231015" data-name="Central States Fair">Central States Fair</span>
<span class="location" data-lat="36.208110" data-lng="-86.291102" data-name="Wilson County Fair">Wilson County Fair</span>
<span class="location" data-lat="42.605589" data-lng="-83.149930" data-name="Miami County Fair">Miami County Fair</span>
<span class="location" data-lat="39.143441" data-lng="-77.201371" data-name="Montgomery County Agricultural Fair">Montgomery County Agricultural Fair</span>
<span class="location" data-lat="59.934280" data-lng="30.335099" data-name="Flowers And Honey All Year Round">Flowers And Honey All Year Round</span>
<span class="location" data-lat="47.026859" data-lng="28.841551" data-name="School Fair">School Fair</span>
<span class="location" data-lat="1.280095" data-lng="103.850949" data-name="Singapore World Stamp Exhibition">Singapore World Stamp Exhibition</span>
<span class="location" data-lat="-33.867487" data-lng="151.206990" data-name="Wilderness Medicine Conference">Wilderness Medicine Conference</span>

<div id="map"></div>
&#13;
&#13;
&#13;