Nantes Université

Skip to content
Extraits de code Groupes Projets
index.js 3,57 ko
Newer Older
Josik's avatar
Josik a validé
let countryColor = new Map();
let usedColor = new Map();
Josik's avatar
Josik a validé
let mymap = L.map('mapid').setView([52.51, 13.35], 4);
let cartodbAttribution = '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors';
L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
	maxZoom: 6,
	minZoom: 4,
	id: 'mapbox.satellite',
	attribution: cartodbAttribution
}).addTo(mymap);


Josik's avatar
Josik a validé
let allPoly = L.featureGroup();
let shownPoly = L.featureGroup().addTo(mymap);
Josik's avatar
Josik a validé
let currentShowingCountry;
Mattias DUPUIS's avatar
Mattias DUPUIS a validé
let pluriPays = false;
let listePluriPays = [];

const topValue = document.querySelector('#value');
topValue.addEventListener('input', ()=>{
	document.querySelector('#slider').value = topValue.innerHTML;
	refreshDisplay();
});

Titouan Levet's avatar
Titouan Levet a validé
let toggle = document.querySelector('#switch input');	
toggle.addEventListener('change', function() {
    displaySlider(this.checked)
});

importPersonnes();
importSouverainete();
Nicolas DARY's avatar
Nicolas DARY a validé
importMap();
Titouan Levet's avatar
Titouan Levet a validé
displaySlider(true);
Titouan Levet's avatar
Titouan Levet a validé

if (appMode)
{
	mymap.touchZoom.disable();
	mymap.doubleClickZoom.disable();
	mymap.scrollWheelZoom.disable();
	mymap.boxZoom.disable();
	mymap.keyboard.disable();

	// on click, clear all layers
	doc('delete').onclick = function (e) {
		shownPoly.clearLayers();
		shownPoly.eachLayer(function (layer){
			if (allPoly.hasLayer(layer)) {
				allPoly.removeLayer(layer);
			}
		});
		redefEachLayer();
	}

	//on click, export all polygones
	doc('export').onclick = function (e) {
		// Extract GeoJson from shownPoly
Josik's avatar
Josik a validé
		let data = allPoly.toGeoJSON();
		// Stringify the GeoJson
Josik's avatar
Josik a validé
		let convertedData = 'text/json;charset=utf-8,' + encodeURIComponent(JSON.stringify(data));

		// Create export
		doc('export').setAttribute('href', 'data:' + convertedData);
		doc('export').setAttribute('download', 'polygones.json');
	}
}
else
{
Josik's avatar
Josik a validé
	let drawControl = new L.Control.Draw({
		draw: {
			polyline: false,
			rectangle: false,
			circle: false
		},
		edit: {
			featureGroup: shownPoly
		}
	}).addTo(mymap);
}

mymap.on('draw:created', function (e) {
	let valide = true;

Josik's avatar
Josik a validé
	let layer = e.layer,
		feature = layer.feature = layer.feature || {}; // Intialize layer.feature

	feature.type = feature.type || "Feature"; // Intialize feature.type
Josik's avatar
Josik a validé
	let props = feature.properties = feature.properties || {}; // Intialize feature.properties
Josik's avatar
Josik a validé
		let idbataille = prompt("Nom de la bataille : ", "");
		let debut = prompt("Date de début : XX/XX/XXXX ", "");
		let fin = prompt("Date de fin : XX/XX/XXXX", "");

		if(idbataille == null || debut == null || fin == null)
			valide = false;

		props.idbataille = idbataille;
		props.debut = debut;
		props.fin = fin;

		if(valide)
		{
			// Each time a feature is created, it's added to the over arching feature group
			allPoly.addLayer(e.layer);

			refreshDisplay();
		}
	}
	else
	{
Josik's avatar
Josik a validé
		let idpays = prompt("Nom du pays : ", "");
		let debut = prompt("Année de début : ", "");
		let fin = prompt("Année de fin : ", "");

		if(idpays == null || debut == null || fin == null)
			valide = false;

		props.idpays = idpays;
		props.debut = debut;
		props.fin = fin;

		//console.log(e.layer);

		if(valide)
		{
			// Each time a feature is created, it's added to the over arching feature group
			allPoly.addLayer(e.layer);

			refreshDisplay();
		}
	}
});

mymap.on('draw:edited', function (e) {
	e.layers.eachLayer(function (layer) {
		//console.log(layer);
	});
});

mymap.on('draw:deleted', function (e) {
	e.layers.eachLayer(function (layer) {
		allPoly.removeLayer(layer);
	});
Mattias DUPUIS's avatar
Mattias DUPUIS a validé
});