Markercluster加倍标记

时间:2016-02-25 19:34:32

标签: wordpress leaflet mapbox markerclusterer

出于某种原因,Markercluster正在将一组中的标记加倍。例如,当我点击一个组时,我会看到四个单独的标记,而不是两个。这些名字也是重复的。我查看了其他帖子,但仍然对此感到困惑。谢谢!

<script>
  var mapData = <?php echo wp_json_encode($mapData); ?>;
  var map = L.map('map').setView([40, 0], 2);
  var markers = new L.MarkerClusterGroup();

  L.mapbox.accessToken = 'myToken';

  var geocoder = L.mapbox.geocoder('mapbox.places');

  for ( var i = 0; i < mapData.length; i++ )
  {
     geocoder.query(mapData[i].city, showLoc);
  }

  L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=myToken', {
maxZoom: 18,
attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' +
    '<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
    'Imagery © <a href="http://mapbox.com">Mapbox</a>',
id: 'mapbox.streets'
   }).addTo(map);

function showLoc (err, data) {
   var city = data.results.query.join(' ');
   for ( var i = 0; i < mapData.length; i++ )
{

    if ( mapData[i].city.toLowerCase() === city ) {
        var marker = L.marker(new L.LatLng(data.latlng[0], data.latlng[1]), {
                        icon: L.mapbox.marker.icon({'marker-color': 'c70c2b'}),
                        title: mapData[i].name
                    });
        //new L.Marker([data.latlng[0], data.latlng[1]], 2)
    marker.bindPopup("<strong>" + mapData[i].name + "</strong>")

    markers.addLayer(marker);
}
}
markers.addTo(map);

}

1 个答案:

答案 0 :(得分:0)

想想我弄清楚了。非常简单的修复。不得不在var markers = new L.MarkerClusterGroup();函数中移动showLoc (err, data)。我认为这与在地图图块加载后声明它有关。但不确定。