//SET VARIABLES var map = null; var minimap = null; var map_tiles = {}; var ctr_tiles = {}; var map_layers = {}; var ctr_layers = {}; $(document).ready(function(){ //SET TILES map_tiles["osm"] = L.tileLayer("https://{s}.tile.openstreetmap.de/{z}/{x}/{y}.png", { maxNativeZoom:19, maxZoom: 20 }); ctr_tiles["Ruas"] = map_tiles["osm"]; map_tiles["arcgis"] = L.tileLayer('http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}',{ maxNativeZoom:18, maxZoom: 20 }); ctr_tiles["Satelite"] = map_tiles["arcgis"]; map_tiles["bing"] = L.tileLayer.bing('AgLA0Q_eJvbHQPhbE1H83YyV3PSBgsatKeO-Otwr8s3DCWsZtxKBsuxEIrXtQjC9',{ maxNativeZoom:18, maxZoom: 20 }); ctr_tiles["Mapa Bing"] = map_tiles["bing"]; map_tiles["jawg"] = L.tileLayer("https://{s}.tile.jawg.io/jawg-light/{z}/{x}/{y}{r}.png?access-token=C1vu4LOmp14JjyXqidSlK8rjeSlLK1W59o1GAfoHVOpuc6YB8FSNyOyHdoz7QIk6", { maxNativeZoom:19, maxZoom: 20 }); ctr_tiles["Mapa Claro"] = map_tiles["jawg"]; //SET LAYERS map_layers["search"]= L.layerGroup(); if(document.getElementById("postjson").innerText !== ""){ map_layers["Dados Enviados"] = L.layerGroup(); ctr_layers["Dados Enviados"] = map_layers["Dados Enviados"]; var dadosenviados = JSON.parse(document.getElementById("postjson").innerText); } map_layers["Unidades de saúde que atendem Covid-19"] = L.layerGroup(); ctr_layers["Unidades de saúde que atendem Covid-19"] = map_layers["Unidades de saúde que atendem Covid-19"]; map_layers["Bairros"] = L.layerGroup(); ctr_layers["Bairros"] = map_layers["Bairros"]; map_layers["Minha mascara"] = L.layerGroup(); ctr_layers["Minha mascara"] = map_layers["Minha mascara"]; map_layers["Rede de solidariedade"] = L.layerGroup(); ctr_layers["Rede de solidariedade"] = map_layers["Rede de solidariedade"]; $.getJSON("json/tipos.php", function(tipos){ L.control.layers(ctr_tiles, ctr_layers).addTo(map); map.addLayer(map_layers["Unidades de saúde que atendem Covid-19"]); //SIZE CORRECTION map.invalidateSize(true); }); //SET CONFIG map = L.map('map', { center: [-9.663136558749533, -35.71422457695007], layers: [map_tiles["jawg"]], zoomControl: true, maxZoom: 20, minZoom: 12, zoom: 14 }); minimap = L.map("location-minimap", { center: [0, 0], layers: L.tileLayer("https://{s}.tile.openstreetmap.de/{z}/{x}/{y}.png"), zoomControl: false, zoom: 17 }); //MINIMAP CONTROL minimap._handlers.forEach(function(handler) { handler.disable(); }); //LOAD DATA map.on('overlayadd', function(e){ $.getJSON("json/tipos.php", function(tipos){ var key = Object.keys(tipos).find(key => tipos[key]["texto"] === e.name); var popupId = 1; var auxiliar = 0; if(key === undefined){ if(map_layers[e.name].getLayers().length === 0){ if(e.name == "Minha mascara"){ $.getJSON("json/MINHA MASCARA_ONDE ENCONTRO.geojson", function(geoinfo){ $("#info-back").fadeOut("slow"); stopRot(); var groupMarker = new L.MarkerClusterGroup({ disableClusteringAtZoom: 20, showCoverageOnHover: true, zoomToBoundsOnClick: true, spiderfyOnMaxZoom: true }); $.each(geoinfo.features, function(a){ var coordinates = geoinfo.features[a].geometry.coordinates; var loc = new L.LatLng(coordinates[1], coordinates[0]); L.marker(loc,{icon:marker[20], alt:(JSON.stringify(geoinfo.features[a].properties))}).on('click', showMask).addTo(groupMarker); }); map_layers["Minha mascara"].addLayer(groupMarker); }); }else if(e.name == "Unidades de saúde que atendem Covid-19"){ $.getJSON("json/MAPA_HOSPITAIS-2.geojson", function(geoinfo){ $("#info-back").fadeOut("slow"); stopRot(); var groupMarker = new L.MarkerClusterGroup({ disableClusteringAtZoom: 20, showCoverageOnHover: true, zoomToBoundsOnClick: true, spiderfyOnMaxZoom: true }); $.each(geoinfo.features, function(a){ var coordinates = geoinfo.features[a].geometry.coordinates; var loc = new L.LatLng(coordinates[1], coordinates[0]); if(geoinfo.features[a].properties.CLASSE == "ROSA"){ L.marker(loc,{icon:marker[18], alt:(JSON.stringify(geoinfo.features[a].properties))}).on('click', showUnits).addTo(groupMarker); }else if(geoinfo.features[a].properties.CLASSE == "SALMAO"){ L.marker(loc,{icon:marker[19], alt:(JSON.stringify(geoinfo.features[a].properties))}).on('click', showUnits).addTo(groupMarker); }else{ L.marker(loc,{icon:marker[17], alt:(JSON.stringify(geoinfo.features[a].properties))}).on('click', showUnits).addTo(groupMarker); } }); map_layers["Unidades de saúde que atendem Covid-19"].addLayer(groupMarker); }); }else if(e.name == "Rede de solidariedade"){ $.getJSON("json/solidariedade-1.geojson", function(geoinfo){ $("#info-back").fadeOut("slow"); stopRot(); var groupMarker = new L.MarkerClusterGroup({ disableClusteringAtZoom: 20, showCoverageOnHover: true, zoomToBoundsOnClick: true, spiderfyOnMaxZoom: true }); $.each(geoinfo.features, function(a){ var coordinates = geoinfo.features[a].geometry.coordinates; var loc = new L.LatLng(coordinates[1], coordinates[0]); L.marker(loc,{icon:marker[21], alt:(JSON.stringify(geoinfo.features[a].properties))}).on('click', showSolidarityGR).addTo(groupMarker); }); map_layers["Rede de solidariedade"].addLayer(groupMarker); }); $.getJSON("json/solidariedade-2.geojson", function(geoinfo){ var groupMarker = new L.MarkerClusterGroup({ disableClusteringAtZoom: 20, showCoverageOnHover: true, zoomToBoundsOnClick: true, spiderfyOnMaxZoom: true }); $.each(geoinfo.features, function(a){ var coordinates = geoinfo.features[a].geometry.coordinates; var loc = new L.LatLng(coordinates[1], coordinates[0]); L.marker(loc,{icon:marker[22], alt:(JSON.stringify(geoinfo.features[a].properties))}).on('click', showSolidarityR).addTo(groupMarker); }); map_layers["Rede de solidariedade"].addLayer(groupMarker); }); $.getJSON("json/" + e.name + ".json", function(geoinfo){ $("#info-back").fadeOut("slow"); stopRot(); L.geoJSON(geoinfo, { onEachFeature: function (feature, layer) { if(e.name === "Bairros"){ layer.bindPopup("Bairro: " + feature.properties.BAIRRO + ""); layer.setStyle({fillColor:'blue', weight:3, opacity:1, color:'#0D81AB', fillOpacity:0.1}); } } }).addTo(map_layers[e.name]); }); } if(e.name != "Dados Enviados"){startRot()}; } } }); //SIZE CORRECTION map.invalidateSize(true); }); //SIZE CORRECTION map.invalidateSize(true); });