( function ( $, document, window, google, rwmb, i18n ) { 'use strict'; // Use function construction to store map & DOM elements separately for each instance var MapField = function ( $container ) { this.$container = $container; }; // Geocoder service. var geocoder = new google.maps.Geocoder(); // Autocomplete Service. var autocomplete = new google.maps.places.AutocompleteService(); // Use prototype for better performance MapField.prototype = { // Initialize everything init: function () { this.initDomElements(); this.initMapElements(); this.initMarkerPosition(); this.addListeners(); this.autocomplete(); }, // Initialize DOM elements initDomElements: function () { this.$canvas = this.$container.find( '.rwmb-map-canvas' ); this.canvas = this.$canvas[0]; this.$coordinate = this.$container.find( '.rwmb-map' ); this.addressField = this.$container.data( 'address-field' ); }, // Initialize map elements initMapElements: function () { var defaultLoc = this.$canvas.data( 'default-loc' ), latLng; defaultLoc = defaultLoc ? defaultLoc.split( ',' ) : [53.346881, - 6.258860]; latLng = new google.maps.LatLng( defaultLoc[0], defaultLoc[1] ); // Initial position for map this.map = new google.maps.Map( this.canvas, { center: latLng, zoom: 14, streetViewControl: 0, mapTypeId: google.maps.MapTypeId.ROADMAP } ); this.marker = new google.maps.Marker( {position: latLng, map: this.map, draggable: true} ); }, // Initialize marker position initMarkerPosition: function () { var coordinate = this.$coordinate.val(), location, zoom; if ( coordinate ) { location = coordinate.split( ',' ); this.marker.setPosition( new google.maps.LatLng( location[0], location[1] ) ); zoom = location.length > 2 ? parseInt( location[2], 10 ) : 14; this.map.setCenter( this.marker.position ); this.map.setZoom( zoom ); } else if ( this.addressField ) { this.geocodeAddress( false ); } }, // Add event listeners for 'click' & 'drag' addListeners: function () { var that = this; /* * Auto change the map when there's change in address fields. * Works only for multiple address fields as single address field has autocomplete functionality. */ if ( this.addressField.split( ',' ).length > 1 ) { var geocodeAddress = that.geocodeAddress.bind( that ); var addressFields = this.addressField.split( ',' ).forEach( function( part ) { var $field = that.findAddressField( part ); if ( null !== $field ) { $field.on( 'change', geocodeAddress ); } } ); } google.maps.event.addListener( this.map, 'click', function ( event ) { that.marker.setPosition( event.latLng ); that.updateCoordinate( event.latLng ); } ); google.maps.event.addListener( this.map, 'zoom_changed', function ( event ) { that.updateCoordinate( that.marker.getPosition() ); } ); google.maps.event.addListener( this.marker, 'drag', function ( event ) { that.updateCoordinate( event.latLng ); } ); /** * Custom event to refresh maps when in hidden divs. * @see https://developers.google.com/maps/documentation/javascript/reference ('resize' Event) */ var refresh = that.refresh.bind( this ); $( window ).on( 'rwmb_map_refresh', refresh ); // Refresh on meta box hide and show rwmb.$document.on( 'postbox-toggled', refresh ); // Refresh on sorting meta boxes $( '.meta-box-sortables' ).on( 'sortstop', refresh ); }, refresh: function () { if ( ! this.map ) { return; } var zoom = this.map.getZoom(), center = this.map.getCenter(); google.maps.event.trigger( this.map, 'resize' ); this.map.setZoom( zoom ); this.map.panTo( center ); }, // Autocomplete address autocomplete: function () { var that = this, $address = this.getAddressField(); if ( null === $address ) { return; } // If Meta Box Geo Location installed. Do not run autocomplete. if ( $( '.rwmb-geo-binding' ).length ) { var geocodeAddress = that.geocodeAddress.bind( that ); $address.on( 'selected_address', geocodeAddress ); return false; } $address.autocomplete( { source: function ( request, response ) { // if add region only search in that region var options = { 'input': request.term, 'componentRestrictions': { country: that.$canvas.data( 'region' ) } }; // Change Geocode to getPlacePredictions . autocomplete.getPlacePredictions( options, function ( results ) { if ( results == null || ! results.length ) { response( [ { value: '', label: i18n.no_results_string } ] ); return; } response( results.map( function ( item ) { return { label: item.description, value: item.description, placeid: item.place_id, }; } ) ); } ); }, select: function ( event, ui ) { geocoder.geocode( { 'placeId': ui.item.placeid }, function( responses, status ) { if ( status == 'OK' ) { var latLng = new google.maps.LatLng( responses[0].geometry.location.lat(), responses[0].geometry.location.lng() ); that.map.setCenter( latLng ); that.marker.setPosition( latLng ); that.updateCoordinate( latLng ); } } ); } } ); }, // Update coordinate to input field updateCoordinate: function ( latLng ) { var zoom = this.map.getZoom(); this.$coordinate.val( latLng.lat() + ',' + latLng.lng() + ',' + zoom ).trigger( 'change' ); }, // Find coordinates by address geocodeAddress: function ( notify ) { var address = this.getAddress(), that = this; if ( ! address ) { return; } if ( false !== notify ) { notify = true; } geocoder.geocode( {'address': address}, function ( results, status ) { if ( status !== google.maps.GeocoderStatus.OK ) { if ( notify ) { alert( i18n.no_results_string ); } return; } that.map.setCenter( results[0].geometry.location ); that.marker.setPosition( results[0].geometry.location ); that.updateCoordinate( results[0].geometry.location ); } ); }, // Get the address field. getAddressField: function() { // No address field or more than 1 address fields, ignore if ( ! this.addressField || this.addressField.split( ',' ).length > 1 ) { return null; } return this.findAddressField( this.addressField ); }, // Get the address value for geocoding. getAddress: function() { var that = this; return this.addressField.split( ',' ) .map( function( part ) { part = that.findAddressField( part ); return null === part ? '' : part.val(); } ) .join( ',' ).replace( /\n/g, ',' ).replace( /,,/g, ',' ); }, // Find address field based on its name attribute. Auto search inside groups when needed. findAddressField: function( fieldName ) { // Not in a group. var $address = $( 'input[name="' + fieldName + '"]'); if ( $address.length ) { return $address; } // If map and address is inside a cloneable group. $address = this.$container.closest( '.rwmb-group-clone' ).find( 'input[name*="[' + fieldName + ']"]' ); if ( $address.length ) { return $address; } // If map and address is inside a non-cloneable group. $address = this.$container.closest( '.rwmb-group-wrapper' ).find( 'input[name*="[' + fieldName + ']"]' ); if ( $address.length ) { return $address; } return null; } }; function createController() { var $this = $( this ), controller = $this.data( 'mapController' ); if ( controller ) { return; } controller = new MapField( $this ); controller.init(); $this.data( 'mapController', controller ); } function init( e ) { $( e.target ).find( '.rwmb-map-field' ).each( createController ); } function restart() { $( '.rwmb-map-field' ).each( createController ); } rwmb.$document .on( 'mb_ready', init ) .on( 'clone', '.rwmb-input', restart ); } )( jQuery, document, window, google, rwmb, RWMB_Map ); Peter Poláček - Slobodný človek Skip to content
Menu

Ing. Peter Poláček

Slobodný človek

Erb Bratislavy

O mne

Život ma naučil krízu vnímať ako príležitosť. Za prejavmi – symptómami krízy vždy hľadám ich príčinu. Robím to tak, že okamžite po vzniku krízy si začnem klásť otázky a začnem na ne hľadať odpovede. Z odpovedí na prvé otázky vznikajú ďalšie otázky a z odpovedí na tieto otázky vznikajú riešenia. V živote som bol vystavený veľkému počtu takýchto príležitostí, často krát veľmi dramatických. Vďaka tomu som však túto metódu riešenia krízových situácií, doviedol k dokonalosti.

Je úplne prirodzené, že vyciciavanie finančných zdrojov mesta skupinou parazitických rodín som rozhodnutý uťať bezodkladne, nech sa deje čo sa deje.

Prioritou mojich riešení je napr. spravodlivejší systém dane z nehnuteľností, a to tak, aby bol zvýhodnený bežný poctivý človek.

Som pripravený chrániť zdroje pitnej vody pred kontamináciou skládok chemického odpadu vo Vrakuni a na Žabom majeri. Tiež som pripravený riešiť dlhodobú neudržateľnú bratislavskú dopravu nielen krátkodobými riešeniami, ale aj realizáciou projektu ľahkého visutého metra.

Do Bratislavy tak prinášam zmenu. Zmenu, ktorú bude nielen vidieť, ale aj cítiť. Zmenu, ktorú vykonám.

Množstvo správ, ktoré nás každodenne oblieha upozorňuje na skutočnosť, že prichádza čas krízových situácií. 

 
Reálne je extrémne špekulatívne zvyšovanie cien elektriky a plynu…, zvyšovanie cien potravín, možno prázdne obchody, zima, nedostatok palív, výpadok financovania obcí cez podielové dane, kto vie čo všetko ešte? 
 
Neviem vopred, do akých ťažkých situácií budeme postavení. Viem povedať len toľko, že som ich vo svojom živote prešiel veľa. 
 
Nebojím sa zodpovednosti a nevyhýbam sa jej. Ovládam postup nachádzania riešení v neriešiteľných situáciách. V prípade nepohody sa voči každej kríze postavím ako pokojný bojovník s nadhľadom a rozhľadom. 

Aktuálne

Máte nápady a podnety na riešenie situácie v Bratislave?

Napíšte mi a budem Vás kontaktovať!

0a87a8a4053b779fa44a25a4864431f07e38f387220182abab1aaa04a36c9aeb33191d321c8509d493b02ed2ce9d2aff3c7fedb5447fda074fd03d3f74366b70