var data = {"count":10,"installations":[{"hp_type_name":"Vzduch-voda: kompakt","longitude":"19.4890407","latitude":"48.2491547","company_name":"Jan Kindernay","company_id":"53863151","locality":"Doln\u00e1 Strehov\u00e1","year":"2025","supplier":"GBC Solino"},{"hp_type_name":"Vzduch-voda: kompakt","longitude":"19.3061857","latitude":"48.2006296","company_name":"Jan Kindernay","company_id":"53863151","locality":"Doln\u00e9 Plachtince","year":"2025","supplier":"GBC Solino"},{"hp_type_name":"Vzduch-vzduch: split","longitude":"19.7614371","latitude":"49.0491285","company_name":"Jan Kindernay","company_id":"53863151","locality":"Liptovsk\u00fd Hr\u00e1dok","year":"2025","supplier":"GBC Solino"},{"hp_type_name":"Vzduch-voda: kompakt","longitude":"19.6192067","latitude":"49.0811487","company_name":"Jan Kindernay","company_id":"53863151","locality":"Liptovsk\u00fd Mikul\u00e1\u0161","year":"2025","supplier":"GBC Solino"},{"hp_type_name":"Vzduch-vzduch: split","longitude":"19.4540335","latitude":"48.2005363","company_name":"Jan Kindernay","company_id":"53863151","locality":"Ve\u013ek\u00e9 Zlievce","year":"2025","supplier":"GBC Solino"},{"hp_type_name":"Vzduch-voda: kompakt","longitude":"19.3509715","latitude":"48.2082111","company_name":"Jan Kindernay","company_id":"53863151","locality":"Ve\u013ek\u00fd Krt\u00ed\u0161","year":"2025","supplier":"GBC Solino"},{"hp_type_name":"Vzduch-voda: kompakt","longitude":"19.3509715","latitude":"48.2082111","company_name":"Jan Kindernay","company_id":"53863151","locality":"Ve\u013ek\u00fd Krt\u00ed\u0161","year":"2025","supplier":"GBC Solino"},{"hp_type_name":"Vzduch-voda: kompakt","longitude":"19.3509715","latitude":"48.2082111","company_name":"Jan Kindernay","company_id":"53863151","locality":"Ve\u013ek\u00fd Krt\u00ed\u0161","year":"2025","supplier":"GBC Solino"},{"hp_type_name":"Vzduch-voda: kompakt","longitude":"19.4737267","latitude":"49.0932223","company_name":"Jan Kindernay","company_id":"53863151","locality":"Vlachy","year":"2025","supplier":"GBC Solino"},{"hp_type_name":"Vzduch-vzduch: split","longitude":"19.3525262","latitude":"48.1255571","company_name":"Jan Kindernay","company_id":"53863151","locality":"\u017delovce","year":"2025","supplier":"GBC Solino"}]}; 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 '' + key + '' + counts[key] + ''; }).join(''); } function showAll() { setMapPosition(48.69096039092549, 19.632568359375, 7); } function setMapPosition(lat, lng, zoom) { if (lat != lastLatitude || lng != lastLongitude) map.setCenter(new google.maps.LatLng(lat, lng)); lastLatitude = lat; lastLongitude = lng; if (zoom != map.getZoom()) map.setZoom(zoom); } google.maps.event.addDomListener(window, 'load', initialize);