CINXE.COM
London Air Quality Network
<!DOCTYPE html> <!-- *************************************************************** London Air Quality Network Environmental Research Group Imperial College London Design ideajunction.uk March 2016 *************************************************************** --> <html lang="en" class="no-js"> <head><meta charset="utf-8" /><title> London Air Quality Network </title><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" /><meta name="description" content="London Air Quality Network" /><meta name="author" content="Environmental Research Group, Imperial College London" /><link rel="shortcut icon" href="/assets/img/logo/favicon.png" /> <script type="text/javascript"> // Modernizr-style JS detection (used as non-JS UI CSS hook) // replace html tag's "no-js" class with "js" document.getElementsByTagName('html')[0].className = 'js'; </script> <link href="/assets/dist/bootstrap/css/bootstrap.min.css?v=1.0" rel="stylesheet" /><link href="/assets/css/bootstrap-extend-ij.css?v=1.0" rel="stylesheet" /><link href="/assets/dist/fontawesome/css/font-awesome.min.css?v=1.0" rel="stylesheet" /><link href="/assets/css/base.css?v=1ss1" rel="stylesheet" /><link href="/assets/css/guide.css?v=1.0" rel="stylesheet" /><link href="/assets/css/responsive.css?v=1.0" rel="stylesheet" /><link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,300italic,400,400italic,600,600italic" rel="stylesheet" /><link href="/assets/dist/courier-prime-sans/font.css?v=1.0" rel="stylesheet" /> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <link href="/assets/css/ie8.css" rel="stylesheet" /> <![endif]--> <link href="/assets/css/accessibility.css?v=1w" rel="stylesheet" /> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-9887258-9']); _gaq.push(['_trackPageview']); (function () { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script></head> <body> <!-- Cookie consent widget --> <div id="cookie-consent"> </div> <!-- .NET form --> <form name="aspnetForm" method="post" action="./Default.aspx" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm"> <div> <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE3NDE4Nzk0MTUPZBYCZg9kFgICAw9kFgwCAQ9kFgQCAQ8WAh4FY2xhc3MFD2FxaS1ib3ggYXFpLWxvdxYCAgEPDxYCHgRUZXh0BQNMb3dkZAIDDxYCHwAFD2FxaS1ib3ggYXFpLWxvdxYCAgEPDxYCHwEFA0xvd2RkAgMPZBYEAgEPFgIeB1Zpc2libGVnFgQCAQ8WAh4JaW5uZXJodG1sBS9RdWljayBMaW5rcyAoUHVibGljKTxzcGFuIGNsYXNzPSJjYXJldCI+PC9zcGFuPmQCAw8WAh8CZ2QCAw9kFgICAQ8PZBYCHglvbmtleWRvd24FxQFpZiAoKGV2ZW50LndoaWNoICYmIGV2ZW50LndoaWNoID09IDEzKSB8fCAoZXZlbnQua2V5Q29kZSAmJiBldmVudC5rZXlDb2RlID09IDEzKSkge2RvY3VtZW50LmZvcm1zWzBdLmVsZW1lbnRzWydjdGwwMCRUb3BOYXZpZ2F0aW9uMSRTZWFyY2hCb3gxJF9idG5TZWFyY2gnXS5jbGljaygpO3JldHVybiBmYWxzZTt9IGVsc2UgcmV0dXJuIHRydWU7IGQCBQ9kFgICBQ8PFgIfAmdkZAIHD2QWAgIDDxAPFgIeC18hRGF0YUJvdW5kZ2QQFSUYQ2hvb3NlIGEgbG9jYWwgYXV0aG9yaXR5FEJhcmtpbmcgYW5kIERhZ2VuaGFtBkJleGxleQVCcmVudAlCcmVudHdvb2QHQnJvbWxleQZDYW1kZW4MQ2FzdGxlIFBvaW50DkNpdHkgb2YgTG9uZG9uB0Nyb3lkb24IRGFydGZvcmQGRWFsaW5nB0VuZmllbGQJR3JlZW53aWNoB0hhY2tuZXkISGFyaW5nZXkGSGFycm93CEhhdmVyaW5nCUlzbGluZ3RvbhZLZW5zaW5ndG9uIGFuZCBDaGVsc2VhCEtpbmdzdG9uB0xhbWJldGgITGV3aXNoYW0GTWVydG9uBk5ld2hhbQdSZWFkaW5nCVJlZGJyaWRnZRRSZWlnYXRlIGFuZCBCYW5zdGVhZAhSaWNobW9uZAlTZXZlbm9ha3MJU291dGh3YXJrBlN1dHRvbghUaHVycm9jaw1Ub3dlciBIYW1sZXRzCldhbmRzd29ydGgLV2VzdG1pbnN0ZXIWV2luZHNvciBhbmQgTWFpZGVuaGVhZBUlBG5vbmUUQmFya2luZyBhbmQgRGFnZW5oYW0GQmV4bGV5BUJyZW50CUJyZW50d29vZAdCcm9tbGV5BkNhbWRlbgxDYXN0bGUgUG9pbnQOQ2l0eSBvZiBMb25kb24HQ3JveWRvbghEYXJ0Zm9yZAZFYWxpbmcHRW5maWVsZAlHcmVlbndpY2gHSGFja25leQhIYXJpbmdleQZIYXJyb3cISGF2ZXJpbmcJSXNsaW5ndG9uFktlbnNpbmd0b24gYW5kIENoZWxzZWEIS2luZ3N0b24HTGFtYmV0aAhMZXdpc2hhbQZNZXJ0b24GTmV3aGFtB1JlYWRpbmcJUmVkYnJpZGdlFFJlaWdhdGUgYW5kIEJhbnN0ZWFkCFJpY2htb25kCVNldmVub2FrcwlTb3V0aHdhcmsGU3V0dG9uCFRodXJyb2NrDVRvd2VyIEhhbWxldHMKV2FuZHN3b3J0aAtXZXN0bWluc3RlchZXaW5kc29yIGFuZCBNYWlkZW5oZWFkFCsDJWdnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dkZAIJD2QWBAIBD2QWEgIBDw8WBB4HVG9vbFRpcAVJV2UgaGF2ZSBhIG5ldHdvcmsgb2YgYWlyIHBvbGx1dGlvbiBtb25pdG9yaW5nIHNpdGVzIGluIGFuZCBhcm91bmQgTG9uZG9uLh4LTmF2aWdhdGVVcmwFHi9sb25kb24vYXNwL3B1YmxpY2J1bGxldGluLmFzcGQWCAIBDw8WAh8BBQ5Ib3VybHlCdWxsZXRpbmRkAgMPDxYGHg1BbHRlcm5hdGVUZXh0BRRWaWV3IE1lYXN1cmVtZW50IE1hcB8GBRRWaWV3IE1lYXN1cmVtZW50IE1hcB4ISW1hZ2VVcmwFU34vSGFuZGxlcnMvSW1hZ2VIYW5kbGVyLmFzaHg/aW1nPS9Mb25kb25haXIvSW1hZ2VzL2l0ZW1zL0hvdXJseUJ1bGxldGluMS5wbmcmc2l6ZT0xZGQCBQ8PFgIfAQUQUmVhZGluZ3MgQCAwNzowMGRkAgcPDxYCHwEFlAFXZSBoYXZlIGEgbmV0d29yayBvZiBhaXIgcG9sbHV0aW9uIG1vbml0b3Jpbmcgc2l0ZXMgaW4gYW5kIGFyb3VuZCBMb25kb24uIFlvdSBjYW4gc2VlIHRoZSBsYXRlc3QgaG91cmx5IGFpciBwb2xsdXRpb24gaW5kZXhlcyBvbiBhbiBpbnRlcmFjdGl2ZSBtYXAuZGQCAw8PFgQfBgUeTG9uZG9uYWlyIGF2YWlsYWJsZSBldmVyeXdoZXJlHwcFFi9Mb25kb25BaXIvTW9iaWxlQXBwcy9kFggCAQ8PFgIfAQUEQXBwc2RkAgMPDxYGHwgFCFNlZSBBcHBzHwYFCFNlZSBBcHBzHwkFQn4vSGFuZGxlcnMvSW1hZ2VIYW5kbGVyLmFzaHg/aW1nPS9hc3NldHMvaW1nL3Byb21vL2FwcHMuanBnJnNpemU9MWRkAgUPDxYCHwEFC01vYmlsZSBBcHBzZGQCBw8PFgIfAQVvTG9uZG9uYWlyIGF2YWlsYWJsZSBldmVyeXdoZXJlIC0gd2UgaGF2ZSBhIHdpZGUgcmFuZ2Ugb2YgbW9iaWxlIGFwcHMgdG8gZ2l2ZSB5b3UgZ3JlYXQgYWNjZXNzIHdoZXJldmVyIHlvdSBhcmUuZGQCBQ8PFgQfBgVPVGhpcyBpcyB0aGUgbW9kZWxsZWQgYW5udWFsIG1hcCBvZiBOTzIgcG9sbHV0aW9uIGZvciAyMDEzIGV2ZXJ5d2hlcmUgaW4gTG9uZG9uLh8HBRovbG9uZG9uL2FzcC9hbm51YWxtYXBzLmFzcGQWCAIBDw8WAh8BBQpBbm51YWxNYXBzZGQCAw8PFgYfCAUQVmlldyBBbm51YWwgTWFwcx8GBRBWaWV3IEFubnVhbCBNYXBzHwkFTH4vSGFuZGxlcnMvSW1hZ2VIYW5kbGVyLmFzaHg/aW1nPS9Mb25kb25haXIvSW1hZ2VzL2l0ZW1zL05PMl8yMDEzLnBuZyZzaXplPTFkZAIFDw8WAh8BBQpBbm51YWwgTk8yZGQCBw8PFgIfAQViVGhpcyBpcyB0aGUgbW9kZWxsZWQgYW5udWFsIG1hcCBvZiBuaXRyb2dlbiBkaW94aWRlIChOTzIpIHBvbGx1dGlvbiBmb3IgMjAxMyBldmVyeXdoZXJlIGluIExvbmRvbi5kZAIHDw8WBB8GBT5TaWduIHVwIGZvciB0aGUgTG9uZG9uIGFpciBkYWlseSBhaXIgcG9sbHV0aW9uIGZvcmVjYXN0IGVtYWlsLh8HBTJodHRwOi8vZW1haWwubG9uZG9uYWlyLm9yZy51ay9oL2ovQzE4MUQ5NDNFRjNFRDk0NWQWBgIBDw8WAh8BBQ5Gb3JlY2FzdFNpZ251cGRkAgMPDxYGHwgFB1NpZ24gVXAfBgUHU2lnbiBVcB8JBUh+L0hhbmRsZXJzL0ltYWdlSGFuZGxlci5hc2h4P2ltZz0vYXNzZXRzL2ltZy9wcm9tby9uZXdzbGV0dGVyLmpwZyZzaXplPTNkZAIFDw8WAh8BBQ9Gb3JlY2FzdCBTaWdudXBkZAIJDw8WBB8GBYABVGhpcyBpcyBhIHByb3RvdHlwZSB2aXN1YWxpc2F0aW9uIG9mIHRoZSBhbm51YWwgb2JqZWN0aXZlcyBmb3IgbW9uaXRvcmluZyBzaXRlcywgZGVzaWduZWQgdG8gYmUgZXhwbG9yZWQgYW5kIHRvIGluc3BpcmUgY29tbWVudC4fBwUuL0xvbmRvbkFpci9EYXRhLVZpc3VhbGlzYXRpb25zL21lYW5WU3BlYWsuYXNweGQWBgIBDw8WAh8BBQ5WaXN1YWxpc2F0aW9uc2RkAgMPDxYGHwgFCVNlZSBncmFwaB8GBQlTZWUgZ3JhcGgfCQVSfi9IYW5kbGVycy9JbWFnZUhhbmRsZXIuYXNoeD9pbWc9L0xvbmRvbkFpci9pbWFnZXMvaXRlbXMvVmlzdWFsaXNhdGlvbnMucG5nJnNpemU9M2RkAgUPDxYCHwEFGk1lYW4gVnMgUGVhayBWaXN1YWxpc2F0aW9uZGQCCw8PFgQfBgU/TGF0ZXN0IGVwaXNvZGU6IEZpcnN0IGV2ZXIgREFRSSBIaWdoIE96b25lIGVwaXNvZGUgaW4gU2VwdGVtYmVyHwcFHi9sb25kb24vYXNwL1B1YmxpY0VwaXNvZGVzLmFzcGQWBgIBDw8WAh8BBQdFcGlzb2RlZGQCAw8PFgYfCAUMVmlldyBFcGlzb2RlHwYFDFZpZXcgRXBpc29kZR8JBUx+L0hhbmRsZXJzL0ltYWdlSGFuZGxlci5hc2h4P2ltZz0vTG9uZG9uYWlyL0ltYWdlcy9pdGVtcy9FcGlzb2RlMS5wbmcmc2l6ZT0zZGQCBQ8PFgIfAQU/TGF0ZXN0IGVwaXNvZGU6IEZpcnN0IGV2ZXIgREFRSSBIaWdoIE96b25lIGVwaXNvZGUgaW4gU2VwdGVtYmVyZGQCDQ8PFgQfBgVRVmlkZW8gc2hvd2luZyBhbnN3ZXJzIHRvIGNvbW1vbiBxdWVzdGlvbnMgYWJvdXQgYWlyIHBvbGx1dGlvbiwgaGVhbHRoIGFuZCBhY3Rpb25zHwcFQi9Mb25kb25BaXIvZ3VpZGUvU291bmRzbGlkZXMvSGVhbHRoRWZmZWN0cy9IZWFsdGhFZmZlY3RzVmlkZW8uYXNweGQWBgIBDw8WAh8BBQVHdWlkZWRkAgMPDxYGHwgFBFZpZXcfBgUEVmlldx8JBVF+L0hhbmRsZXJzL0ltYWdlSGFuZGxlci5hc2h4P2ltZz0vTG9uZG9uQWlyL0ltYWdlcy9ndWlkZS9IZWFsdGhFZmZlY3RzLmpwZyZzaXplPTNkZAIFDw8WAh8BBTBDdXJyZW50IHZpZGVvOiBBaXIgcG9sbHV0aW9uLCBoZWFsdGggYW5kIGFjdGlvbnNkZAIPDw8WBB8GBSBSZXBvcnQ6IDIwMjAgTEFRTiBTdW1tYXJ5IFJlcG9ydB8HBUgvbG9uZG9uL2FzcC9yZXBvcnRkZXRhaWwuYXNwP1JlcG9ydElEPTIwMjBsYXFuciZSZXBvcnRUeXBlPUxhdGVzdF9SZXBvcnRkFgYCAQ8PFgIfAQUGUmVwb3J0ZGQCAw8PFgYfCAULVmlldyBSZXBvcnQfBgULVmlldyBSZXBvcnQfCQVFfi9IYW5kbGVycy9JbWFnZUhhbmRsZXIuYXNoeD9pbWc9L2Fzc2V0cy9pbWcvcHJvbW8vcmVwb3J0cy5qcGcmc2l6ZT0zZGQCBQ8PFgIfAQUgUmVwb3J0OiAyMDIwIExBUU4gU3VtbWFyeSBSZXBvcnRkZAIRDw8WBB8GBSBSZXBvcnQ6IDIwMTkgTEFRTiBTdW1tYXJ5IFJlcG9ydB8HBUgvbG9uZG9uL2FzcC9yZXBvcnRkZXRhaWwuYXNwP1JlcG9ydElEPTIwMTlsYXFuciZSZXBvcnRUeXBlPUxhdGVzdF9SZXBvcnRkFgYCAQ8PFgIfAQUGUmVwb3J0ZGQCAw8PFgYfCAULVmlldyBSZXBvcnQfBgULVmlldyBSZXBvcnQfCQVFfi9IYW5kbGVycy9JbWFnZUhhbmRsZXIuYXNoeD9pbWc9L2Fzc2V0cy9pbWcvcHJvbW8vcmVwb3J0cy5qcGcmc2l6ZT0zZGQCBQ8PFgIfAQUgUmVwb3J0OiAyMDE5IExBUU4gU3VtbWFyeSBSZXBvcnRkZAIDD2QWAgIBDxYCHgtfIUl0ZW1Db3VudAIkFkgCAQ9kFgJmDxUEATEBMRRCYXJraW5nIGFuZCBEYWdlbmhhbQExZAICD2QWAmYPFQQBMgEzBkJleGxleQEyZAIDD2QWAmYPFQQBMgE0BUJyZW50ATJkAgQPZBYCZg8VBAEwAjQyCUJyZW50d29vZAYmbmJzcDtkAgUPZBYCZg8VBAExATUHQnJvbWxleQExZAIGD2QWAmYPFQQBMAE2BkNhbWRlbgYmbmJzcDtkAgcPZBYCZg8VBAEwAjQzDENhc3RsZSBQb2ludAYmbmJzcDtkAggPZBYCZg8VBAEwATcOQ2l0eSBvZiBMb25kb24GJm5ic3A7ZAIJD2QWAmYPFQQBMQE4B0Nyb3lkb24BMWQCCg9kFgJmDxUEATECNTYIRGFydGZvcmQBMWQCCw9kFgJmDxUEATEBOQZFYWxpbmcBMWQCDA9kFgJmDxUEATECMTAHRW5maWVsZAExZAIND2QWAmYPFQQBMgIxMQlHcmVlbndpY2gBMmQCDg9kFgJmDxUEATACMTIHSGFja25leQYmbmJzcDtkAg8PZBYCZg8VBAEwAjE0CEhhcmluZ2V5BiZuYnNwO2QCEA9kFgJmDxUEATACMTUGSGFycm93BiZuYnNwO2QCEQ9kFgJmDxUEATECMTYISGF2ZXJpbmcBMWQCEg9kFgJmDxUEATECMTkJSXNsaW5ndG9uATFkAhMPZBYCZg8VBAEwAjIwFktlbnNpbmd0b24gYW5kIENoZWxzZWEGJm5ic3A7ZAIUD2QWAmYPFQQBMAIyMQhLaW5nc3RvbgYmbmJzcDtkAhUPZBYCZg8VBAExAjIyB0xhbWJldGgBMWQCFg9kFgJmDxUEATICMjMITGV3aXNoYW0BMmQCFw9kFgJmDxUEATECMjQGTWVydG9uATFkAhgPZBYCZg8VBAEwAjI1Bk5ld2hhbQYmbmJzcDtkAhkPZBYCZg8VBAEwAzMyNQdSZWFkaW5nBiZuYnNwO2QCGg9kFgJmDxUEATACMjYJUmVkYnJpZGdlBiZuYnNwO2QCGw9kFgJmDxUEATACNDAUUmVpZ2F0ZSBhbmQgQmFuc3RlYWQGJm5ic3A7ZAIcD2QWAmYPFQQBMQIyNwhSaWNobW9uZAExZAIdD2QWAmYPFQQBMAIzNwlTZXZlbm9ha3MGJm5ic3A7ZAIeD2QWAmYPFQQBMQIyOAlTb3V0aHdhcmsBMWQCHw9kFgJmDxUEATACMjkGU3V0dG9uBiZuYnNwO2QCIA9kFgJmDxUEATECMzQIVGh1cnJvY2sBMWQCIQ9kFgJmDxUEATACMzANVG93ZXIgSGFtbGV0cwYmbmJzcDtkAiIPZBYCZg8VBAEyAjMyCldhbmRzd29ydGgBMmQCIw9kFgJmDxUEATECMzMLV2VzdG1pbnN0ZXIBMWQCJA9kFgJmDxUEATACMzUWV2luZHNvciBhbmQgTWFpZGVuaGVhZAYmbmJzcDtkAhEPZBYCAgEPFgIfAQUEMjAyNGRkUWbY/XhKXG3YCESfUmROJLJ/E1+mahvW8dlX+5mecSE=" /> </div> <script type="text/javascript"> //<![CDATA[ var theForm = document.forms['aspnetForm']; if (!theForm) { theForm = document.aspnetForm; } function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } //]]> </script> <script src="/LondonAir/WebResource.axd?d=aPYUHTo7U50PUnpK6nQBl0PJ2SoA2hkfz0PI4O4y8_-b21VWon43_rWX1BaFWpRn2CmVdC0BZavcFOAXbp8bGqi6gAlFNFrjbVjHfVEKGf81&t=638610871965203766" type="text/javascript"></script> <script src="/LondonAir/WebResource.axd?d=teFgm1-AuXUK88mgGPrxt4pI05fHG6qqyrLu8R44VGDP5W8ew3uFM9ZGc6tHZsk_3X5Z-jpjJxhc0L93gUiwmbIIai9Ox0awv88u0dHakes1&t=638610871965203766" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ function WebForm_OnSubmit() { if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false; return true; } //]]> </script> <div> <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="7EA26886" /> <input type="hidden" name="__PREVIOUSPAGE" id="__PREVIOUSPAGE" value="Sv9IVq2_3IWOghwdm83DQ5G9-1CMjRNNklxe_i_z5g2L0VL75mwsrEkLKGjuKhqT0LfwY44C9jQph7l18t2qyW6jAEyGLGv38T-Ivc1vpwM1" /> <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEdADG4EI/Z0IgfFm7kmbUwm2FG9D3okhuU/t3B8+JrwmR+QIe0MIelRrAqlHgZ0SAJqkAOnCdS4+YSiLPyBhpL4mS/Bb22FBiQW8Tkb7Ifz6Po9j9uEJRBpZVp1uH+W4VVbezmpnQy+Ui+PBAAzqR8zEx0raqbrVQ8gWoF594TRAZLloZh8is4ga4cVL2p5GAP6D286dEht+MYq/WjmeIKO9sgBlPF9MUBZunC7Re47ZNbpAifOvxV0WAx7LZP0TfaIYYuB/byb+AJP8difyYACTxPjBhVcqwm7Qc7GADgUXNR1EsPSk8Pb2S1Sag0uSKaOtayyo/2Tg6XpIdKY1VmFzwiTep4d7/fuVZLWR/ZY+nPOK7I/K3Z37qWKor2hTTl0IXCpgTDX+YRjXS0fDLr2mRK/OiC1yIHPbKXB37qODixio5zaFSaKpv3/o54abJCqSyi4I95EA0WcNu/tluMNC+R7iEsB3fS8i87oBpNP2hYdEX+PvQy0e4zGsVUsPQ5I/KGsDbIRFvW80ZtFs1pKFzpft4jw7tmwrRAh04/+R8osFyuf11iOVGpvQET/gQg9isdNQD9uZAv7eahME+W2/CnvHsQTUVb6szKqZ7Pdg4JQ21PZhZ6Dy+lxUSAfdq22Xgl9Byqmr1Xyi22paLmuG0qgxsOiLk6M06tkJbWhf6OcNeSQO+BVTkpij0bdmKbE2t83r5/InoDo7IID4Jpn12vhqcadzPn1mFe0otOg5QaAoNeqp3OVwymGAfibrhzAQQXKc5Faya0Y+X6AqGOwAw+U2/Q5XEA5ffXt41Edh5zpn+CnHomPfDugtyaapCVgykY2bf1CxrZYaCpKb0zDLmCV+w382xWcIMfvl7p2iMiTvd5LNF60Dsi+eKbLwN8YAxSfFUdYi10hSejIllk/duPQXZKlTohBGK6w4jgLP7newx55eHDw5ltK8BWD8RkNNe5lEZASq9xo0BHQw4+ejTRLkO+zXJTcM6L8mijAVRvbu7MKARKgcS1oy9arR3lbYM7ZtCE7jAyPzA5LsDg6IxhEa6upL7sdYQ9eqCMT6ADUDgzSvmC3bZQ8oczDI57RrQ=" /> </div> <!-- header --> <header class="bg-ground breathe-2x"> <div class="container clearfix"> <div class="pull-left"> <!-- LAQN logo --> <a class="logo" href="/LondonAir/Default.aspx" title="London Air Homepage">London Air</a> </div> <div class="pull-right"> <!-- forecast control --> <div class="forecasts pull-left"> <h4 class="full-height hidden-xs">Forecast</h4> <!-- <h4 class="full-height visible-xs">Fore-<br>cast</h4> --> <a href="http://www.londonair.org.uk/Forecast" id="ctl00_LAQNForecast1_ForecastCurrent" title="Go to the Forecast page" class="aqi-box aqi-low"> <h5 class="time">Today</h5> <p class="prediction"> <span id="ctl00_LAQNForecast1_lblForecastCurrent">Low</span> </p> </a> <a href="http://www.londonair.org.uk/Forecast" id="ctl00_LAQNForecast1_ForecastFuture" title="Go to the Forecast page" class="aqi-box aqi-low"> <h5 class="time">Tomorrow</h5> <p class="prediction"> <span id="ctl00_LAQNForecast1_lblForecastFuture">Low</span> </p> </a> <!-- debug --> </div> <!-- King's logo --> <a class="parent logo pull-right" href="https://www.imperial.ac.uk/school-public-health/environmental-research-group" target="_blank" title="Imperial College London">Imperial College London</a> </div> </div> </header> <!-- top nav control --> <!-- navigation --> <nav class="navbar navbar-inverse"> <div class="container"> <!-- Nav reveal "hamburger" button for narrow viewports --> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <!-- <a class="navbar-brand" href="#">Brand</a> --> </div> <!-- Collect the nav links, forms, and other content for toggling --> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav"> <!-- Pollution nav dropdown --> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Air Pollution <span class="caret"></span></a> <ul class="dropdown-menu"> <!-- <li><a href="/LondonAir/nowcast.aspx">Air Pollution Now</a></li> --> <li><a href="/Londonair/Forecast">Forecast</a></li> <li><a href="/london/asp/annualmaps.asp">Annual Maps</a></li> <li><a href="/london/asp/futuremaps.asp">Future Maps</a></li> <li><a href="https://www.londonair.org.uk/map-maker/" target="_blank">Create Pollution Map</a></li> <li><a href="/london/asp/publicepisodes.asp">Episodes</a></li> </ul> </li> <!-- Information nav dropdown --> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Information <span class="caret"></span></a> <ul class="dropdown-menu"> <li> <a href="/LondonAir/General/about.aspx">About Londonair</a></li> <li><a href="/LondonAir/Guide/FAQ.aspx">FAQ</a></li> <li><a href="/LondonAir/Guide/MyActionsForOthers.aspx">What can I do?</a></li> <li><a href="/LondonAir/Guide/home.aspx">Air pollution guide</a></li> <li><a href="/LondonAir/General/research.aspx" title="Research">Research</a></li> <li><a href="/LondonAir/Guide/SoundSlides/AllVideos.aspx">Videos</a></li> <li><a href="/LondonAir/general/news.aspx">News</a></li> <li><a href="/LondonAir/MediaCoverage/Default.aspx">Media Coverage</a></li> <li><a href="/london/asp/reports.asp">Reports</a></li> <li><a href="/london/asp/LAQNSeminar/">Conferences</a></li> <li><a href="http://email.londonair.org.uk/h/j/C181D943EF3ED945">Forecast Signup</a></li> <!-- <li><a target"_blank" href="http://www.erg.kcl.ac.uk/research/home/index.html">ERG Research Projects</a></li> --> </ul> </li> <!-- Monitoring nav dropdown --> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Monitoring <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="/london/asp/lahome.asp">Local Authorities</a></li> <li><a href="/london/asp/publicdetails.asp">Monitoring Sites</a></li> <li><a href="/london/asp/publicbulletin.asp">Latest Bulletin</a></li> <li><a href="/london/asp/publicstats.asp">Annual Objectives</a></li> </ul> </li> <!-- Tools nav dropdown --> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Tools <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="/Londonair/MobileApps">Apps & Widgets</a></li> <li><a href="/london/asp/datadownload.asp">Data Download</a></li> <li><a href="/london/asp/advgraphs.asp">Graph Plotting</a></li> <li><a href="/Londonair/API">Data Feeds</a></li> <li><a href="/london/asp/tools.asp">Statistics</a></li> <li><a href="http://davidcarslaw.github.io/openair/" target="_blank">Openair</a></li> </ul> </li> <!-- User-specific area dropdown - changes depending on the cookie set --> <li id="ctl00_TopNavigation1_UserMenu" class="dropdown"> <a href="UserControls/#" id="ctl00_TopNavigation1_UserMenuLink" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Quick Links (Public)<span class="caret"></span></a> <!-- public --> <ul id="ctl00_TopNavigation1_PublicMenu" class="dropdown-menu"> <li><a href="/london/asp/nowcast.asp">Air Pollution Now</a></li> <li><a href="/Londonair/Forecast">Forecast</a></li> <li><a href="/london/asp/annualmaps.asp">Annual Maps</a></li> <li><a href="/LondonAir/guide/home.aspx">Air Pollution Guide</a></li> <li><a href="/LondonAir/general/news.aspx">News</a></li> <li><a href="/Londonair/MobileApps">Mobile Apps</a></li> <li><a href="/london/asp/publicstats.asp">Annual objectives</a></li> </ul> <!-- policy --> <!-- science --> </li> </ul> <!-- End primary nav dropdowns --> <!-- search box control --> <div class="navbar-form navbar-right search-submit-integrated expandable"> <div class="form-group"> <!-- Google CSE Search Box Begins --> <input name="ctl00$TopNavigation1$SearchBox1$q" type="text" maxlength="30" id="ctl00_TopNavigation1_SearchBox1_q" title="Enter your search keywords here" class="form-control" placeholder="Search" onkeydown="if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) {document.forms[0].elements['ctl00$TopNavigation1$SearchBox1$_btnSearch'].click();return false;} else return true; " /> <button onclick="__doPostBack('ctl00$TopNavigation1$SearchBox1$_btnSearch','')" id="ctl00_TopNavigation1_SearchBox1__btnSearch" class="btn btn-sm btn-link" title="Search the website"> <i class="fa fa-search fa-lg"></i> </button> <span id="ctl00_TopNavigation1_SearchBox1__rfvQ" style="color:Red;visibility:hidden;"></span> <input type="hidden" name="ctl00$TopNavigation1$SearchBox1$cx" id="ctl00_TopNavigation1_SearchBox1_cx" value="014158417238164596157:txnjnzvxdha" /> <input type="hidden" name="ctl00$TopNavigation1$SearchBox1$cof" id="ctl00_TopNavigation1_SearchBox1_cof" value="FORID:10" /> <input type="hidden" name="ctl00$TopNavigation1$SearchBox1$ie" id="ctl00_TopNavigation1_SearchBox1_ie" value="UTF-8" /> <!--external javscript --> <script type="text/javascript" src="https://www.google.com/coop/cse/brand?form=cse-search-box&lang=en"></script> <!-- Google CSE Search Box Ends --> </div> </div> <!-- Social nav (for larger screens) --> <ul class="nav navbar-nav navbar-right hidden-xs nav-social-icons"> <li><a href="https://twitter.com/londonair/" title="Twitter" target="_blank"><i class="fa fa-twitter fa-lg"></i></a></li> <li><a href="https://www.facebook.com/LondonAir/" title="Facebook" target="_blank"><i class="fa fa-facebook fa-lg"></i></a></li> <li><a href="https://www.youtube.com/user/LondonAir0" title="YouTube" target="_blank"><i class="fa fa-youtube-play fa-lg"></i></a></li> <li><a href="http://www.londonair.org.uk/london/asp/rss.asp" title="RSS"><i class="fa fa-rss fa-lg"></i></a></li> </ul> <!-- Alternate social nav dropdown (used only for mobile "xs" screens) --> <ul class="nav navbar-nav navbar-right visible-xs-block"> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Social + RSS <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="https://twitter.com/londonair/">Twitter</a></li> <li><a href="https://www.facebook.com/LondonAir/">Facebook</a></li> <li><a href="https://www.youtube.com/user/LondonAir0">YouTube</a></li> <li><a href="http://www.londonair.org.uk/london/asp/rss.asp">RSS</a></li> </ul> </li> </ul> <!-- Guide navigation (used only for mobile "xs" screens) --> <ul class="nav navbar-nav visible-xs-block"> <li class="guide-mobile-menu"> <a href="/LondonAir/Guide/home.aspx" aria-expanded="false">Guide</a> </li> </ul> <!-- Guide Actions --> <ul class="nav navbar-nav visible-xs-block guide-mobile-menu"> <li class="dropdown guide-mobile-menu"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Actions <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="/LondonAir/guide/CanImonitor.aspx">Can I monitor?</a></li> <li><a href="/LondonAir/guide/ClimateChange.aspx">Climate change</a></li> <li><a href="/LondonAir/guide/GovernmentAction.aspx">Government action</a></li> <li><a href="/LondonAir/guide/GettingInformation.aspx">Information</a></li> <li><a href="/LondonAir/guide/MyActionsForOthers.aspx">What can I do?</a></li> <li><a href="/LondonAir/guide/ActionsOverview.aspx">What can be done?</a></li> </ul> </li> </ul> <ul class="nav navbar-nav visible-xs-block guide-mobile-menu"> <li class="dropdown guide-mobile-menu"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Health Effects <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="/LondonAir/guide/HealthEffects.aspx">Health effects</a></li> <li><a href="/LondonAir/guide/SensitiveEffects.aspx">Increased risk effects</a></li> <li><a href="/LondonAir/guide/LongTermEffects.aspx">Long term effects</a></li> <li><a href="/LondonAir/guide/ObjectivesForHealth.aspx">Objectives and health</a></li> <li><a href="/LondonAir/guide/ShortTermEffects.aspx">Short term effects</a></li> </ul> </li> </ul> <ul class="nav navbar-nav visible-xs-block guide-mobile-menu"> <li class="dropdown guide-mobile-menu"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Health Advice <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="/LondonAir/guide/AirQualityBands.aspx">Air quality bands</a></li> <li><a href="/LondonAir/guide/MyActionsForMe.aspx">Avoiding pollution</a></li> <li><a href="/LondonAir/guide/BusyRoad.aspx">Busy roads</a></li> <li><a href="/LondonAir/guide/Exercise.aspx">Exercise</a></li> <li><a href="/LondonAir/guide/Fireworks.aspx">Fireworks</a></li> <li><a href="/LondonAir/guide/GuideIn30Seconds.aspx">Guide in 30 seconds</a></li> <li><a href="/LondonAir/guide/IndoorHealth.aspx">Indoor air pollution</a></li> <li><a href="/LondonAir/guide/FirstOzone.aspx">Ozone in spring</a></li> <li><a href="/LondonAir/guide/SportsDay.aspx">Sports day</a></li> <li><a href="/LondonAir/guide/SummerSmog.aspx">Summer smog</a></li> <li><a href="/LondonAir/guide/WhereShouldILive.aspx">Where should I live?</a></li> <li><a href="/LondonAir/guide/WinterSmog.aspx">Winter smog</a></li> </ul> </li> </ul> <ul class="nav navbar-nav visible-xs-block guide-mobile-menu"> <li class="dropdown guide-mobile-menu"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">London <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="/LondonAir/guide/Episodes.aspx">Episodes</a></li> <li><a href="/LondonAir/guide/London.aspx">How bad is london?</a></li> <li><a href="/LondonAir/guide/WhatIsLAQN.aspx">LAQN</a></li> <li><a href="/LondonAir/guide/LondonHistory.aspx">London history</a></li> <li><a href="/LondonAir/guide/Monitoring.aspx">Monitoring</a></li> <li><a href="/LondonAir/guide/WhyMonitor.aspx">Why monitor?</a></li> <li><a href="/LondonAir/guide/WorstPlace.aspx">Worst place</a></li> </ul> </li> </ul> <ul class="nav navbar-nav visible-xs-block"> <li class="dropdown guide-mobile-menu"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Pollutants <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="/LondonAir/guide/WhatIsPollution.aspx">Air pollution</a></li> <li><a href="/LondonAir/guide/WhatIsCO.aspx">Carbon monoxide</a></li> <li><a href="/LondonAir/guide/WhatIsNO2.aspx">Nitrogen dioxide</a></li> <li><a href="/LondonAir/guide/WhatIsO3.aspx">Ozone</a></li> <li><a href="/LondonAir/guide/WhatIsPM.aspx">Particles</a></li> <li><a href="/LondonAir/guide/WhatIsSO2.aspx">Sulphur dioxide</a></li> </ul> </li> </ul> <ul class="nav navbar-nav visible-xs-block guide-mobile-menu"> <li class="dropdown guide-mobile-menu"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Videos <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="/LondonAir/guide/Soundslides/WhatIsPollution/WhatIsPollutionVideo.aspx">Air pollution</a></li> <li><a href="/LondonAir/guide/Soundslides/MyActionsForMe/MyActionsForMeVideo.aspx">Avoiding pollution</a></li> <li><a href="/LondonAir/guide/Soundslides/ClimateChange/ClimateChangeVideo.aspx">Climate change</a></li> <li><a href="/LondonAir/guide/Soundslides/DailyAirQualityIndex/DailyAirQualityIndexVideo.aspx">Daily air quality index</a></li> <li><a href="/LondonAir/guide/Soundslides/Fireworks/FireworksVideo.aspx">Fireworks</a></li> <li><a href="/LondonAir/guide/Soundslides/HealthEffects/HealthEffectsVideo.aspx">Health effects</a></li> <li><a href="/LondonAir/guide/Soundslides/LondonHistory/LondonHistoryVideo.aspx">London history</a></li> <li><a href="/LondonAir/guide/Soundslides/Monitoring/MonitoringVideo.aspx">Monitoring</a></li> <li><a href="/LondonAir/guide/Soundslides/SummerSmog/SummerSmogVideo.aspx">Summer smog</a></li> <li><a href="/LondonAir/guide/Soundslides/ActionsOverview/ActionsOverviewVideo.aspx">What can be done?</a></li> <li><a href="/LondonAir/guide/Soundslides/WinterSmog/WinterSmogVideo.aspx">Winter smog</a></li> </ul> </li> </ul> </div> <!-- /.navbar-collapse --> </div> <!-- /.container-fluid --> </nav> <!-- hide the guide navigation on non guide pages --> <script type="text/javascript"> document.addEventListener("DOMContentLoaded", function (event) { if (window.location.href.toLowerCase().indexOf("guide") == -1) { var guideElements = document.querySelectorAll('.guide-mobile-menu'), i = 0; for (i; i < guideElements.length; i++) { guideElements[i].style.display = 'none'; } } }) </script> <section class="bg-push" style="position: relative;"> <!-- hero banner user control --> <!-- LondonAir API key: AIzaSyAqXbabQZa6QFYyHaBfbsDR3_OPQ2-iFEc --> <!-- Andrew's API key: AIzaSyA1NN0Xs8HGbXo9QX9W-Tyg4ab1a1tL9Uk --> <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyA1NN0Xs8HGbXo9QX9W-Tyg4ab1a1tL9Uk"></script> <script type="text/javascript" src="/assets/js/GoogleMapV3Utils.js?v=1.0"></script> <script type="text/javascript" src="/assets/js/extDraggableObject.min.js?v=1.0"></script> <div id="ctl00_HeroBannerHome1_PanelHourlyBulletin"> <!-- Map container --> <div class="map-full-width map-fill-viewport map-banding-right"> <!-- map rendered here --> <div id="map_canvas" style="width:100%; height:100%;"></div> <!-- Air quality index banding strip key --> <div class="banding-flex-vertical banding-vertical-20m" style="position:absolute; top:0; right:0; width:18px; height:100%;"> <style type="text/css"> /* Inline styles and in-page style tag for easier banding-strip component portability */ .banding-flex-vertical table div { height:1px; text-transform:uppercase; text-align:center; font-size:12px; color:white; line-height:10px; } </style> <table style="width:100%; height:100%; position:absolute; border-collapse:collapse;"> <tbody> <tr style="background-color:#366981; height:13%;"><td><div style="margin-top:-14px;">K<br>e<br>y</div></td></td></tr> <tr style="background-color:#ffffff; height:1px;"><td></td></tr> <!-- divider --> <tr style="background-color:#000000; height:17%;"><td><div style="margin-top:-23px;"><span style="letter-spacing:-0.25em">V.</span><br>h<br>i<br>g<br>h</div></td></tr> <tr style="background-color:#ffffff; height:1px;"><td></td></tr> <!-- divider --> <tr style="background-color:#7a0000; height:8%; "><td></td></tr> <tr style="background-color:#a30000; height:8%; "><td><div style="margin-top:-20px;">H<br>i<br>g<br>h</div></td></tr> <tr style="background-color:#d80000; height:8%; "><td></td></tr> <tr style="background-color:#ffffff; height:1px;"><td></td></tr> <!-- divider --> <tr style="background-color:#f46200; height:8%; "><td></td></tr> <tr style="background-color:#fe994d; height:8%; "><td><div style="margin-top:-39px;">M<br>o<br>d<br>e<br>r<br>a<br>t<br>e</div></td></tr> <tr style="background-color:#eebf8f; height:8%; "><td></td></tr> <tr style="background-color:#ffffff; height:1px;"><td></td></tr> <!-- divider --> <tr style="background-color:#2b8200; height:8%; "><td></td></tr> <tr style="background-color:#66a33e; height:8%; "><td valign="top"><div style="margin-top:-10px;">L<br>o<br>w</div></td></tr> <tr style="background-color:#a3cc7a; height:8%; "><td></td></tr> </tbody> </table> </div> </div> <!-- / Map --> <!-- Map info box Bootstrap column positional wrapper --> <div class="container"> <div class="row"> <div class="col-xs-12 col-sm-5 col-md-4 col-lg-3"> <!-- Map info box --> <div class="reveal-box reveal-box-map"> <header class="bg-ground bg-push"> <h4> <!-- % TitleText = Replace(TitleText, "@ 07:00", "") % --> <!-- Air Pollution @ 07:00 --> Air Pollution <div class="reveal-box-open-ui pull-right hidden-xs component-hourly-bulletin"> <i class="fa fa-chevron-down reveal-box-open"></i> <i class="fa fa-chevron-up pull-right reveal-box-closed"></i> </div> </h4> </header> <div class="reveal-box-body bg-push slideup"> <p>This map shows current pollution levels across London. This combines readings taken within the last hour and air pollution modelling. <a href="/LondonAir/nowcast.aspx">more...</a></p> <!-- postcode search --> <script src="/assets/js/postcodes-v3.js" type="text/javascript"></script> <div class="search-submit-integrated"> <div class="form-group"> <input type="text" class="form-control" placeholder="Find postcode" name="address" id="address"> <a class="btn btn-sm btn-link" onclick="javascript: codeAddress(document.getElementById('address').value)"><i class="fa fa-search fa-lg"></i></a> </div> </div> </div> </div> <!-- / Map info box --> </div> </div> </div> <!-- / Map info box Bootstrap column positional wrapper --> <!-- ========== START GOOGLE MAPS JAVASCRIPT - v2 - V3 MIGRATION ================== --> <script type="text/javascript"> // In v3, all Google Maps JavaScript API code is stored in the google.maps.* namespace instead of the global namespace. // This will cause the map to render with newly styled base map tiles, markers, info windows and controls. google.maps.visualRefresh = true; // ====================== GLOBAL VARIABLES ============================ // === initialise arrays and counter for XML nodes/site names etc === var markers = []; var gmarkers = []; var htmls = []; var names = []; var SortedNames = []; var sites = []; var i = 0; // === arcgis variables === var dynamicMap = null; var imageParams = null; var layerDefs = []; // === google map settings == // array for tracking overlays and removing var overlays = []; var infowindow; // use global for map var map = null; // set zoom to ASP default var GlobalZoom = 11; console.log(); // === site specific variables === // create a store of the current selected site var GlobalSite = ""; // make global var to avoid google api error var original_site = ""; // index of site selected var ChosenIndex; // if site selected reset index to 0 if (GlobalSite != "") { ChosenIndex = 0; }; // ====================== END GLOBAL VARIABLES ============================ // ========================== FUNCTIONS =================================== // =========== get icon path for icontype index ============== // v3 we just need to return a path url: '/path/to/icon.png' function GetIconType(icontype) { // get the icons based on the AQ Index // use a bigger dot if we are in close var IconSize = "Small"; // large if zoomed in if (GlobalZoom > 11) { IconSize = "Large"; }; //console.log(GlobalZoom + " " + IconSize); // Air Quality Index -2 - closed var AQm2Icon = "/london/Images/NewIndex/AQ" + IconSize + "-1.png"; // Air Quality Index -1 - closed var AQm1Icon = "/london/Images/NewIndex/AQ" + IconSize + "-1.png"; // Air Quality Index 0 - NO DATA var AQ0Icon = "/london/Images/NewIndex/AQ" + IconSize + "0.png"; // Air Quality Index 1 var AQ1Icon = "/london/Images/NewIndex/AQ" + IconSize + "1.png"; // Air Quality Index 2 var AQ2Icon = "/london/Images/NewIndex/AQ" + IconSize + "2.png"; // Air Quality Index 3 var AQ3Icon = "/london/Images/NewIndex/AQ" + IconSize + "3.png"; // Air Quality Index 4 var AQ4Icon = "/london/Images/NewIndex/AQ" + IconSize + "4.png"; // Air Quality Index 5 var AQ5Icon = "/london/Images/NewIndex/AQ" + IconSize + "5.png"; // Air Quality Index 6 var AQ6Icon = "/london/Images/NewIndex/AQ" + IconSize + "6.png"; // Air Quality Index 7 var AQ7Icon = "/london/Images/NewIndex/AQ" + IconSize + "7.png"; // Air Quality Index 8 var AQ8Icon = "/london/Images/NewIndex/AQ" + IconSize + "8.png"; // Air Quality Index 9 var AQ9Icon = "/london/Images/NewIndex/AQ" + IconSize + "9.png"; // Air Quality Index 10 var AQ10Icon = "/london/Images/NewIndex/AQ" + IconSize + "10.png"; // Air Quality Index 1 T var AQ1IconT = "/london/Images/NewIndex/AQ" + IconSize + "1T.png"; // Air Quality Index 2 var AQ2IconT = "/london/Images/NewIndex/AQ" + IconSize + "2T.png"; // Air Quality Index 3 var AQ3IconT = "/london/Images/NewIndex/AQ" + IconSize + "3T.png"; // Air Quality Index 4 var AQ4IconT = "/london/Images/NewIndex/AQ" + IconSize + "4T.png"; // Air Quality Index 5 var AQ5IconT = "/london/Images/NewIndex/AQ" + IconSize + "5T.png"; // Air Quality Index 6 var AQ6IconT = "/london/Images/NewIndex/AQ" + IconSize + "6T.png"; // Air Quality Index 7 var AQ7IconT = "/london/Images/NewIndex/AQ" + IconSize + "7T.png"; // Air Quality Index 8 var AQ8IconT = "/london/Images/NewIndex/AQ" + IconSize + "8T.png"; // Air Quality Index 9 var AQ9IconT = "/london/Images/NewIndex/AQ" + IconSize + "9T.png"; // Air Quality Index 10 var AQ10IconT = "/london/Images/NewIndex/AQ" + IconSize + "10T.png"; // ======= WHO STANDARDS ICONS =================== // WHO Air Quality Index Meets var AQWHOMeets = "/london/Images/NewIndex/WHOMeets" + IconSize + ".png"; // WHO Air Quality Index Exceeds var AQWHOExceeds = "/london/Images/NewIndex/WHOExceeds" + IconSize + ".png"; // WHO Air Quality Index None var AQWHONone = "/london/Images/NewIndex/WHONone" + IconSize + ".png"; // WHO Air Quality Closed var AQWHOClosed = "/london/Images/NewIndex/WHOClosed" + IconSize + ".png"; // WHO Air Quality Index Meets - Predicted var AQWHOMeetsT = "/london/Images/NewIndex/WHOMeets" + IconSize + "T.png"; // WHO Air Quality Index Exceeds - Predicted var AQWHOExceedsT = "/london/Images/NewIndex/WHOExceeds" + IconSize + "T.png"; // WHO Air Quality Index None - Predicted var AQWHONoneT = "/london/Images/NewIndex/WHONone" + IconSize + ".png"; // WHO Air Quality Closed - Predicted var AQWHOClosedT = "/london/Images/NewIndex/WHOClosed" + IconSize + ".png"; // store icons in array - so we can access by index number var icons = []; icons[-2] = AQm2Icon; icons[-1] = AQm1Icon; icons[0] = AQ0Icon; icons[1] = AQ1Icon; icons[2] = AQ2Icon; icons[3] = AQ3Icon; icons[4] = AQ4Icon; icons[5] = AQ5Icon; icons[6] = AQ6Icon; icons[7] = AQ7Icon; icons[8] = AQ8Icon; icons[9] = AQ9Icon; icons[10] = AQ10Icon; icons[11] = AQ1IconT; icons[12] = AQ2IconT; icons[13] = AQ3IconT; icons[14] = AQ4IconT; icons[15] = AQ5IconT; icons[16] = AQ6IconT; icons[17] = AQ7IconT; icons[18] = AQ8IconT; icons[19] = AQ9IconT; icons[20] = AQ10IconT; // WHO index icons icons[21] = AQWHOMeets; icons[22] = AQWHOExceeds; icons[23] = AQWHONone; icons[24] = AQWHOClosed; icons[31] = AQWHOMeetsT; icons[32] = AQWHOExceedsT; icons[33] = AQWHONoneT; icons[34] = AQWHOClosedT; // return url path of icontype requested based on index number passed in return icons[icontype]; // ##### END ICONS ############### } // ========= get z-index based on icon type ================= function getZIndex(icontype) { var zindex = null; // WHO standards if (icontype >= 21 && icontype <= 34) { //alert(icontype); switch(icontype) { //AQWHOMeets case 21: zindex = icontype * 10; break; //AQWHOExceeds case 22: zindex = icontype * 20; break; //AQWHONone case 23: zindex = icontype * 10; break; //AQWHOClosed case 24: zindex = icontype * 10; break; //AQWHOMeetsT case 31: zindex = (icontype - 10) * 10 - 5; break; //AQWHOExceedsT case 32: zindex = (icontype - 20) * 20 - 5; break; //AQWHONoneT case 33: zindex = (icontype - 10) * 10 - 5; break; //AQWHOClosedT case 34: zindex = (icontype - 10) * 10 - 5; break; } } // reduce z-index for predicted else if (icontype > 10) { zindex = (icontype - 10) * 10 - 5; } // increase z-index for measurements else { zindex = icontype * 10; } // increase z-index by 9000 to put markers above nowcast slideshow banner zindex =zindex + 9000; // return z index number for icons return zindex; } // ================== function to create the marker and set up the event window =================== function createMarker(point,label,html,icontype,site) { //console.log(point,label,html,icontype,site); // define the icon settings var image = { url: GetIconType(icontype), // This marker is 30 pixels wide by 30 pixels tall. size: new google.maps.Size(30, 30), // The origin for this image is 0,0. //origin: new google.maps.Point(0,0), // The anchor for this image is the base of the icon at 0,32. //anchor: new google.maps.Point(0, 32) }; // create a marker object var marker = new google.maps.Marker( { position: point, // get icon from function - v3 we just need a path url: '/path/to/icon.png' //icon: GetIconType(icontype), icon: image, //shape: shape, // label is the variable for the site name title: label, // set z-index from function zIndex: getZIndex(icontype), // can add to map here //map: map, // add icontype for changing size on refresh function customInfo: icontype }); //console.log("zindex=" + getZIndex(icontype)); //console.log("icon=" + GetIconType(icontype)); //============== set Level text for window bubble ==================== var LevelText = ""; if (icontype==0) { LevelText = "No index" }; if (icontype==-1) { LevelText = "Site Closed" }; if (icontype>=1 && icontype < 11) { LevelText = "Index level "+ icontype }; if (icontype>=11 && icontype < 21) { LevelText = "Index level "+ (icontype-10) + " (predicted)" }; // ================= end level text ================ // ========= add click event to show window ================================= google.maps.event.addListener(marker, "click", function() { //console.log("clicked=" + label); // set Global site to current site code in loop GlobalSite = site; // get map centre var center = map.getCenter(); // === create the HTML for the link in the info window var WindowHtml = "<div class=\"info-window\"><strong>" + label + "</strong> - <br />" + LevelText + "<br /><a href=" + html + "&zoom=" + map.getZoom() + "&lat=" + center.lat() + "&lon=" + center.lng() + ">View monitoring data</a></div>"; // close window if open if (infowindow) infowindow.close(); // create new window with HTML in bubble infowindow = new google.maps.InfoWindow({ content: WindowHtml, maxWidth: 400 }); infowindow.open(map,marker); }); // =========== end marker click event listener ============ // set index of global markers array gmarkers[i] = marker; // set html array htmls[i] = html; // set the site code sites[i] = site; // set names names[i] = label //console.log("gmarkers=" + gmarkers[i]); //console.log("htmls=" + htmls[i]); //console.log("sites=" + sites[i]); //console.log("names=" + names[i]); // increment markers count i++; // return the marker object return marker; } // ========================== end createMarker =========================================== // ============ function to load XML into Google Map markers ======================= function loadXML(reload) { //console.log("load XML - reload " + reload); // ======================================== XML LOADING GOOGLE MAP API V3 ========================================================= // local JS callback function with querystring set with above variables for species/closed & WHO bulletin // returns data object in callback // console.log("/london/asp/XML/BulletinXml.asp?bulletin=hourly&bulletindate=27/11/2024 06:01®ion="); downloadUrl("/london/asp/XML/BulletinXml.asp?bulletin=hourly&bulletindate=27/11/2024 06:01®ion=", function(data) { // get all the <marker> nodes for each site markers = data.documentElement.getElementsByTagName("marker"); //console.log("XML nodes =" + markers.length); // reset the global array names list names = []; // v3 close any windows var infowindow = null; if (infowindow) { infowindow.close(); } // V3 All the polygons & markers are pushed to overlays array. //pop() method returns the last element of an array. It also removes that from the array. // while-loop removes the overlays both from the map and from the array. while(overlays[0]) { overlays.pop().setMap(null); } // empty the googleMarkers array gmarkers = []; // ======== so sites dont hide each other ==============// // set offset calculation factor and max zoom var factor = parseFloat(0.2/(90000)); var MaxZoomLevel = parseFloat(16-1); // ============= loop through all XML marker nodes ========================== //for (m = 0; m < 5; m++) for (var m = 0; m < markers.length; m++) { // obtain the attribues of each marker from the XML file // site code var site = markers[m].getAttribute("code"); // lat and long positions var lat = parseFloat(markers[m].getAttribute("lat")); var lng = parseFloat(markers[m].getAttribute("lng")); // get offsets var latoffset = parseFloat(markers[m].getAttribute("latoffset")); var lonoffset = parseFloat(markers[m].getAttribute("lonoffset")); // CHECK THESE OFFSETS STILL WORK IN V3 // calculate new lat/long with calculation factors - get zoom level from the Global Var var newLat = parseFloat(lat + (latoffset * factor * Math.pow(1.8,(MaxZoomLevel+1) - GlobalZoom)/(MaxZoomLevel-8))); var newLong = parseFloat(lng + (lonoffset * factor * Math.pow(1.8,(MaxZoomLevel+1) - GlobalZoom)/(MaxZoomLevel-8))); // create point from lat/lng //var point = new google.maps.LatLng(lat,lng); var point = new google.maps.LatLng(newLat,newLong); // get site HTML for link and site name var html = markers[m].getAttribute("html"); var label = markers[m].getAttribute("label"); // =========== set up icons ============================ // convert to integer for DAQI icons var icontype = parseInt(markers[m].getAttribute("icontype")); // Index Source var IndexSource = markers[m].getAttribute("IndexSource"); // change icon for triggers/predicted if (IndexSource == "Trigger") { icontype = icontype + 10; } // create the marker with values from the XML node - call createMarker function on each node/site //console.log("create marker for index = " + m); var marker = createMarker(point,label,html,icontype,site); //console.log("marker created - icon type = " + marker.customInfo); // add to map marker.setMap(map); // remove //marker.setMap(null); // push marker to overlays array overlays.push(marker); // repeat loop again for next monitoring site } // ============= END loop through XML marker nodes ========================== //=================== find out chosen index ==================================== // add the marker if we need to //console.log("original site = " + original_site); // if original site var has been set if (original_site != "") { // reset chosen index var ChosenIndex = -1; // loop through markers - i to total number read in from XML for (var m = 0; m <= markers.length; m++) { // match sitecode index to markers index if (sites[m] == original_site) { // get the index for the site ChosenIndex = m; } } // need to act as if we have selected the site to keep bubble ChosenIndex = -1; google.maps.event.trigger(gmarkers[ChosenIndex],"click"); } // ========= end downloadUrl function =============== //console.log("end downloadUrl function"); }); //console.log("end loadXML function"); } // ================== end loadXML function ===================== // ================== Refresh icon markers and lat/lng offsets (based on zoom level) when zooming ===================== function RefreshMarkers() { //console.log("refresh " + gmarkers.length + " map markers from gmarker array"); //console.log("refresh " + markers.length + " map markers from markers XML"); // same code as in LoadXML but without loading the XML just refresh markers and apply offset based on zoom level // reset the gmarkers loop counter i = 0; // set to global site original_site = GlobalSite; // ======== clear existing markers ========== // V3 All the polygons & markers are pushed to overlays array. pop() method returns the last element of an array. It also removes that from the array. // while-loop removes the overlays both from the map and from the array. while(overlays[0]) { overlays.pop().setMap(null); } // ======== so sites dont hide each other ==============// // set offset calculation factor and max zoom var factor = parseFloat(0.2/(90000)); var MaxZoomLevel = parseFloat(16-1); // loop through current markers on the map // these ones stored in gmarker array //for(i = 0; i < gmarkers.length; i ++ ) // these are from XML loop if(!!markers){ //in IE edge the markers are null for unknown reason, reload markers loadXML(true); }else{ for (var m = 0; m < markers.length; m++) { // obtain the attribues of each marker from the MARKERS array variable // site code var site = markers[m].getAttribute("code"); // lat and long positions var lat = parseFloat(markers[m].getAttribute("lat")); var lng = parseFloat(markers[m].getAttribute("lng")); // get offsets var latoffset = parseFloat(markers[m].getAttribute("latoffset")); var lonoffset = parseFloat(markers[m].getAttribute("lonoffset")); // calculate new lat/long with calculation factors - get zoom level from the Global Var var newLat = parseFloat(lat + (latoffset * factor * Math.pow(1.8,(MaxZoomLevel+1) - GlobalZoom)/(MaxZoomLevel-8))); var newLong = parseFloat(lng + (lonoffset * factor * Math.pow(1.8,(MaxZoomLevel+1) - GlobalZoom)/(MaxZoomLevel-8))); // create point from lat/lng //var point = new google.maps.LatLng(lat,lng); var point = new google.maps.LatLng(newLat,newLong); // get site HTML for link and site name var html = markers[m].getAttribute("html"); var label = markers[m].getAttribute("label"); // =========== set up icons ============================ // convert to integer for DAQI icons var icontype = parseInt(markers[m].getAttribute("icontype")); // check WHO index icontype - convery to array index for new icons switch(icontype) { case "Meets": icontype = 21; break; case "Exceeds": icontype = 22; break; case "None": icontype = 23; break; case "Closed": icontype = 24; break; default: icontype = icontype; break; } // Index Source var IndexSource = markers[m].getAttribute("IndexSource"); // change icon for triggers/predicted if (IndexSource == "Trigger") { icontype = icontype + 10; } // create the marker with values from the XML node - call createMarker function on each node/site //console.log("create marker for index = " + m); var marker = createMarker(point,label,html,icontype,site); //console.log("marker created - icon type = " + marker.customInfo); // add to map marker.setMap(map); // remove //marker.setMap(null); // push marker to overlays array overlays.push(marker); // ======= CODE TAKEN FROM ZOOM EVENT ============== // set site name to one selected - GlobalSite is set in the click event listener site = GlobalSite; // reset the chosen index of site ChosenIndex = -1; // if site not empty if (site != "" ) { // if the current site clicked matches the one current in markers loop if (sites[m] == site) { //console.log("sites[m]=" + sites[m] + " site=" + site); // set the chosen index to the array number for the site - so we can track it by a number eg sites[10] ChosenIndex = m; //console.log("ChosenIndex=" + ChosenIndex + " original_site" + original_site); } } // =================== ZOOM EVENT CODE ============== // stop infowindow closing on zoom // if site has been selected before zoom // 0 treated as empty so change condition if (ChosenIndex >= 0) { // if site selected if (original_site != "" ) { // trigger click event on chosen site to show infowindow (bubble) //console.log("keep infowindow open"); google.maps.event.trigger(gmarkers[ChosenIndex],"click"); //google.maps.event.trigger(markers[ChosenIndex],"click"); } } // >>>>>>>>> repeat loop again for next monitoring site // end gmarker loop } } } // ================== end Refresh function ===================== // ==================== the initialize function called first on page load - before everthing else ============== function initialize() { //console.log("initialize called"); // Create an array of styles. var greyscaleMap = [{ featureType: "all", stylers: [ { saturation:-80 } ] }]; // Create a new StyledMapType object, passing it the array of styles, // as well as the name to be displayed on the map type control. var greyMapType = new google.maps.StyledMapType(greyscaleMap, { name : "Greyscale" }); //============= create the map ================== var mapOptions = { // get values from ASP request object center: new google.maps.LatLng(51.5008010864, -0.124632000923), zoom: GlobalZoom, panControl: false, panControlOptions: { position: google.maps.ControlPosition.TOP_RIGHT }, zoomControl: true, zoomControlOptions: { style: google.maps.ZoomControlStyle.LARGE, position: google.maps.ControlPosition.TOP_LEFT }, scaleControl: true, scaleControlOptions: { position: google.maps.ControlPosition.TOP_LEFT }, mapTypeControl: false, mapTypeControlOptions: { mapTypeIds : [google.maps.MapTypeId.ROADMAP,google.maps.MapTypeId.HYBRID,google.maps.MapTypeId.SATELLITE, 'greyscale'], style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.TOP_CENTER }, mapTypeId: 'greyscale', streetViewControl: false } // add map to page with options map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions); //Associate the styled map with the MapTypeId and set it to display. map.mapTypes.set('greyscale', greyMapType); map.setMapTypeId('greyscale'); //map.setMapTypeId(google.maps.MapTypeId.HYBRID); //console.log("zoom = " + map.getZoom()); //============= end create the map ================== // ========= load XML to map - first load so reload boolean is false //console.log("loadXML called"); loadXML(false); // =========== MAP EVENT LISTENERS INSIDE THE INITIALIZE FUNCTION =================================== // =========== map type changed function ================= google.maps.event.addListener(map, 'maptypeid_changed', function() { //console.log("maptypeid_changed=" + map.getMapTypeId()); }); // ============= add event listener for the zoom changed event ================ google.maps.event.addListener(map, "zoom_changed", function() { var zoomLevel = map.getZoom(); // set global variable to current zoom GlobalZoom = zoomLevel; console.log("zoomed changed - global zoom=" + GlobalZoom); // refresh markers to change icon size RefreshMarkers(); }); // ===== close zoom listener // ========== event listender for closing infowindow ============== google.maps.event.addListener(map, "infowindowclose", function() { // reset the selected site GlobalSite = ""; }); } // =============== end initialize function =============== // =========== call initialize function on page load - add it to the DOM event google.maps.event.addDomListener(window, 'load', initialize); </script> </div> <div style="display: none"> </div> <!-- customise user control --> <!-- Customise homepage info box --> <div class="reveal-box reveal-box-right bg-ground collapsed"> <header class="bg-ground bg-push"> <h4> Customise <div class="reveal-box-open-ui pull-right"> <i class="fa fa-chevron-down reveal-box-open"></i> <i class="fa fa-chevron-up pull-right reveal-box-closed"></i> </div> </h4> </header> <div class="reveal-box-body"> <p>Customise this website to suit your needs.</p> <div class="form-group"> <select name="ctl00$CustomiseUser1$DropDownListUserRole" id="ctl00_CustomiseUser1_DropDownListUserRole" class="form-control"> <option selected="selected" value="Public">Choose your interest area</option> <option value="Public">Public</option> <option value="Policy">Policy</option> <option value="Science">Science</option> </select> </div> <div class="form-group"> <select name="ctl00$CustomiseUser1$DropDownListLA" id="ctl00_CustomiseUser1_DropDownListLA" class="form-control"> <option value="none">Choose a local authority</option> <option value="Barking and Dagenham">Barking and Dagenham</option> <option value="Bexley">Bexley</option> <option value="Brent">Brent</option> <option value="Brentwood">Brentwood</option> <option value="Bromley">Bromley</option> <option value="Camden">Camden</option> <option value="Castle Point">Castle Point</option> <option value="City of London">City of London</option> <option value="Croydon">Croydon</option> <option value="Dartford">Dartford</option> <option value="Ealing">Ealing</option> <option value="Enfield">Enfield</option> <option value="Greenwich">Greenwich</option> <option value="Hackney">Hackney</option> <option value="Haringey">Haringey</option> <option value="Harrow">Harrow</option> <option value="Havering">Havering</option> <option value="Islington">Islington</option> <option value="Kensington and Chelsea">Kensington and Chelsea</option> <option value="Kingston">Kingston</option> <option value="Lambeth">Lambeth</option> <option value="Lewisham">Lewisham</option> <option value="Merton">Merton</option> <option value="Newham">Newham</option> <option value="Reading">Reading</option> <option value="Redbridge">Redbridge</option> <option value="Reigate and Banstead">Reigate and Banstead</option> <option value="Richmond">Richmond</option> <option value="Sevenoaks">Sevenoaks</option> <option value="Southwark">Southwark</option> <option value="Sutton">Sutton</option> <option value="Thurrock">Thurrock</option> <option value="Tower Hamlets">Tower Hamlets</option> <option value="Wandsworth">Wandsworth</option> <option value="Westminster">Westminster</option> <option value="Windsor and Maidenhead">Windsor and Maidenhead</option> </select> </div> <input type="submit" name="ctl00$CustomiseUser1$btnLA" value="Update" id="ctl00_CustomiseUser1_btnLA" class="btn btn-warning" /> <input type="submit" name="ctl00$CustomiseUser1$btnClear" value="Clear" id="ctl00_CustomiseUser1_btnClear" class="btn btn-warning" /> </div> <!-- errors --> </div> <!-- / Customise info box --> </section> <!-- content pages display here eg default.aspx --> <!-- Feature Widgets --> <!-- Primary promo tiles --> <section class="bg-figure breathe-3x promo-tiles-primary"> <div class="container"> <div class="row col-gutter-half col-gutter-vertical-half"> <div class="col-xs-12 col-sm-4"> <div class="promo-tile"> <a id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_HyperLinkFeature7" title="Video showing answers to common questions about air pollution, health and actions" href="/LondonAir/guide/Soundslides/HealthEffects/HealthEffectsVideo.aspx"> <header><h6><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ShortTitle7">Guide</span></h6></header> <div class="promo-img"> <img id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ImageFeature7" title="View" class="img-responsive" src="Handlers/ImageHandler.ashx?img=/LondonAir/Images/guide/HealthEffects.jpg&size=3" alt="View" style="border-width:0px;"> </div> <h3><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_LongTitle7">Current video</span></h3> <p>Air pollution, health and actions</p> </a> </div> <!-- Promo tile <div class="promo-tile"> <a id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_HyperLinkFeature1" title="We have a network of air pollution monitoring sites in and around London." href="/london/asp/publicbulletin.asp"> <header><h6><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ShortTitle1">HourlyBulletin</span></h6></header> <div class="promo-img"> <img id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ImageFeature1" title="View Measurement Map" class="img-responsive" src="Handlers/ImageHandler.ashx?img=/Londonair/Images/items/HourlyBulletin1.png&size=1" alt="View Measurement Map" style="border-width:0px;" /> </div> <h3><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_LongTitle1">Readings @ 07:00</span></h3> <p><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_Detail1">We have a network of air pollution monitoring sites in and around London. You can see the latest hourly air pollution indexes on an interactive map.</span></p> </a> </div> --> </div> <div class="col-xs-12 col-sm-4"> <!-- Promo tile --> <div class="promo-tile"> <a id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_HyperLinkFeature2" title="Londonair available everywhere" href="/LondonAir/MobileApps/"> <header><h6><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ShortTitle2">Apps</span></h6></header> <div class="promo-img"> <img id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ImageFeature2" title="See Apps" class="img-responsive" src="Handlers/ImageHandler.ashx?img=/assets/img/promo/apps.jpg&size=1" alt="See Apps" style="border-width:0px;" /> </div> <h3><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_LongTitle2">Mobile Apps</span></h3> <p><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_Detail2">Londonair available everywhere - we have a wide range of mobile apps to give you great access wherever you are.</span></p> </a> </div> </div> <div class="col-xs-12 col-sm-4"> <!-- Promo tile --> <div class="promo-tile"> <a id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_HyperLinkFeature3" title="This is the modelled annual map of NO2 pollution for 2013 everywhere in London." href="/london/asp/annualmaps.asp"> <header><h6><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ShortTitle3">AnnualMaps</span></h6></header> <div class="promo-img"> <img id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ImageFeature3" title="View Annual Maps" class="img-responsive" src="Handlers/ImageHandler.ashx?img=/Londonair/Images/items/NO2_2013.png&size=1" alt="View Annual Maps" style="border-width:0px;" /> </div> <h3><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_LongTitle3">Annual NO2</span></h3> <p><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_Detail3">This is the modelled annual map of nitrogen dioxide (NO2) pollution for 2013 everywhere in London.</span></p> </a> </div> </div> </div> </div> </section> <!-- Secondary, smaller promo tiles --> <!-- N.B. This <section> has different ".col-*" classes --> <section class="bg-push breathe-2x promo-tiles-secondary"> <div class="container"> <div class="row col-gutter-half col-gutter-vertical-half"> <div class="col-xs-6 col-sm-4 col-md-2"> <!-- Promo tile --> <div class="promo-tile"> <a id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_HyperLinkFeature4" title="Sign up for the London air daily air pollution forecast email." href="http://email.londonair.org.uk/h/j/C181D943EF3ED945"> <header><h6><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ShortTitle4">ForecastSignup</span></h6></header> <div class="promo-img"> <img id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ImageFeature4" title="Sign Up" class="img-responsive" src="Handlers/ImageHandler.ashx?img=/assets/img/promo/newsletter.jpg&size=3" alt="Sign Up" style="border-width:0px;" /> </div> <h3><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_LongTitle4">Forecast Signup</span></h3> </a> </div> </div> <div class="col-xs-6 col-sm-4 col-md-2"> <!-- Promo tile --> <div class="promo-tile"> <a id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_HyperLinkFeature5" title="This is a prototype visualisation of the annual objectives for monitoring sites, designed to be explored and to inspire comment." href="/LondonAir/Data-Visualisations/meanVSpeak.aspx"> <header><h6><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ShortTitle5">Visualisations</span></h6></header> <div class="promo-img"> <img id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ImageFeature5" title="See graph" class="img-responsive" src="Handlers/ImageHandler.ashx?img=/LondonAir/images/items/Visualisations.png&size=3" alt="See graph" style="border-width:0px;" /> </div> <h3><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_LongTitle5">Mean Vs Peak Visualisation</span></h3> </a> </div> </div> <div class="col-xs-6 col-sm-4 col-md-2"> <div class="promo-tile"> <a id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_HyperLinkFeature6" title="Latest episode: First ever DAQI High Ozone episode in September" href="/london/asp/PublicEpisodes.asp"> <header><h6><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ShortTitle6">Episode</span></h6></header> <div class="promo-img"> <img id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ImageFeature6" title="View Episode" class="img-responsive" src="Handlers/ImageHandler.ashx?img=/Londonair/Images/items/Episode1.png&size=3" alt="View Episode" style="border-width:0px;" /> </div> <h3><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_LongTitle6">Latest episode: First ever DAQI High Ozone episode in September</span></h3> </a> </div> </div> <div class="col-xs-6 col-sm-4 col-md-2"> <!-- Promo tile --> <div class="promo-tile"> <a id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_HyperLinkFeature7" title="Video showing answers to common questions about air pollution, health and actions" href="/LondonAir/guide/Soundslides/HealthEffects/HealthEffectsVideo.aspx"> <header><h6><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ShortTitle7">Guide</span></h6></header> <div class="promo-img"> <img id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ImageFeature7" title="View" class="img-responsive" src="Handlers/ImageHandler.ashx?img=/LondonAir/Images/guide/HealthEffects.jpg&size=3" alt="View" style="border-width:0px;" /> </div> <h3><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_LongTitle7">Current video: Air pollution, health and actions</span></h3> </a> </div> </div> <div class="col-xs-6 col-sm-4 col-md-2"> <!-- Promo tile --> <div class="promo-tile"> <a id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_HyperLinkFeature8" title="Report: 2020 LAQN Summary Report" href="/london/asp/reportdetail.asp?ReportID=2020laqnr&ReportType=Latest_Report"> <header><h6><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ShortTitle8">Report</span></h6></header> <div class="promo-img"> <img id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ImageFeature8" title="View Report" class="img-responsive" src="Handlers/ImageHandler.ashx?img=/assets/img/promo/reports.jpg&size=3" alt="View Report" style="border-width:0px;" /> </div> <h3><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_LongTitle8">Report: 2020 LAQN Summary Report</span></h3> </a> </div> </div> <div class="col-xs-6 col-sm-4 col-md-2"> <!-- Promo tile --> <div class="promo-tile"> <a id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_HyperLinkFeature9" title="Report: 2019 LAQN Summary Report" href="/london/asp/reportdetail.asp?ReportID=2019laqnr&ReportType=Latest_Report"> <header><h6><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ShortTitle9">Report</span></h6></header> <div class="promo-img"> <img id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_ImageFeature9" title="View Report" class="img-responsive" src="Handlers/ImageHandler.ashx?img=/assets/img/promo/reports.jpg&size=3" alt="View Report" style="border-width:0px;" /> </div> <h3><span id="ctl00_ContentPlaceHolder1_FeatureWidgetsHome_LongTitle9">Report: 2019 LAQN Summary Report</span></h3> </a> </div> </div> </div> </div> </section> <div class="clear"></div> <!-- Local authority clouds list --> <!-- Local authority list --> <section class="bg-sky breathe-3x bg-skyline"> <div class="container"> <h1 class="text-center">Air Quality by Local Authority</h1> <div class="sort-options visible-js clearfix"> <h6 class="pull-left">Sort</h6> <div class="btn-group" role="group" aria-label="sort"> <button type="button" class="btn btn-primary btn-sm" data-sort="abc">Alphabetically</button> <button type="button" class="btn btn-default btn-sm" data-sort="aqi">By Pollution</button> </div> </div> <!-- repeater to loop through the LA list --> <div class="local-authority-list breathe-2x"> <ul class="nav nav-pills can-animate"> <!-- remove "can-animate" to disable animation --> <li data-aqi="1"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=1">Barking and Dagenham<span class="badge">1</span></a></li> <li data-aqi="2"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=3">Bexley<span class="badge">2</span></a></li> <li data-aqi="2"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=4">Brent<span class="badge">2</span></a></li> <li data-aqi="0"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=42">Brentwood<span class="badge"> </span></a></li> <li data-aqi="1"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=5">Bromley<span class="badge">1</span></a></li> <li data-aqi="0"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=6">Camden<span class="badge"> </span></a></li> <li data-aqi="0"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=43">Castle Point<span class="badge"> </span></a></li> <li data-aqi="0"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=7">City of London<span class="badge"> </span></a></li> <li data-aqi="1"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=8">Croydon<span class="badge">1</span></a></li> <li data-aqi="1"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=56">Dartford<span class="badge">1</span></a></li> <li data-aqi="1"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=9">Ealing<span class="badge">1</span></a></li> <li data-aqi="1"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=10">Enfield<span class="badge">1</span></a></li> <li data-aqi="2"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=11">Greenwich<span class="badge">2</span></a></li> <li data-aqi="0"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=12">Hackney<span class="badge"> </span></a></li> <li data-aqi="0"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=14">Haringey<span class="badge"> </span></a></li> <li data-aqi="0"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=15">Harrow<span class="badge"> </span></a></li> <li data-aqi="1"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=16">Havering<span class="badge">1</span></a></li> <li data-aqi="1"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=19">Islington<span class="badge">1</span></a></li> <li data-aqi="0"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=20">Kensington and Chelsea<span class="badge"> </span></a></li> <li data-aqi="0"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=21">Kingston<span class="badge"> </span></a></li> <li data-aqi="1"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=22">Lambeth<span class="badge">1</span></a></li> <li data-aqi="2"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=23">Lewisham<span class="badge">2</span></a></li> <li data-aqi="1"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=24">Merton<span class="badge">1</span></a></li> <li data-aqi="0"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=25">Newham<span class="badge"> </span></a></li> <li data-aqi="0"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=325">Reading<span class="badge"> </span></a></li> <li data-aqi="0"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=26">Redbridge<span class="badge"> </span></a></li> <li data-aqi="0"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=40">Reigate and Banstead<span class="badge"> </span></a></li> <li data-aqi="1"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=27">Richmond<span class="badge">1</span></a></li> <li data-aqi="0"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=37">Sevenoaks<span class="badge"> </span></a></li> <li data-aqi="1"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=28">Southwark<span class="badge">1</span></a></li> <li data-aqi="0"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=29">Sutton<span class="badge"> </span></a></li> <li data-aqi="1"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=34">Thurrock<span class="badge">1</span></a></li> <li data-aqi="0"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=30">Tower Hamlets<span class="badge"> </span></a></li> <li data-aqi="2"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=32">Wandsworth<span class="badge">2</span></a></li> <li data-aqi="1"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=33">Westminster<span class="badge">1</span></a></li> <li data-aqi="0"> <a href="http://www.londonair.org.uk/london/asp/publicbulletin.asp?la_id=35">Windsor and Maidenhead<span class="badge"> </span></a></li> </ul> </div> </div> </section> <!-- end content pages --> <!-- ======================================= London SkyLine area =================================--> <!-- feature widgets control --> <section class="bg-sky bg-push breathe-2x"> <div class="container"> <div class="row col-gutter-half col-gutter-vertical-half"> <div class="col-xs-12 col-sm-3"> <div class="promo-tile"> <div class="promo-tile"> <header><h6>Follow Us</h6></header> <a class="twitter-timeline" href="https://twitter.com/LondonAir" data-widget-id="361844812036587520" width="600" height="250">Tweets by @LondonAir</a> <script> !function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], p = /^http:/.test(d.location) ? 'http' : 'https'; if (!d.getElementById(id)) { js = d.createElement(s); js.id = id; js.src = p + "://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); } } (document, "script", "twitter-wjs"); </script> </div> </div> </div> <div class="col-xs-12 col-sm-3"> <!-- Promo tile - n.b. no wrapping anchor tag --> <!-- This panel is not a link. It may contain a link (as below) if needed --> <div class="promo-tile"> <header> <h6>Our newsletter</h6> </header> <div class="promo-img"> <img src="/assets/img/promo/newsletter.jpg" alt="Sign up for newsletter" class="img-responsive"> <b>Privacy Notice Summary:</b><br /> <ul> <li><b>Who this is for: </b>You must be at least 13 years old to use this service.</li> <li><b>What we collect: </b>We store your email address</li> <li><b>Who we share it with: </b>We use "Campaign Monitor" to store it, and do not share it with anyone else.</li> <li><b>More Info: </b>You can see our full privacy notice <a href="/LondonAir/PrivacyNotice.aspx" title="LAQN Privacy Notice">here</a></li> </ul> <form action="https://email.londonair.org.uk/t/j/s/djitdk/" method="post" id="subForm"> <div class="input-group"> <input id="emailInput" type="email" class="form-control" name="cm-djitdk-djitdk" id="djitdk-djitdk" placeholder="Your email..."> <span class="input-group-btn"> <input type="submit" name="ctl00$btnAirMail" value="Subscribe" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$btnAirMail", "", false, "", "https://email.londonair.org.uk/t/j/s/djitdk/", false, false))" id="ctl00_btnAirMail" title="Subscribe to AirMail" class="btn btn-primary" /> </span> </div> <!-- /input-group --> </form> </div> <h3>AirMail newsletter </h3> <p>The latest news and research from ERG: <a href="/LondonAir/AirMail.aspx">View the archive</a></p> </div> </div> <div class="col-xs-12 col-sm-3"> <!-- Promo tile --> <div class="promo-tile"> <div class="promo-img"> <a target="_blank" href="https://www.cleanairhub.org.uk/"> <header> <h6>UK Clean Air Hub</h6> </header> <div class="promo-img"> <img src="/assets/img/promo/CleanAirHub.png" alt="Go to CleanAirHub" class="img-responsive"> </div> <p> <b>UK Clean Air Hub</b> <br /> The Clean Air Hub has brought together information on what air pollution is, how it affects your health and what actions you can take to protect yourself and others. </p> </a> </div> </div> </div> <div class="col-xs-12 col-sm-3"> <!-- Promo tile --> <div class="promo-tile"> <div class="promo-img"> <a href="/LondonAir/MediaCoverage/Default.aspx"> <header> <h6>Media Coverage</h6> </header> <div class="promo-img"> <img src="/assets/img/promo/media-img.jpg" alt="Go to guide" class="img-responsive"> </div> <h3>Media Coverage</h3> <p>Providing details of the LAQN media engagements and references since 2014.</p> </a> </div> </div> </div> </div> </div> </section> <!-- footer control --> <!-- ======================================= mega footers =================================--> <footer class="bg-ground breathe-3x"> <div class="container"> <div class="row col-gutter-vertical"> <div class="col-xs-6 col-sm-3"> <h3>Pollution</h3> <ul class="list-unstyled"> <li><a href="/LondonAir/nowcast.aspx">Air Pollution Now</a></li> <li><a href="/LondonAir/Forecast/">Forecast</a></li> <li><a href="/london/asp/annualmaps.asp">Annual Maps</a></li> <li><a href="/london/asp/futuremaps.asp">Future Maps</a></li> <li><a href="https://www.londonair.org.uk/map-maker/" target="_blank">Create Pollution Map</a></li> <li><a href="/london/asp/publicepisodes.asp?region=0">Episodes</a></li> </ul> </div> <div class="col-xs-6 col-sm-3"> <h3>Information</h3> <ul class="list-unstyled"> <li><a href="/LondonAir/General/about.aspx">About Londonair</a></li> <li><a href="/LondonAir/Guide/FAQ.aspx">FAQ</a></li> <li><a href="/LondonAir/Guide/MyActionsForOthers.aspx">What can I do?</a></li> <li><a href="/LondonAir/Guide/home.aspx">Air pollution guide</a></li> <li><a href="/LondonAir/General/research.aspx" title="Research">Research</a></li> <li><a href="/LondonAir/Guide/Soundslides/AllVideos.aspx">Videos</a></li> <li><a href="/LondonAir/general/news.aspx">News</a></li> <li><a href="/LondonAir/MediaCoverage/Default.aspx">Media Coverage</a></li> <li><a href="/london/asp/reports.asp">Reports</a></li> <li><a href="/london/asp/LAQNSeminar/">Conferences</a></li> <li><a href="http://email.londonair.org.uk/h/j/C181D943EF3ED945">Forecast Signup</a></li> <li><a href="/LondonAir/guide/AirQualityBands.aspx">Air Quality Index</a></li> <!-- <li><a target"_blank" href="http://www.erg.kcl.ac.uk/research/home/index.html">ERG Research Projects</a></li> --> </ul> </div> <div class="col-xs-6 col-sm-3"> <h3>Monitoring</h3> <ul class="list-unstyled"> <li><a href="/london/asp/lahome.asp">Local Authorities</a></li> <li><a href="/london/asp/publicdetails.asp?region=0">Monitoring Sites</a></li> <li><a href="/london/asp/publicbulletin.asp">Latest Bulletin</a></li> <li><a href="/london/asp/publicstats.asp?region=0">Annual Limits</a></li> </ul> </div> <div class="col-xs-6 col-sm-3"> <h3>Tools</h3> <ul class="list-unstyled"> <li><a href="/LondonAir/MobileApps/">Apps & Widgets</a></li> <li><a href="/london/asp/datadownload.asp">Data Download</a></li> <li><a href="/london/asp/advgraphs.asp">Graph Plotting</a></li> <li><a href="/LondonAir/API/">Data Feeds</a></li> <li><a href="/london/asp/tools.asp">Statistics</a></li> <li><a href="http://davidcarslaw.github.io/openair/" target="_blank">Openair</a></li> </ul> </div> </div> </div> </footer> <!-- sub footer control --> <!-- ======================================= sub footer =================================--> <footer class="sub-footer bg-ground bg-push breathe"> <div class="container clearfix"> <p class="pull-left"> © 2024 <a href="https://imperial.ac.uk/school-public-health/environmental-research-group" target="_blank">ERG, Imperial College London</a> </p> <ul class="list-inline pull-right"> <li> <a href="/london/asp/contact.asp">Contact</a> </li> <li> <a href="/london/asp/copyright.asp">About</a> </li> <li> <a href="/london/asp/accessibility.asp">Accessibility</a> </li> <li> <a href="/LondonAir/Cookie.aspx">Cookies</a> </li> <li> <a href="/LondonAir/privacynotice.aspx">Privacy Notice</a> </li> <li> <a href="/london/asp/sitemap.asp">Site Map</a> </li> </ul> </div> </footer> <!-- JavaScript placed at the end of the body for faster page loads --> <!--[if gte IE 9]><!--> <script src="/assets/dist/jquery/jquery-2.2.2.min.js"></script> <!--<![endif]--> <!--[if lt IE 9]> <script src="/assets/dist/jquery/jquery-1.12.2.min.js"></script> <script src="/assets/js/ie8.js"></script> <![endif]--> <script src="/assets/dist/bootstrap/js/bootstrap.min.js"></script> <script src="/assets/dist/fastclick/fastclick.js"></script> <script src="/assets/js/base.js?v=1.3322"></script> <script> $('#emailInput').keydown(function (event) { if (event.keyCode == 13) { event.preventDefault(); return false; } }); $('#address').keydown(function (event) { if (event.keyCode == 13) { event.preventDefault(); codeAddress(document.getElementById('address').value); return false; } }); </script> <!-- Hotjar Tracking Code for www.londonair.org.uk --> <script> (function (h, o, t, j, a, r) { h.hj = h.hj || function () { (h.hj.q = h.hj.q || []).push(arguments) }; h._hjSettings = { hjid: 67365, hjsv: 5 }; a = o.getElementsByTagName('head')[0]; r = o.createElement('script'); r.async = 1; r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv; a.appendChild(r); })(window, document, '//static.hotjar.com/c/hotjar-', '.js?sv='); </script> <script src="/react/cookie-widget.js"></script> <script> CookieWidget.mount('cookie-consent'); </script> <script type="text/javascript"> //<![CDATA[ var Page_Validators = new Array(document.getElementById("ctl00_TopNavigation1_SearchBox1__rfvQ")); //]]> </script> <script type="text/javascript"> //<![CDATA[ var ctl00_TopNavigation1_SearchBox1__rfvQ = document.all ? document.all["ctl00_TopNavigation1_SearchBox1__rfvQ"] : document.getElementById("ctl00_TopNavigation1_SearchBox1__rfvQ"); ctl00_TopNavigation1_SearchBox1__rfvQ.controltovalidate = "ctl00_TopNavigation1_SearchBox1_q"; ctl00_TopNavigation1_SearchBox1__rfvQ.focusOnError = "t"; ctl00_TopNavigation1_SearchBox1__rfvQ.validationGroup = "Search"; ctl00_TopNavigation1_SearchBox1__rfvQ.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid"; ctl00_TopNavigation1_SearchBox1__rfvQ.initialvalue = ""; //]]> </script> <script type="text/javascript"> //<![CDATA[ var Page_ValidationActive = false; if (typeof(ValidatorOnLoad) == "function") { ValidatorOnLoad(); } function ValidatorOnSubmit() { if (Page_ValidationActive) { return ValidatorCommonOnSubmit(); } else { return true; } } //]]> </script> </form> </body> </html>