';
}
html += '';
html += '
';
$(".itemList").each(function(){
var itemContainer = $(this);
if (oficina.subholdingCategoryId == itemContainer.attr("data-category-id")){
itemContainer.append(html);
$("#itemListContainer-" + itemContainer.attr("data-category-id")).show();
return false;
}
});
}
}
var clusterStyles = [
{
url: '/documents/20125/0/Pica-agrupada.svg',
width: 25,
height: 55,
textColor: 'white',
anchor: [12, 140]
}
];
var mcOptions = {
gridSize: 25,
minimumClusterSize: 2,
zoomOnClick: true,
averageCenter: true,
styles: clusterStyles
};
//carga mapa
var markers = [];
var map = {
Map: {},
bound: {},
infoWindow: {},
mapContainer: $('#map'),
displayOption: 'map',
counterItems: $('.js_counter-items span'),
container: $('.js_map-list-container'),
listContainer: $('#list .js_list-display'),
loadScript: function () {
// Initialize Map
window.init = function () {
if ($.isEmptyObject(map.Map)) { //ie9 fix call twice
var options = {
mapTypeControl: true,
center: { lat: 25.06785129910414, lng: 5.7574337829200528 },
zoom: 2.19,
mapTypeControlOptions: {
position: google.maps.ControlPosition.TOP_RIGHT
},
panControl: false,
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL,
position: google.maps.ControlPosition.TOP_LEFT
},
scaleControl: true,
streetViewControl: true,
streetViewControlOptions: {
position: google.maps.ControlPosition.TOP_LEFT
},
};
map.Map = new google.maps.Map(document.getElementById('g-map'), options);
map.infoWindow = new google.maps.InfoWindow({
maxWidth: 200
});
// responsive map
const mediaQueryMb = '(max-width: 700px)';
const mediaQueryListMB = window.matchMedia(mediaQueryMb);
const mediaQueryTable = '(min-width: 701px) and (max-width: 1023px)';
const mediaQueryListTable = window.matchMedia(mediaQueryTable);
function responsivo(mediaQueryListMB,mediaQueryListTable) {
if (mediaQueryListMB.matches) {
options["zoom"]=0.3;
map.Map = new google.maps.Map(document.getElementById('g-map'), options);
}
if (mediaQueryListTable.matches) {
options["zoom"]=1.5;
map.Map = new google.maps.Map(document.getElementById('g-map'), options);
}
}
responsivo(mediaQueryListMB,mediaQueryListTable);
mediaQueryListMB.addListener(responsivo);
map.getJson();
}
};
// Asynchronous Loading
$.getScript('https://maps.googleapis.com/maps/api/js?key=AIzaSyAUg196COuaLOostGcTaVZXX60g8QJ4qTg&v=3&sensor=false&callback=init');
},
getJson: function() {
page = 0;
items = [];
var categoryIds = [];
var tipoOficinaId = $('#tipoOficina').val();
if (tipoOficinaId > 0) {
categoryIds.push(tipoOficinaId);
}
Liferay.Service(
'/wcorp_o_search.search/get-oficinas',
{
'companyId': 20102,
'groupId': 20125,
'structureKey': '468917',
'categoryIds': categoryIds,
'locale': 'pt_BR',
'subholdingVocabularyId': 280907,
'tipoOficinaVocabularyId': 280904,
'start': -1,
'end': -1
},
function(oficinas) {
for (i = 0; i < oficinas.length; i++) {
items.push(oficinas[i]);
}
printOficinas();
map.renderMarks();
},
function(obj) {
console.log('Exception: ' + obj);
});
busy = false;
},
renderMarks: function () {
if (typeof markerClusterer != "undefined") {
markerClusterer.clearMarkers();
}
if (typeof markers != "undefined") {
markers.splice(0, markers.length);
}
map.bound = new google.maps.LatLngBounds();
var officesMap = [];
$.each(items, function (i) {
if (items[i].geolocation) {
officesMap.push(items[i]);
var splittedGeolocation = items[i].geolocation.split(",");
var lat = parseFloat(splittedGeolocation[0]);
var lng = parseFloat(splittedGeolocation[1]);
var LatLng = new google.maps.LatLng(lat, lng);
var markerAlreadyExists = false;
do {
markerAlreadyExists = false;
// check if this position has already had a marker
for(var x = 0; x < markers.length; x++) {
if (markers[x].getPosition().equals(LatLng)) {
markerAlreadyExists = true;
break;
}
}
if (markerAlreadyExists){
lat = parseFloat(lat + getExistingMarkerRandom(0.00002));
lng = parseFloat(lng + getExistingMarkerRandom(0.00002));
LatLng = new google.maps.LatLng(lat, lng);
}
} while(markerAlreadyExists);
var marker = new google.maps.Marker({
position: LatLng,
map: map.Map,
icon: '/documents/20125/0/pica.svg',
title: items[i].titulo
});
markers.push(marker);
map.bound.extend(marker.getPosition());
// infowindow
var contentInfo = '
' +
'
' + items[i].titulo +'
' +
'
' + items[i].direccion + '
' +
'
Ver mais
' +
'
';
// infowindow
google.maps.event.addListener(map.Map, 'click', function () {
map.infoWindow.close();
resetCurrentMarker();
});
google.maps.event.addListener(marker, 'click', function () {
resetCurrentMarker();
map.infoWindow.close();
map.infoWindow.setContent(contentInfo);
map.infoWindow.open(map.Map, marker);
marker.setIcon('/documents/20125/0/pica-activa.svg');
currentMarker = marker;
});
google.maps.event.addListener(map.infoWindow,'closeclick',function(){
resetCurrentMarker();
});
}
});
map.counterItems.html(officesMap.length);
markerClusterer = new MarkerClusterer(map.Map, markers, mcOptions);
}
};
map.loadScript();
});
function scrollToTarjeta(targetElementId) {
$('html, body').animate({
scrollTop: $("#" + targetElementId).offset().top - 125
}, 750);
}