var map; var baseMaps; //TODO verify good center var default_centerLatitude = 52; var default_centerLongitude = -97; var default_startZoom = 4; var default_localZoom = 15; var default_mapType = 'Roadmap'; var current_centerLatitude; var current_centerLongitude; var done_init = 0; var location_circle = L.circle(); var location_marker = L.marker(); var location_image = L.icon({ iconUrl: 'images/location_pin.png', iconSize: [12,28], iconAnchor: [6,28] }); var dataset; var pid_map; var layerA = 1; var layerB = 0; var layerR = 0; var layerT = 0; var layerM = 0; var layerO = 0; var pid = 0; var layerAMap; var layerBMap; var layerRMap; var layerTMap; var layerMMap; var layerOMap; var db_map=[{"name":"Current","value":20240306},{"name":"Jan 29, 2024","value":20240129},{"name":"Dec 28, 2023","value":20231228},{"name":"Dec 1, 2023","value":20231201},{"name":"Oct 30, 2023","value":20231030},{"name":"Oct 5, 2023","value":20231005},{"name":"Sep 1, 2023","value":20230901},{"name":"Jul 26, 2023","value":20230726},{"name":"Jun 30, 2023","value":20230630},{"name":"May 31, 2023","value":20230531},{"name":"Apr 27, 2023","value":20230427},{"name":"Apr 11, 2023","value":20230411},{"name":"Feb 28, 2023","value":20230228},{"name":"Feb 1, 2023","value":20230201},{"name":"Jan 9, 2023","value":20230109},{"name":"Dec 2, 2022","value":20221202},{"name":"Nov 4, 2022","value":20221104},{"name":"Oct 4, 2022","value":20221004},{"name":"Aug 31, 2022","value":20220831},{"name":"Aug 2, 2022","value":20220802},{"name":"Jun 27, 2022","value":20220627},{"name":"Apr 1, 2022","value":20220401},{"name":"Feb 23, 2022","value":20220223},{"name":"Jan 25, 2022","value":20220125},{"name":"Dec 2, 2021","value":20211202},{"name":"Sep 2, 2021","value":20210902},{"name":"Jul 5, 2021","value":20210705},{"name":"May 26, 2021","value":20210526},{"name":"May 3, 2021","value":20210503},{"name":"Apr 12, 2021","value":20210412},{"name":"Feb 25, 2021","value":20210225},{"name":"Feb 1, 2021","value":20210201},{"name":"Jan 6, 2021","value":20210106},{"name":"Dec 1, 2020","value":20201201},{"name":"Nov 2, 2020","value":20201102},{"name":"Oct 2, 2020","value":20201002},{"name":"Sep 1, 2020","value":20200901},{"name":"Aug 4, 2020","value":20200804},{"name":"Jul 2, 2020","value":20200702},{"name":"Jun 1, 2020","value":20200601},{"name":"Apr 3, 2020","value":20200403},{"name":"Mar 4, 2020","value":20200304},{"name":"Feb 3, 2020","value":20200203},{"name":"Jan 6, 2020","value":20200106},{"name":"Dec 4, 2019","value":20191204},{"name":"Nov 12, 2019","value":20191112},{"name":"Oct 2, 2019","value":20191002},{"name":"Sep 4, 2019","value":20190904},{"name":"Mar 4, 2019","value":20190304},{"name":"Dec 3, 2018","value":20181203},{"name":"Nov 2, 2018","value":20181102},{"name":"Oct 2, 2018","value":20181002},{"name":"Sep 4, 2018","value":20180904},{"name":"Jul 30, 2018","value":20180730},{"name":"Jul 5, 2018","value":20180705},{"name":"Jun 4, 2018","value":20180604},{"name":"May 2, 2018","value":20180502},{"name":"Apr 2, 2018","value":20180402},{"name":"Mar 2, 2018","value":20180302},{"name":"Jan 29, 2018","value":20180129},{"name":"Jan 2, 2018","value":20180102},{"name":"Dec 4, 2017","value":20171204},{"name":"Nov 2, 2017","value":20171102},{"name":"Oct 2, 2017","value":20171002},{"name":"Sep 1, 2017","value":20170901},{"name":"Aug 2, 2017","value":20170802},{"name":"Jul 4, 2017","value":20170704},{"name":"Jun 1, 2017","value":20170601},{"name":"May 1, 2017","value":20170501},{"name":"Apr 4, 2017","value":20170404},{"name":"Mar 1, 2017","value":20170301},{"name":"Feb 2, 2017","value":20170202},{"name":"Jan 9, 2017","value":20170109},{"name":"Dec 1, 2016","value":20161201},{"name":"Nov 1, 2016","value":20161101},{"name":"Oct 3, 2016","value":20161003},{"name":"Sep 1, 2016","value":20160901},{"name":"Aug 2, 2016","value":20160802},{"name":"Jun 30, 2016","value":20160630},{"name":"May 30, 2016","value":20160530},{"name":"Feb 14, 2016","value":20160214},{"name":"Dec 23, 2015","value":20151223},{"name":"May 19, 2015","value":20150519},{"name":"May 1, 2015","value":20150501},{"name":"Apr 17, 2015","value":20150417},{"name":"Feb 17, 2015","value":20150217},{"name":"Jan 8, 2015","value":20150108},{"name":"Dec 2, 2014","value":20141202},{"name":"Nov 5, 2014","value":20141105},{"name":"Oct 21, 2014","value":20141021},{"name":"Sep 4, 2014","value":20140904},{"name":"Aug 6, 2014","value":20140806},{"name":"Jul 7, 2014","value":20140707},{"name":"Jun 11, 2014","value":20140611},{"name":"May 1, 2014","value":20140501},{"name":"Apr 1, 2014","value":20140401},{"name":"Mar 3, 2014","value":20140303},{"name":"Feb 3, 2014","value":20140203},{"name":"Dec 2, 2013","value":20131202},{"name":"Nov 1, 2013","value":20131101},{"name":"Oct 1, 2013","value":20131001},{"name":"Aug 1, 2013","value":20130801},{"name":"Jul 5, 2013","value":20130705},{"name":"Jun 3, 2013","value":20130603},{"name":"May 1, 2013","value":20130501},{"name":"Mar 1, 2013","value":20130301},{"name":"Feb 1, 2013","value":20130201},{"name":"Dec 11, 2012","value":20121211},{"name":"Nov 5, 2012","value":20121105},{"name":"Oct 1, 2012","value":20121001},{"name":"Sep 4, 2012","value":20120904},{"name":"Jun 1, 2012","value":20120601},{"name":"Apr 2, 2012","value":20120402},{"name":"Mar 1, 2012","value":20120301},{"name":"Feb 1, 2012","value":20120201},{"name":"Jan 4, 2012","value":20120104},{"name":"Dec 4, 2011","value":20111204},{"name":"Nov 1, 2011","value":20111101},{"name":"Oct 2, 2011","value":20111002},{"name":"Sep 1, 2011","value":20110901},{"name":"Aug 2, 2011","value":20110802},{"name":"Jul 28, 2011","value":20110728},{"name":"Jun 1, 2011","value":20110601},{"name":"May 3, 2011","value":20110503},{"name":"Apr 1, 2011","value":20110401},{"name":"Mar 4, 2011","value":20110304},{"name":"Feb 1, 2011","value":20110201},{"name":"Jan 4, 2011","value":20110104},{"name":"Dec 15, 2010","value":20101215},{"name":"Nov 3, 2010","value":20101103},{"name":"Oct 5, 2010","value":20101005},{"name":"Sep 6, 2010","value":20100906},{"name":"Aug 10, 2010","value":20100810},{"name":"Jul 15, 2010","value":20100715},{"name":"Jun 2, 2010","value":20100602},{"name":"May 1, 2010","value":20100501},{"name":"Apr 1, 2010","value":20100401},{"name":"Mar 2, 2010","value":20100302},{"name":"Oct 1, 2009","value":20091001},{"name":"Jul 1, 2009","value":20090701},{"name":"May 1, 2009","value":20090501},{"name":"Nov 1, 2008","value":20081101},{"name":"Jun 2, 2008","value":20080602},{"name":"May 1, 2008","value":20080501},{"name":"Jan 1, 2008","value":20080101},{"name":"Oct 1, 2007","value":20071001},{"name":"Sep 1, 2007","value":20070901},{"name":"Aug 1, 2007","value":20070801}]; // sanitize ds input function checkDS(ds_input) { for (var i=0, len=db_map.length; i'+item.name+''; } else { layerinnerHTML += ''; } } layerinnerHTML += ''; document.getElementById("pid_options").innerHTML = layerinnerHTML; // insert blank option if pid is not present in this dataset if (!found) { document.getElementById("pid_select").add(new Option("",pid,false,true)); } } } } ); } function setLayerURLs() { var url; //var url_base = '//{s}.ertyu.org/steven_nikkel/tower-tile-server.png?x={x}&y={y}&z={z}'; var url_base = 'tower-tile-server.png?x={x}&y={y}&z={z}&ds='+dataset; // All url = url_base; url += "&v=2"; layerAMap.setUrl(url); // Bell url = url_base+'&pid=1'; url += "&v=2"; layerBMap.setUrl(url); // Rogers url = url_base+'&pid=3'; layerRMap.setUrl(url); // Telus url = url_base+'&pid=4'; layerTMap.setUrl(url); // Other url = url_base+'&pid={pid}'; url += "&v=2"; layerOMap.setUrl(url); } // ===== Generate "link to this map" link function mapLink() { var layers = ''; if (layerA == 1) {layers += 'a';} if (layerB == 1) {layers += 'b';} if (layerR == 1) {layers += 'r';} if (layerT == 1) {layers += 't';} if (layerO == 1) {layers += 'o';} for (var map_label in baseMaps) { if (map.hasLayer(baseMaps[map_label])) { maptype = map_label; } } var a="cancellsites.html" + "?lat=" + map.getCenter().lat.toFixed(6) + "&lng=" + map.getCenter().lng.toFixed(6) + "&zoom=" + map.getZoom() + "&type=" + maptype + "&layers=" + layers + "&pid=" + pid; //map current to special value 0 if (dataset==20240306) { a += "&ds=0"; } else { a += "&ds="+dataset; } return a; } function makeLink(newState) { var a = mapLink(); document.getElementById("maplink").innerHTML = 'Link to this MapMap Link'; if (newState == true) { if (history.pushState) { history.pushState(null, null, a); } } else { if (history.replaceState) { history.replaceState(null, null, a); } } } function goMapLink() { var a = mapLink(); location.href = a; } function fixMaxZoom() { var zoom = Number.MAX_SAFE_INTEGER; map.eachLayer(function(layer) { if (layer.options && layer.options.maxZoom) { zoom = Math.min(zoom, layer.options.maxZoom); } }); map.setMaxZoom(zoom); } function isValidCoordinate(position) { var error; var isValid; try { isValid = true; new Coordinates(position); return isValid; } catch (error) { isValid = false; return isValid; } }; // ===== Handle Search function LocationSearch() { if (!done_init) { return; } var address = document.getElementById("txt_locationsearch").value; if (address=='' || address=='Search' || address=='Location Search') { return; } // check if search string is coordinates if (isValidCoordinate(address)) { position = new Coordinates(address); var url = 'https://nominatim.openstreetmap.org/reverse?format=jsonv2&zoom=18&lat='+position.getLatitude()+'&lon='+position.getLongitude(); downloadUrlCors( url, function(data,rstatus) { var fail = 0; if ((data != "") && (data != undefined)) { data = JSON.parse(data); if ((data != "") && (data != undefined)) { map.setView([position.getLatitude(), position.getLongitude()], map.getZoom()); map.fitBounds([ [data.boundingbox[0], data.boundingbox[2]], [data.boundingbox[1], data.boundingbox[3]] ],{maxZoom:default_localZoom}); center = map.getCenter(); current_centerLatitude = center.lat; current_centerLongitude = center.lng; L.popup() .setLatLng([position.getLatitude(), position.getLongitude()]) .setContent(address+'
'+data.display_name) .openOn(map); } else { fail = 1; } } else { fail = 1; } if (fail) { map.setView([position.getLatitude(), position.getLongitude()], map.getZoom()); center = map.getCenter(); current_centerLatitude = center.lat; current_centerLongitude = center.lng; L.popup() .setLatLng([position.getLatitude(), position.getLongitude()]) .setContent(address) .openOn(map); } } ); } else { var url = 'https://nominatim.openstreetmap.org/search?q='+address+'&format=jsonv2&limit=1&countrycodes=ca'; downloadUrlCors( url, function(data,rstatus) { var fail = 0; if ((data != "") && (data != undefined)) { data = JSON.parse(data)[0]; if ((data != "") && (data != undefined)) { map.setView([data.lat, data.lon], map.getZoom()); map.fitBounds([ [data.boundingbox[0], data.boundingbox[2]], [data.boundingbox[1], data.boundingbox[3]] ],{maxZoom:default_localZoom}); center = map.getCenter(); current_centerLatitude = center.lat; current_centerLongitude = center.lng; L.popup() .setLatLng([data.lat, data.lon]) .setContent(data.display_name) .openOn(map); } else { fail = 1; } } else { fail = 1; } if (fail) { alert("Could not locate: " + address); } } ); } } function place_location_marker(lat,lng) { location_marker.remove(); location_marker = L.marker([lat, lng], { icon: location_image, draggable: true, title: 'Current Location' }).addTo(map); } function place_location_circle(lat,lng,accuracy) { location_circle.remove(); location_circle = L.circle([lat, lng], { radius: accuracy, color: '#4400FF', opacity: 0.6, fillColor: '#4400FF', fillOpacity: 0.11, interactive: false }).addTo(map); //hide the error circle if the marker is dragged location_marker.on('dragstart', function() { location_circle.remove(); }); } function setLocation(lat,lng,accuracy) { if (!done_init) { return; } current_centerLatitude = lat; current_centerLongitude = lng; zoom = default_localZoom; place_location_marker(lat,lng); place_location_circle(lat,lng,accuracy); bounds = location_circle.getBounds(); map.setZoom(zoom); map.fitBounds(bounds,{maxZoom:zoom}); } // ===== Center map by geolocation function findLocation() { if (!done_init) { return; } // Try W3C Geolocation if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { lat = position.coords.latitude; lng = position.coords.longitude; accuracy = position.coords.accuracy; setLocation(lat,lng,accuracy); },function() { //error function -- firefox won't currently call this if decision is deferred location_marker.remove(); location_circle.remove(); var r = confirm('No location information available right now,\nproceed with manual locating?'); if (r == true) { center = map.getCenter(); current_centerLatitude = center.lat; current_centerLongitude = center.lng; place_location_marker(current_centerLatitude, current_centerLongitude); } },{maximumAge:900000}); //options } else { //no geolocation location_marker.remove(); location_circle.remove(); var r = confirm('No location information available,\nproceed with manual locating?'); if (r == true) { center = map.getCenter(); current_centerLatitude = center.lat; current_centerLongitude = center.lng; place_location_marker(current_centerLatitude, current_centerLongitude); } } return false; } // ===== Auto resize the height of the map function changeHeight() { var hght; if (typeof self.innerHeight != 'undefined') { hght = self.innerHeight*0.60; } else { hght = document.documentElement.clientHeight*0.60; } document.getElementById("map_canvas").style.height=hght+"px"; } // ===== Toggle visibility of overlays //single active layer function toggleLayerSingle(value) { if ((value=='layerA') && (layerA == 0)) { layerA = 1; layerAMap.addTo(map); } if ((value!='layerA') && (layerA == 1)) { layerA = 0; layerAMap.remove(); } if ((value=='layerB') && (layerB == 0)) { layerB = 1; layerBMap.addTo(map); } if ((value!='layerB') && (layerB == 1)) { layerB = 0; layerBMap.remove(); } if ((value=='layerR') && (layerR == 0)) { layerR = 1; layerRMap.addTo(map); } if ((value!='layerR') && (layerR == 1)) { layerR = 0; layerRMap.remove(); } if ((value=='layerT') && (layerT == 0)) { layerT = 1; layerTMap.addTo(map); } if ((value!='layerT') && (layerT == 1)) { layerT = 0; layerTMap.remove(); } if ((value=='layerO') && (layerO == 0)) { layerO = 1; layerOMap.addTo(map); } if ((value!='layerO') && (layerO == 1)) { layerO = 0; layerOMap.remove(); } } //multi-select layers function toggleLayerMulti(requestedLayerState) { // switch in and out of layerA if (layerA == 0) { // if all enabled switch to all layer if ((requestedLayerState[0] == 1) && (requestedLayerState[1] == 1) && (requestedLayerState[2] == 1) && (requestedLayerState[3] == 1) && (pid == 0)) { layerA = 1; layerAMap.addTo(map); layerB = 0; layerBMap.remove(); layerR = 0; layerRMap.remove(); layerT = 0; layerTMap.remove(); layerO = 0; layerOMap.remove(); } } else if (layerA == 1) { // falling out of all layer if ((requestedLayerState[0] != 1) || (requestedLayerState[1] != 1) || (requestedLayerState[2] != 1) || (requestedLayerState[3] != 1) || (pid != 0)) { layerA = 0; layerAMap.remove(); if (requestedLayerState[0] == 1) { layerB = 1; layerBMap.addTo(map); } if (requestedLayerState[1] == 1) { layerR = 1; layerRMap.addTo(map); } if (requestedLayerState[2] == 1) { layerT = 1; layerTMap.addTo(map); } if (requestedLayerState[3] == 1) { layerO = 1; layerOMap.addTo(map); } } } // toggle individual layers if ((requestedLayerState[0] == 1) && (layerB == 0) && (layerA == 0)) { layerB = 1; layerBMap.addTo(map); } if ((requestedLayerState[0] == 0) && (layerB == 1)) { layerB = 0; layerBMap.remove(); } if ((requestedLayerState[1] == 1) && (layerR == 0) && (layerA == 0)) { layerR = 1; layerRMap.addTo(map); } if ((requestedLayerState[1] == 0) && (layerR == 1)) { layerR = 0; layerRMap.remove(); } if ((requestedLayerState[2] == 1) && (layerT == 0) && (layerA == 0)) { layerT = 1; layerTMap.addTo(map); } if ((requestedLayerState[2] == 0) && (layerT == 1)) { layerT = 0; layerTMap.remove(); } if ((requestedLayerState[3] == 1) && (layerO == 0) && (layerA == 0)) { layerO = 1; layerOMap.addTo(map); } if ((requestedLayerState[3] == 0) && (layerO == 1)) { layerO = 0; layerOMap.remove(); } } function togglelayer(form) { if (!done_init) { return; } var requestedLayerState=[]; requestedLayerState[0] = 0; requestedLayerState[1] = 0; requestedLayerState[2] = 0; requestedLayerState[3] = 0; for (var i=0; iOpenStreetMap contributors', minZoom: 0, maxZoom: 19 }); // update attribution from http://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer?f=pjson // no http2 support var Esri_WorldImagery = L.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}', { attribution: 'Tiles © Esri — Source: Esri, Maxar, GeoEye, Earthstar Geographics, CNES/Airbus DS, USDA, USGS, AeroGRID, IGN, and the GIS User Community', minZoom: 0, maxZoom: 21 //23 in some areas? }); // no http2 support var terrain = L.tileLayer('//stamen-tiles-{s}.a.ssl.fastly.net/terrain/{z}/{x}/{y}.{ext}', { attribution: 'Map tiles by Stamen Design, CC BY 3.0 — Map data © OpenStreetMap', subdomains: 'abcd', minZoom: 0, maxZoom: 18, ext: 'png' }); // no http2 support, redirected to https var OpenTopoMap = L.tileLayer('https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png', { attribution: 'Map data: © OpenStreetMap, SRTM | Map style: © OpenTopoMap (CC-BY-SA)', minZoom: 1, maxZoom: 17 }); // update attribution from http://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer?f=pjson // no http2 support var Esri_WorldTopoMap = L.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}', { attribution: 'Tiles © Esri — Sources: Esri, HERE, Garmin, Intermap, increment P Corp., GEBCO, USGS, FAO, NPS, NRCAN, GeoBase, IGN, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), © OpenStreetMap contributors, and the GIS User Community', minZoom: 0, maxZoom: 19 }); baseMaps = { "Roadmap": roadmap, "Satellite": Esri_WorldImagery, "Terrain": terrain, "Topo": OpenTopoMap, "Esri Topo": Esri_WorldTopoMap, }; L.control.layers(baseMaps).addTo(map); // hide the loading image document.getElementById('loader_image').style.display = 'none'; changeHeight(); dataset = 20240306 var lat = default_centerLatitude; var lng = default_centerLongitude; var zoom = default_startZoom; var maptype = default_mapType; // If there are any parameters at the end of the URL // they will be in location.search // looking something like "?lat=50&lng=-3&zoom=10&type=roadmap" // skip the first character, we are not interested in the "?" var query = location.search.substring(1); // split the rest at each "&" character to give a list of // "argname=value" pairs var pairs = query.split("&"); for (var i=0; i0)) { layerA = 1; layerB = 0; layerR = 0; layerT = 0; layerM = 0; layerO = 0; } // set map properties map.setView([lat, lng], zoom); baseMaps[maptype].addTo(map); current_centerLatitude = lat; current_centerLongitude = lng; // populate db select var layerinnerHTML = ''; document.getElementById("dataset_options").innerHTML = layerinnerHTML; // pull in pid_map grabPIDMap(); // ===== Layer overlays map.createPane('tower_tiles'); map.getPane('tower_tiles').style.zIndex = 300; var url = ''; //var layerOpts = {subdomains: ['tiles0', 'tiles1'], tileSize: 512, pane: 'tower_tiles'}; //maxZoom must be the largest value the map layers allow //unfortunately this overrides the max of the other layers var layerOpts = {tileSize: 512, minZoom: 0, maxZoom: 99, noWrap: true, pane: 'tower_tiles'}; // All layerAMap = L.tileLayer(url, layerOpts).addTo(map); // Bell layerBMap = L.tileLayer(url, layerOpts).addTo(map); // Rogers layerRMap = L.tileLayer(url, layerOpts).addTo(map); // Telus layerTMap = L.tileLayer(url, layerOpts).addTo(map); // Other //add our pid paramter layerOpts.pid = function() {return pid;}; layerOMap = L.tileLayer(url, layerOpts).addTo(map); setLayerURLs(); if (!layerA) { layerAMap.remove(); } if (!layerB) { layerBMap.remove(); } if (!layerR) { layerRMap.remove(); } if (!layerT) { layerTMap.remove(); } if (!layerO) { layerOMap.remove(); } // layer controls // update the controls to match status if ((layerB != 1) && (layerA != 1) ) { document.getElementById("layerBcontrol").checked = false; } if ((layerR != 1) && (layerA != 1) ) { document.getElementById("layerRcontrol").checked = false; } if ((layerT != 1) && (layerA != 1) ) { document.getElementById("layerTcontrol").checked = false; } if ((layerO != 1) && (layerA != 1) ) { document.getElementById("layerOcontrol").checked = false; } // enable controls document.getElementById("layerBcontrol").disabled = false; document.getElementById("layerRcontrol").disabled = false; document.getElementById("layerTcontrol").disabled = false; document.getElementById("layerOcontrol").disabled = false; // enable search document.getElementById("txt_locationsearch").disabled = false; document.getElementById("btn_locationsearch").disabled = false; // Make the link the first time when the page opens makeLink(true); // Make the link again whenever the map changes map.on('baselayerchange', makeLink); map.on('moveend', makeLink); map.on('zoomend', makeLink); fixMaxZoom(); map.on('baselayerchange', fixMaxZoom); // resize map when browser is resized if (typeof window.addEventListener != 'undefined') { window.addEventListener("resize", changeHeight, false); } else if (typeof document.addEventListener != 'undefined') { document.addEventListener("resize", changeHeight, false); } else if (typeof window.attachEvent != 'undefined') { window.attachEvent("onresize", changeHeight); } // Watch for clicks to display info windows map.on('click', function(event) { var url="tower-point-server.php?" +"lat="+event.latlng.lat +"&lng="+event.latlng.lng +"&zoom="+map.getZoom() +"&ds="+dataset +"&v=2" ; nb_layers_enabled = 0; //no pids in query if layerA //if (layerA == 1) {url += "&pid=-1";} if (layerA == 1) {nb_layers_enabled++;} if (layerB == 1) {url += "&pid[]=1"; nb_layers_enabled++;} if (layerR == 1) {url += "&pid[]=3"; nb_layers_enabled++;} if (layerT == 1) {url += "&pid[]=4"; nb_layers_enabled++;} if (layerO == 1) {url += "&pid[]="+pid; nb_layers_enabled++;} //don't call if nothing enabled if (nb_layers_enabled > 0) { downloadUrl( url, function(data,rstatus) { if ((data != "") && (data != undefined)) { L.popup() .setLatLng(event.latlng) .setContent(data) .openOn(map); } } ); } }); done_init = 1; } window.onload = init;