//////////////////////////////////////////////////////////////////////////////////////// // Events // //////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////// // Constants // //////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////// // Variables // //////////////////////////////////////////////////////////////////////////////////////// var gmwdmapDataOptions = []; //////////////////////////////////////////////////////////////////////////////////////// // Constructor & Destructor // //////////////////////////////////////////////////////////////////////////////////////// function gmwdInitMainMap(el, excludeOverlays, key){ gmwdmapData["main_map" + key] = new google.maps.Map(document.getElementById(el), { center: {lat: gmwdmapData["centerLat" + key], lng: gmwdmapData["centerLng" + key]}, zoom: gmwdmapData["zoom" + key], maxZoom: gmwdmapData["maxZoom" + key], minZoom: gmwdmapData["minZoom" + key], scrollwheel: gmwdmapData["mapWhellScrolling" + key], draggable: gmwdmapData["mapDragable" + key], disableDoubleClickZoom: gmwdmapData["mapDbClickZoom" + key], zoomControl: gmwdmapData["enableZoomControl" + key], mapTypeControl: gmwdmapData["enableMapTypeControl" + key], scaleControl: gmwdmapData["enableScaleControl" + key], streetViewControl: gmwdmapData["enableStreetViewControl" + key], fullscreenControl: gmwdmapData["enableFullscreenControl" + key], rotateControl: gmwdmapData["enableRotateControl" + key], zoomControlOptions:{ position: gmwdmapData["zoomControlPosition" + key] }, mapTypeControlOptions:{ position: gmwdmapData["mapTypeControlPosition" + key], style: gmwdmapData["mapTypeControlStyle" + key] }, fullscreenControlOptions:{ position: gmwdmapData["fullscreenControlPosition" + key] }, streetViewControlOptions:{ position: gmwdmapData["streetViewControlPosition" + key] }, }); gmwdmapData["main_map" + key].setTilt(45); gmwdSetMapTypeId(key); //themes jQuery("#wd-map" + key).css("border-radius", gmwdmapData["mapBorderRadius" + key] + "px"); //layers gmwdSetLayers("bike", key); gmwdSetLayers("traffic", key); gmwdSetLayers("transit", key); if(excludeOverlays == false){ // overlays gmwdSetMapMarkers(key); gmwdSetMapPolygons(key); gmwdSetMapPolylines(key); } jQuery(document).on("click",".gm-fullscreen-control",function(){ setTimeout(function(){ gmwdmapData["main_map" + key].setCenter({lat: Number(gmwdmapData["centerLat" + key]), lng: Number(gmwdmapData["centerLng" + key])}); gmwdmapData["main_map" + key].setZoom(gmwdmapData["zoom" + key]); }, 300); }); } function gmwdSetMapMarkers(_key){ var mapMarker; if(Object.keys(gmwdmapData["mapMarkers" + _key]).length > 0){ for(var key in gmwdmapData["mapMarkers" + _key]){ mapMarker = gmwdmapData["mapMarkers" + _key][key]; var marker = new google.maps.Marker({ map: gmwdmapData["main_map" + _key], position: {lat: Number(mapMarker.lat), lng: Number(mapMarker.lng)} }); gmwdmapData["allMarkers" + _key].push(marker); var infoWindow; if(mapMarker.enable_info_window == 1){ contentString = ''; if(gmwdmapData["infoWindowInfo" + _key].indexOf("title") != -1){ contentString += '
' + mapMarker.title + '
'; } if(gmwdmapData["infoWindowInfo" + _key].indexOf("address") != -1){ contentString += '
' + mapMarker.address + '
'; } infoWindow = new google.maps.InfoWindow({ content: contentString, disableAutoPan: false }); if(mapMarker.info_window_open == 1){ infoWindow.open(gmwdmapData["main_map" + _key], marker); } gmwdmapData["infoWindows" + _key].push(infoWindow); } if(mapMarker.title){ marker.setTitle(mapMarker.title); } if(mapMarker.animation == "BOUNCE"){ marker.setAnimation(google.maps.Animation.BOUNCE) } else if(mapMarker.animation == "DROP"){ marker.setAnimation(google.maps.Animation.DROP) } else{ marker.setAnimation(null); } //events (function(overlay, row, overlayWindow, map, openEvent, overlayWindows) { google.maps.event.addListener(overlay, 'click', function() { if(row.link_url){ window.open(row.link_url); } if(openEvent == "click"){ if(overlayWindow && row.enable_info_window == 1){ for(var j=0; j < overlayWindows.length; j++){ overlayWindows[j].open(null, null); } overlayWindow.open(map, overlay); } } }); google.maps.event.addListener(overlay, 'mouseover', function() { if(openEvent == "hover"){ if(overlayWindow && row.enable_info_window == 1){ for(var j=0; j < overlayWindows.length; j++){ overlayWindows[j].open(null, null); } overlayWindow.open(map, overlay); } } }); }(marker, mapMarker, infoWindow, gmwdmapData["main_map" + _key], gmwdmapData["infoWindowOpenOn" + _key], gmwdmapData["infoWindows" + _key])); } } } function gmwdSetMapPolygons(_key){ var mapPolygon, polygon; var polygonsByAreas = {}; var polygonsAreas = []; if(Object.keys(gmwdmapData["mapPolygons" + _key]).length > 0){ for(var key in gmwdmapData["mapPolygons" + _key]){ var polygonCoord = []; mapPolygon = gmwdmapData["mapPolygons" + _key][key]; polygonData = mapPolygon.data.substr(1, mapPolygon.data.length-4).split("),("); for(var j=0; j 0){ for(var key in gmwdmapData["mapPolylines" + _key]){ var polylineCoord = []; mapPolyline = gmwdmapData["mapPolylines" + _key][key]; polylineData = mapPolyline.data.substr(1, mapPolyline.data.length-4).split("),("); for(var j=0; j