0

我正在使用 jquery ui 地图,我正在从 geoJSON 加载标记,然后我想对它们进行聚类,但我可以看到标记但看不到聚类。

我的代码如下:

$('#map_tracks').gmap({ 'center': '45.752051,6.295604', 'zoom': 12 }).bind('init', function(ev, map) {
    $('#choose_sentiers').change(function() {
      var selected = $('#choose_sentiers').val();      

      $('#map_tracks').gmap('loadKML', 'sentier', 'http://example.org/media/kml/sentiers_vtt_randos/'+selected+'.kml');

      $.getJSON(“markers.geojson”,函数(数据){                
        $.each(data["features"], function(key, val) {
          var longitude = val["几何"]["坐标"][0];
          var 纬度 = val["几何"]["坐标"][1];
          var nom = val["属性"]["NOM"];
          var type = val["properties"]["TYPE"];

          $('#map_tracks').gmap('addMarker', {
                  “位置”:新的 google.maps.LatLng(纬度,经度)
              }).click(函数() {
                  $('#map_tracks').gmap('openInfoWindow', {'content': nom }, this);
              });

        });

      });


    });
    $('#map_tracks').gmap('set', 'MarkerCluster', new MarkerClusterer(map, $(this).gmap('get', 'markers')));
  });

当我做 console.log($(this).gmap('get', 'markers')); 它是空的,我不明白为什么它会这样。

你有想法吗 ?

谢谢

4

1 回答 1

0

我找到了解决方法:

var markercluster;
 $('#map_tracks').gmap({ 'center': '45.752051,6.295604', 'zoom': 12 }).bind('init', function(ev, map) {
 $('#choose_tracks').change(function() {
  var selected = $('#choose_tracks').val();      

  if ( selected != 'none' )
  {       
    $("#map_tracks").gmap('clear', 'overlays');

    $('#map_tracks').gmap('loadKML', 'sentier', 'http://mynicesite.com/media/kml/'+selected+'.kml');

    $.getJSON( "http://mynicesite.com/media/geojson/sentiers_poi/"+selected+".geojson").done(function( data ) {
      if ( markercluster != undefined )
      {
        markercluster.clearMarkers();
      }

      $.each( data["features"], function( key, val ) {
        var longitude = val["geometry"]["coordinates"][0];
        var latitude = val["geometry"]["coordinates"][1];
        var nom = val["properties"]["NOM"];
        var type = val["properties"]["TYPE"];

        $('#map_tracks').gmap('addMarker', { 
                  'position': new google.maps.LatLng(latitude, longitude),
          'icon':'http://mynicesite.com/media/kml/'+markersIcons[type]['name']
              }).click(function() {
                  $('#map_tracks').gmap('openInfoWindow', { 'content': nom }, this);
              });    
      });

      markercluster = new MarkerClusterer(map, $('#map_tracks').gmap('get', 'markers'));

      $('#map_tracks').gmap('set', 'MarkerClusterer', markercluster);  
    });

    drawPath(selected);        
  }   
 });    
});
于 2015-06-02T13:56:26.070 回答