;

Někdo se dívá… i na vás

21. 11. 2011
Doba čtení: 8 minut

Sdílet

Autor: Fotolia.com
Jen s málokterým prvkem IT používaným ve státní správě nebo samosprávě se setkáváme častěji než s kamerovými systémy. A pokud budeme kopírovat zahraniční trendy, jejich počet i nadále logicky poroste.

Čím je totiž pro člověka zrak, tím je pro orgány zajišťující veřejnou bezpečnost i funkčnost městských infrastruktur kamera. Navíc jsou kamery častým prvkem ve volebních programech stran kandidujících do samospráv a hrají občanům na strunu zvýšení bezpečnosti.

Městské kamerové systémy tak mají počátky ve snaze vyhovět „veřejné zakázce“ (tentokrát od občanů) a zvýšit veřejnou bezpečnost. Proto městské kamerové systémy, jejichž vznik iniciuje město/ /obec, se z počátku zaměřovaly pouze na tuto problematiku a jejich integrace nebo využití v rámci krizového řízení bylo až na výjimky opomíjeno. Po řadě katastrofických záplav a úniků látek z výrobních podniků se plánování nasazení těchto systémů změnilo.

Ukázkou nasazení kamerového systému na předem vytipované lokality primárně z důvodů bezpečnosti je Český Krumlov. Přítomnost kamer má odradit pachatele od porušování zákona a poskytnout možnost včasného zachycení narušení veřejného pořádku a pořízení důkazního materiálu, na druhé straně umožnit častější přítomnost hlídek městské policie na nemonitorovaných místech i lepší kontrolu činnosti strážníků. Systém je zde budován od roku 2006, kdy v první etapě vzniklo dohledové stanoviště na služebně městské policie, přenosové stanoviště na věži kostela a tři kamerové body, ve druhé etapě v roce 2007 byly vybudovány další tři kamerové body. Tím se podařilo zajistit dohled na všech vstupech do historického centra města a nad značnou částí sídliště Mír. V roce 2007 byl systém propojen také na Policii ČR, kde bylo vybudováno druhé dohledové stanoviště, což umožnilo i policistům aktivně používat podle potřeby jednotlivé kamery a vstupovat přímo do archivu záznamů.

Typickým příkladem stálého rozšiřování kamerového systému je z aktuálních počinů Praha 1, která chce rozšířit současné pokrytí o dalších devět kamerových bodů. V tomto případě jsou investice hrazeny z bezpečnostního fondu této městské části – jde přibližně o osm milionů Kč. Kamery jsou součástí městského kamerového systému, který je pod správou magistrátu. Od roku 2006 se k financování MKS využívají fondy EU – například v rámci programu Městský kamerový systém hlavního města Prahy podle JPD 2, kdy město uzavřelo s MČ partnerství. Samotný systém je pak pod správou magistrátu, MČ přispívají a mohou zasahovat i do jeho struktury, a reagovat tak na své potřeby. Hustá síť kamer umožňuje pak ve větších městech jejich využití nejenom správními orgány, ale nabídnou jejich obraz i veřejnosti. To dalo na portále hlavního města vzniknout stránkám, kde je pro občany dostupný obraz z dopravních a turistických kamer Technické správy komunikací. Obyvatelé tak mají k dispozici aktuální obraz dopravní situace.

Typickou ukázkou staré koncepce je Brno. MKDS je v Brně již deset let, ale dosud nebyl pod centrální správou. Signál z řady kamer totiž sledovali pouze na místních služebnách. Až v tomto roce došlo k rozhodnutí systém sjednotit pod dohledové centrum v budově Brněnských komunikací – investice okolo šesti milionů korun. Operátorem bude samozřejmě městská policie. Centrální přístup přinese i jednu výhodu z hlediska lidských zdrojů. Městská policie zajistí pouze operátory, technickou stránku převezmou Brněnské komunikace. Až dosud se strážníci museli starat i o techniku, kdy městská policie spravuje systém převzatý od Policie ČR a dopravního podniku. Nutnost rozšiřování si však na takové rozloze žádá sjednocení, což umožňuje i lepší analýzu dat a pokrytí rizikových částí. I nadále však zde zůstává roztříštěnost z hlediska koncepce umísťování kamer. Starostové některých částí předpokládají, že tuto starost převezme město, jiné části hodlají pokrytí kamerami řešit i nadále sami a ty potom poskytnou městské policii.

I na těchto příkladech je vidět, že MKDS čeká období dalšího růstu, přičemž trend je jasný. Zapojit kamery do integrovaného systému i v rámci krizového managementu s využitím GIS systémů a umožnění přístupu jednotlivým složkám IZS, kdy vizuální informace jsou adekvátně schopni využít jak hasiči (velikost požáru), tak záchranná služba (např. rozsah autonehod). Při využití vhodné techniky tak může systém nejenom nabídnout hodnotu teplot snímaných objektů, ale v rámci jednotného systému monitorovat i únik nebezpečných látek, apod.

Problémem je samozřejmě financování těchto řešení, a to především v případě menších měst. Z rozhovorů s řediteli městských policií nebo jejich pracovníky zodpovědnými za kamerové systémy vyplývá vcelku jasný závěr, kdy problémem nedostatečných financí je v podstatě neschopnost využít dotace. Ať již na úrovni krajů nebo z fondů EU. U prvních jde i o míru lobbingu, kdy menší města nemohou uplatnit svoji „váhu“. Typickým zabijákem čerpání z EU je výrok, že obec nemá prostředky na zpracování potřebné dokumentace. Přitom řada dotačních položek počítá i s částkou vynaloženou právě na přípravnou fázi. Žábou na prameni tak často bývá ekonomický odbor, který se tím nechce zatěžovat. Naopak úspěšná čerpání typicky vykazují města, jež si pro čerpání z fondů vytvořila vlastní personální zdroje nebo spolupracují se specializovanými firmami.


Dohledový systém za evropské peníze

V Jablonci nad Nisou s využitím dotačního Regionálního operačního programu vzniklo nové sídlo městské policie, oddělení krizového řízení, prostory pro krizové centrum zahrnující řídicí pracoviště varovného informačního systému obyvatelstva, krizového štábu, povodňové komise, ale také potřebné nouzové ubytování pro osmnáct evakuovaných osob a kontaktní místo pro konzultace postižených obyvatel s psychologem.

V březnu roku 2009 schválil výbor regionální rady Regionu soudržnosti Severovýchod přidělení dotace na projekt Regenerace bývalé požární zbrojnice a modernizace kamerového a dohlížecího systému.

Bývalá požární zbrojnice byla rekonstruována jako tzv. brownfield v centru města. Projekt zahrnul také modernizaci a rozšíření městského kamerového a dohlížecího systému. Dosavadní kamerové body byly rozšířené z osmi na současných dvacet šest, které mapují takřka celé katastrální území města. Nový kamerový systém je digitální s moderním záznamovým zařízením, což umožňuje lepší, rychlejší a efektivnější spolupráci mezi složkami integrovaného záchranného systému (IZS) a krizovým řízením i tím, že do něj mohou vstupovat operační jednotky policie, hasičů a záchranné služby.

Rekonstruovanou budovu obývá i Oddělení krizového řízení Městského úřadu v Jablonci nad Nisou. S novými prostorami získalo moderní zázemí. Až do otevření nového centra ztráceli v původních prostorách jeho pracovníci až 40 minut v přípravě pracovišť od nahlášení krizové situace do počátku zahájení akce s plným vybavením. Modernizací spojenou s právě skončeným projektem přestavby se razantně rozšířil také systém VISO (Rozhlasový varovný informační systém obyvatel).

Novinkou v rámci rozšíření varovného a informačního systému jsou informační panely. Těch se ve městě objeví šest, a to na vjezdech do města od Liberce, od Prahy, Železného Brodu a Tanvaldu. Realizaci projektu provedla společnost Telmo.

Základní informace o projektu

Dotační program: Regionální operační program NUTS II Severovýchod (ROP SV)
Termín realizace stavby: 6. 11. 2009 – 15. 2. 2011
Celkové náklady projektu: 80 706 033,89 Kč
Celková dotace: 70 206 649,97 Kč
Prostředky ERDF: 57 162 867,54 Kč
Prostředky ze státní ho rozpočtu ČR: 5 043 782,43 Kč
Dotace Libereckého kraje: 8 000 000,00?Kč

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }
OSZAR »