var data = {"count":15,"installations":[{"hp_type_name":"Vzduch-voda: split","longitude":"20.1854134","latitude":"49.0753937","company_name":"VKH s.r.o.","company_id":"54328829","locality":"Batizovce","year":"2025","supplier":"Klimavex"},{"hp_type_name":"Vzduch-voda: split","longitude":"21.4153122","latitude":"48.7421193","company_name":"VKH s.r.o.","company_id":"54328829","locality":"\u010eur\u010fo\u0161\u00edk","year":"2025","supplier":"Klimavex"},{"hp_type_name":"Vzduch-voda: split","longitude":"21.4669534","latitude":"48.7934648","company_name":"VKH s.r.o.","company_id":"54328829","locality":"Her\u013eany","year":"2022","supplier":"Klimavex"},{"hp_type_name":"Vzduch-voda: split","longitude":"21.3331274","latitude":"49.0437129","company_name":"VKH s.r.o.","company_id":"54328829","locality":"Kapu\u0161any","year":"2025","supplier":"Klimavex"},{"hp_type_name":"Vzduch-voda: split","longitude":"21.7507445","latitude":"48.8870105","company_name":"VKH s.r.o.","company_id":"54328829","locality":"Kladzany","year":"2023","supplier":"Klimavex"},{"hp_type_name":"Vzduch-voda: split","longitude":"22.2525297","latitude":"48.9617247","company_name":"VKH s.r.o.","company_id":"54328829","locality":"Kolonica","year":"2022","supplier":"Klimavex"},{"hp_type_name":"Vzduch-voda: split","longitude":"21.4801985","latitude":"48.7628462","company_name":"VKH s.r.o.","company_id":"54328829","locality":"Ni\u017en\u00e1 Kamenica","year":"2025","supplier":"Elektroklima"},{"hp_type_name":"Vzduch-voda: tepl\u00e1, sanit\u00e1rna voda","longitude":"18.447663","latitude":"49.1131198","company_name":"VKH s.r.o.","company_id":"54328829","locality":"Pova\u017esk\u00e1 Bystrica","year":"2024","supplier":"Microwell"},{"hp_type_name":"Vzduch-voda: split","longitude":"18.447663","latitude":"49.1131198","company_name":"VKH s.r.o.","company_id":"54328829","locality":"Pova\u017esk\u00e1 Bystrica","year":"2024","supplier":"Microwell"},{"hp_type_name":"Vzduch-vzduch: split","longitude":"21.2393119","latitude":"49.0018324","company_name":"VKH s.r.o.","company_id":"54328829","locality":"Pre\u0161ov","year":"2023","supplier":"Microwell"},{"hp_type_name":"Vzduch-voda: split","longitude":"21.2763694","latitude":"49.02631","company_name":"VKH s.r.o.","company_id":"54328829","locality":"Pre\u0161ov","year":"2022","supplier":"Elektroklima"},{"hp_type_name":"Vzduch-voda: split","longitude":"21.3192148","latitude":"49.1462024","company_name":"VKH s.r.o.","company_id":"54328829","locality":"Raslavice","year":"2022","supplier":"Klimavex"},{"hp_type_name":"Vzduch-voda: split","longitude":"20.5323841","latitude":"48.6561405","company_name":"VKH s.r.o.","company_id":"54328829","locality":"Ro\u017e\u0148ava","year":"2022","supplier":"Elektroklima"},{"hp_type_name":"Vzduch-voda: kompakt","longitude":"21.7196681","latitude":"48.6292658","company_name":"VKH s.r.o.","company_id":"54328829","locality":"Trebi\u0161ov","year":"2024","supplier":"Klimavex"},{"hp_type_name":"Vzduch-voda: split","longitude":"21.0609128","latitude":"49.0902545","company_name":"VKH s.r.o.","company_id":"54328829","locality":"Uzovsk\u00fd \u0160algov","year":"2023","supplier":"Microwell"}]}; var filteredLocalities = {}; var map = undefined; var locality = '' var lastLatitude = 48.69096039092549; var lastLongitude = 19.632568359375; var lastZoom = 7 function initialize() { var center = new google.maps.LatLng(lastLatitude, lastLongitude); map = new google.maps.Map(document.getElementById('map'), { zoom: lastZoom, center: center, mapTypeId: google.maps.MapTypeId.ROADMAP }); var latlngbounds = new google.maps.LatLngBounds(); var markers = []; for (var i = 0; i < data.installations.length; i++) { var dataInstallation = data.installations[i]; var latLng = new google.maps.LatLng(dataInstallation.latitude, dataInstallation.longitude); var marker = new google.maps.Marker({ position: latLng }); markers.push(marker); latlngbounds.extend(latLng); } var options = { imagePath: 'images/markerclusterer/m' }; var markerCluster = new MarkerClusterer(map, markers, options); map.setCenter(latlngbounds.getCenter()); map.fitBounds(latlngbounds); google.maps.event.addListener(map, 'idle', function() { updateCompaniesList(map); }); } function updateCompaniesList(map) { var lat1 = map.getBounds().getNorthEast().lat(); var lng1 = map.getBounds().getNorthEast().lng(); var lat0 = map.getBounds().getSouthWest().lat(); var lng0 = map.getBounds().getSouthWest().lng(); var hpTypeCounts = {}; var localityCounts = {}; var supplierCounts = {}; var companyCounts = {}; var rows = []; filteredLocalities = {}; for (var i = 0; i < data['count']; i++) { var installation = data['installations'][i]; var lng = installation['longitude']; var lat = installation['latitude']; if (lng >= lng0 && lng <= lng1 && lat >= lat0 && lat <= lat1) { if (installation.hp_type_name) { var key = ''.replace("REPLACE", installation.hp_type_name) + installation.hp_type_name + ''; if (hpTypeCounts[key]) { hpTypeCounts[key]++; } else { hpTypeCounts[key] = 1; } } if (installation.locality) { var key = ''.replace("REPLACE", installation.locality) + installation.locality + ''; if (localityCounts[key]) { localityCounts[key]++; } else { localityCounts[key] = 1; } } if (installation.company_name) { var key = ''.replace("REPLACE", installation.company_id) + installation.company_name + ''; if (companyCounts[key]) { companyCounts[key]++; } else { companyCounts[key] = 1; } } if (installation.supplier) { var key = ''.replace("REPLACE", installation.supplier) + installation.supplier + ''; if (supplierCounts[key]) { supplierCounts[key]++; } else { supplierCounts[key] = 1; } } } } jQuery('#hp_type_counts').html( countDictionaryToTable(hpTypeCounts) ); jQuery('#locality_counts').html( countDictionaryToTable(localityCounts) ); jQuery('#company_counts').html( countDictionaryToTable(companyCounts) ); jQuery('#supplier_counts').html( countDictionaryToTable(supplierCounts) ); } function countDictionaryToTable(counts) { return Object.keys(counts).sort(function(a,b) { return counts[b] - counts[a]; }).map(function (key) { return '