' +
- '

' +
- '
' + event.description + '
';
+ var popup = L.popup({ maxWidth: 600 }).setContent(content);
- var popup = L.popup({ maxWidth: 600 })
- .setContent(content)
+ e.target.bindPopup(popup).openPopup();
+ }
+ });
+ };
- e.target.bindPopup(popup).openPopup();
- }
- });
- }
+ var success = function (data) {
+ console.log('â
API returned countries:', Object.keys(data));
- // Clear old layers
- $.each(markersCountryLayers, function (countryKey, layer) {
- layer.clearLayers();
- map.removeLayer(layer);
- });
- markersCountryLayers = {};
+ // Clear old cluster
+ masterCluster.clearLayers();
- // Now process new data
- $.each(data, function (key, countryEvents) {
- // SAFE normalization:
- var countryKey = key.toUpperCase();
+ var allMarkers = [];
- var markersListPerCountry = [];
- $.each(countryEvents, function (key, val) {
+ $.each(data, function (key, country) {
+ $.each(country, function (key, val) {
if (val.geoposition) {
var coordinates = val.geoposition.split(',');
var lat = parseFloat(coordinates[0]);
var lng = parseFloat(coordinates[1]);
if (!isNaN(lat) && !isNaN(lng)) {
- var marker = L.marker(L.latLng(lat, lng), { id: val.id });
+ var marker = L.marker([lat, lng], { id: val.id });
marker.on('click', markerOnClick);
- markersListPerCountry.push(marker);
+ allMarkers.push(marker);
}
}
});
+ });
- var countryCluster = L.markerClusterGroup({
- showCoverageOnHover: false,
- maxClusterRadius: 120,
- chunkedLoading: true,
- iconCreateFunction: function (cluster) {
- var total = cluster.getAllChildMarkers().length;
- var iconSize;
- var className = "mycluster ";
- if (total <= 10) {
- iconSize = L.point(30, 30);
- className += "size1";
- } else if (total <= 100) {
- iconSize = L.point(35, 35);
- className += "size2";
- } else if (total <= 1000) {
- iconSize = L.point(40, 40);
- className += "size3";
- } else if (total <= 10000) {
- iconSize = L.point(45, 45);
- className += "size4";
- } else {
- iconSize = L.point(50, 50);
- className += "size5";
- }
- return L.divIcon({ html: '
' + total + '
', className: className, iconSize: iconSize });
- }
- });
+ console.log('â
Adding', allMarkers.length, 'markers to master cluster');
+ masterCluster.addLayers(allMarkers);
- countryCluster.addLayers(markersListPerCountry);
- markersCountryLayers[countryKey] = countryCluster;
- map.addLayer(countryCluster);
- });
+ map.addLayer(masterCluster);
// process next components
$wt._queue("next");
- }
+ };
$('#id_year').on('change', function () {
getEvents(this.value);
@@ -108,6 +99,7 @@ L.custom = {
}
function getEvents(year) {
+ console.log('âšī¸ Loading events for year', year);
$.ajax({
dataType: "json",
url: "api/event/list?year=" + year,
@@ -117,6 +109,5 @@ L.custom = {
var year = param('year') ? param('year') : new Date().getFullYear();
getEvents(year);
-
}
-}
+};