Skip to content

Departamento de Matematica

Sections
Personal tools
You are here: Home » Members » martinmaas's Home » leaflet_test
Views
  • State: visible

leaflet_test

Click here to get the file

Size 4.8 kB - File type text/html

File contents

<!DOCTYPE html>
<html>
<head>
	<link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css"
	integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A=="
	crossorigin=""/>

	<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"
	integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA=="
	crossorigin=""></script>
	
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
	
	<script type="text/javascript" src="Deptos_light.json"></script>
	
	<script src="/home/martin/node_modules/chart.js/dist/Chart.js"></script>

	<style>
		#mapid { height: 800px; }
		
		.info {
			padding: 6px 8px;
			font: 14px/16px Arial, Helvetica, sans-serif;
			background: white;
			background: rgba(255,255,255,0.8);
			box-shadow: 0 0 15px rgba(0,0,0,0.2);
			border-radius: 5px;
		}
		.info h4 {
			margin: 0 0 5px;
			color: #777;
		}
		
		.legend {
			line-height: 18px;
			color: #555;
		}
		.legend i {
			width: 18px;
			height: 18px;
			float: left;
			margin-right: 8px;
			opacity: 0.7;
		}
	</style>
	

</head>
<body>

	<h2> Leaflet map</h2>

	<div id="mapid"></div>
	
	<script>
	var mymap = L.map('mapid', 
	            {
                    center: [-42.0, -57.0],
                    crs: L.CRS.EPSG3857,
                    zoom: 5,
                    zoomControl: true,
                    preferCanvas: false,
                }
	);
	
	function getColor(d) {
		return d > 1000 ? '#800026' :
			   d > 500  ? '#BD0026' :
			   d > 200  ? '#E31A1C' :
			   d > 100  ? '#FC4E2A' :
			   d > 50   ? '#FD8D3C' :
			   d > 20   ? '#FEB24C' :
			   d > 10   ? '#FED976' :
						  '#FFEDA0';
	}
	
	function style(feature) {
		return {
			fillColor: getColor(feature.properties.in1),
			weight: 2,
			opacity: 1,
			color: 'white',
			dashArray: '3',
			fillOpacity: 0.7
		};
	}	
	
	L.tileLayer(
                "https://stamen-tiles-{s}.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.jpg",
                {"attribution": "Map tiles by \u003ca href=\"http://stamen.com\"\u003eStamen Design\u003c/a\u003e, under \u003ca href=\"http://creativecommons.org/licenses/by/3.0\"\u003eCC BY 3.0\u003c/a\u003e. Data by \u0026copy; \u003ca href=\"http://openstreetmap.org\"\u003eOpenStreetMap\u003c/a\u003e, under \u003ca href=\"http://creativecommons.org/licenses/by-sa/3.0\"\u003eCC BY SA\u003c/a\u003e.", "detectRetina": false, "maxNativeZoom": 18, "maxZoom": 18, "minZoom": 5, "noWrap": false, "opacity": 1, "subdomains": "abc", "tms": false}
            ).addTo(mymap)
    
    // Custom Info Control
            
	var info = L.control();

	info.onAdd = function (map) {
		this._div = L.DomUtil.create('div', 'info'); // create a div with a class "info"
		this.update();
		return this._div;
	};

	info.update = function (props) {
		this._div.innerHTML = '<h4>Datos de Sequías</h4>' +  (props ?
			'<b>' + props.nam + '</b><br />'
			: 'Seleccione Departamento');
	};

	info.addTo(mymap);     
	
	// Custom Legend Control
	
	var legend = L.control({position: 'bottomright'});

	legend.onAdd = function (map) {

		var div = L.DomUtil.create('div', 'info legend'),
			grades = [0, 10, 20, 50, 100, 200, 500, 1000],
			labels = [];

		// loop through our density intervals and generate a label with a colored square for each interval
		for (var i = 0; i < grades.length; i++) {
			div.innerHTML +=
				'<i style="background:' + getColor(grades[i] + 1) + '"></i> ' +
				grades[i] + (grades[i + 1] ? '&ndash;' + grades[i + 1] + '<br>' : '+');
		}

		return div;
	};

	legend.addTo(mymap);       

	// Mouse Events
	function highlightFeature(e) {
		var layer = e.target;

		layer.setStyle({
			weight: 5,
			color: '#666',
			dashArray: '',
			fillOpacity: 0.7
		});

		if (!L.Browser.ie && !L.Browser.opera && !L.Browser.edge) {
			layer.bringToFront();
		}
		
		info.update(layer.feature.properties);
	}

	function resetHighlight(e) {
		geojson.resetStyle(e.target);
		info.update();
	}            

	function zoomToFeature(e) {
		mymap.fitBounds(e.target.getBounds());
	}

            
	function onEachFeature(feature, layer) {
		layer.on({
			mouseover: highlightFeature,
			mouseout: resetHighlight,
			click: zoomToFeature
		});
	}          
	
	// Add map
	geojson = L.geoJSON(myGeoDeptos, {
		style: style,
		onEachFeature: onEachFeature
		}).addTo(mymap);
	
	//~ var Ene18 = {
	  //~ "65005" : { "imerg": -0.25, "smapl3": -0.33, "ndvi": -0.24 },
	  //~ "65006" : { "imerg": -0.78, "smapl3": 0.21, "ndvi": 0.33 }
	//~ };	
	</script>


	<h2>Javascript Charts</h2>

	<p>Testing libraries.</p>

	<canvas id="myChart" width="400" height="200"></canvas>

	<script>
	var ctx = document.getElementById('myChart');

	var myLineChart = new Chart(ctx, {
		type: 'line',
		data: [20, 10],
		options: options
	});

	</script>

	</body>
</html> 
Created by martinmaas
Last modified 2020-10-14 07:41 PM
 
 

Powered by Plone