You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

100 lines
3.1 KiB

1 year ago
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css"
integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A=="
crossorigin=""/>
<style>
#myMap {
height: 1000px;
}
</style>
<title>Map</title>
</head>
<body>
<div id="myMap"></div>
</body>
<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"
integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA=="
crossorigin=""></script>
<script>
const tilesProvider = 'https://{s}.tile.openstreetmap.de/{z}/{x}/{y}.png'
let myMap = L.map ('myMap').setView([41.41,2.13],12)
L.tileLayer (tilesProvider, {
maxzoom: 18,
}).addTo (myMap)
/*DEfinim les propietats del marcador*/
let iconMarker = L.icon({
iconUrl:'images/marker.png',
iconSize:[30,30],
iconAnchor:[15,30] /*A quin punt en píxels de la imatge es clva el marcador al mapa */
})
let marker = L.marker ([41.41, 2.13], {icon:iconMarker}).addTo(myMap);
/*Definim el marcador amb les coordenades i l'objecte iconMarker definit*/
/*carregar els arxius geojson*/
function fetchJSON(url){
return fetch(url)
.then(function(response){
return response.json();
});
}
var style = {
fillColor: 'white',
weight: 1,
opacity: 1,
color: 'grey',
dashArray: '3',
fillOpacity: 0.7
};
var layers = {districtes:null, barris:null}
var currentlayer = null;
fetchJSON('data/districtres.geojson').then(function(data){
layers.districtes=data;
currentlayer = L.geoJSON(data,{style:style}).addTo(myMap);
})
myMap.on("zoom", function(event){//creem un event que escolti els botons de zoom (es una fucnion propia del leaflet)
if (myMap.getZoom()<=12){
currentlayer.clearLayers();
currentlayer.addData(layers.districtes);
//L.geoJSON(layers.districtes, {style: style}).addTo(myMap);
}
else if (myMap.getZoom()>12 && myMap.getZoom()<=15) {
if (layers.barris!=null){
currentlayer.clearLayers();
currentlayer.addData(layers.barris);
//L.geoJSON(layers.barris, {style: style}).addTo(myMap);
}
else{
fetchJSON('data/barris.4326.geojson').then(function(data){
layers.barris=data;
currentlayer.clearLayers();
currentlayer.addData(data);
//L.geoJSON(data,{style:style}).addTo(myMap);
});
}
}
else {
fetchJSON('parceles').then(function(data){
currentlayer.clearLayers();
currentlayer.addData(data);
})
}
});
</script>
</html>