/****************************************************/
/* HELPER */
/****************************************************/
var getUrlParameter = function (name) {
name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
var regex = new RegExp('[\\?&]' + name + '=([^]*)');
var results = regex.exec(location.search);
return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
};
/****************************************************/
/* CONFIG */
/****************************************************/
var lang = getUrlParameter("lang") || "nl";
var titleCasedLang = lang[0].toUpperCase() + lang[1]; // Nl/Fr
var mymap = L.map('mapid').setView([50.7694164, 4.3819917], 8);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: 'Map data Search Results © OpenStreetMap contributors',
maxZoom: 18
}).addTo(mymap);
var markers = L.markerClusterGroup({
disableClusteringAtZoom: 13
});
var formatPopup = function(properties) {
var span = document.createElement('span');
span.innerHTML =[
'' + properties.establishment + '',
properties['streetAddress' + titleCasedLang], // streetAddressNl
properties.postalCode + ' ' + properties.commune,
properties.owner
].join('
');
return span;
};
L.Control.Embed = L.Control.extend({
onAdd: function(map) {
var but = L.DomUtil.create('button');
but.setAttribute("id", "share-text")
but.innerHTML = lang === 'fr' ? '🔗 Intégrer' : '🔗 Insluiten'
return but;
},
onRemove: function(map) {
// Nothing to do here
}
});
L.Control.Fullscreen = L.Control.extend({
onAdd: function(map) {
var but = L.DomUtil.create('button');
but.setAttribute("type", "submit")
var i18n = lang === 'fr' ? '🗖 Plein écran' : '🗖 Volledig scherm';
but.innerHTML = '' + i18n + '';
return but;
},
onRemove: function(map) {
// Nothing to do here
}
});
L.control.embed = function(opts) {
return new L.Control.Embed(opts);
}
L.control.fullscreen = function(opts) {
return new L.Control.Fullscreen(opts);
}
L.control.fullscreen({ position: 'bottomleft' }).addTo(mymap);
L.control.embed({ position: 'bottomleft' }).addTo(mymap);
var xhr = new XMLHttpRequest();
xhr.open('GET', 'markers.json');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.responseType = 'json';
xhr.onload = function() {
if (xhr.status === 404) {
console.log('markers data not found--some dossiers like E dossiers do not have establishments');
return;
};
if (xhr.status !== 200) {
console.log('markers data server error');
return;
};
var geoJsonLayer = L.geoJSON(xhr.response, {
onEachFeature: function (feature, layer) {
layer.bindPopup(formatPopup(feature.properties));
}
});
markers.addLayer(geoJsonLayer);
mymap.addLayer(markers);
};
xhr.send();
c = new ChartShare(lang, "width:100%; height: 640px; border: 0px;");
document.getElementById("embed-text").innerHTML = lang === 'fr' ? 'Avec le code suivant vous pouvez intégrer le diagramme dans une page web. Choissisez la langue: ' : 'Met de volgende code kunt u het diagram insluiten op een web pagina. Kies de taal: ';