/****************************************************/
/* 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");
if (['nl', 'fr', 'en', 'de'].indexOf(lang) === -1) {
lang = 'nl';
}
var streetAdressProperty = 'streetAddressNl';
if (lang === 'fr' || lang === 'en') {
var streetAdressProperty = 'streetAddressFr';
}
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[streetAdressProperty], // 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 = {
fr: '🔗 Intégrer',
nl: '🔗 Insluiten',
en: '🔗 Embed',
de: '🔗 Einbetten'
}[lang];
return but;
},
onRemove: function(map) {
// Nothing to do here
}
});
L.control.embed = function(opts) {
return new L.Control.Embed(opts);
}
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 = {
fr: 'Avec le code suivant vous pouvez intégrer le diagramme dans une page web. Choissisez la langue: ',
nl: 'Met de volgende code kunt u het diagram insluiten op een web pagina. Kies de taal: ',
en: 'With the following code you can embed the diagram on a web page. Choose the language: ',
de: 'Mit dem folgenden Code können Sie das Diagramm in eine Webseite einbetten. Wählen Sie die Sprache: '
}[lang];