From fb0bfb946026588350be2c62583d76e9cffe14a7 Mon Sep 17 00:00:00 2001 From: TheLeo Date: Wed, 4 Sep 2024 14:31:19 +0000 Subject: [PATCH] Upload files to "/" Freshdesk Ticket # 18651 --- map.js | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 map.js diff --git a/map.js b/map.js new file mode 100644 index 0000000..ac15272 --- /dev/null +++ b/map.js @@ -0,0 +1,119 @@ +// Global variables +var map, gmarkers = [], blue = 0, cyan = 0, purple = 0, green = 0, orange = 0, yellow = 0, red = 0, black = 0; +var catList = document.getElementsByClassName('chk').value; + +// The initial function to create and display the map on the page +function initMap() { + var bounds = new google.maps.LatLngBounds(); + map = new google.maps.Map(document.getElementById('map_canvas'), { + streetViewControl: false, + mapTypeControl: false, + scaleControl: false, + disableDefaultUI: true + }); + + for (var i = 0; i < markers.length; i++) { + addMarker(markers[i]); + bounds.extend({ lat: parseFloat(markers[i].Lat), lng: parseFloat(markers[i].Long) }); + } + + // Builds legend HTML with marker count included + document.getElementById("blue").innerHTML = "JV Installers JV Installers (" + blue + ")"; + document.getElementById("cyan").innerHTML = "JV Service JV Service (" + cyan + ")"; + document.getElementById("purple").innerHTML = "JV Drivers JV Drivers (" + purple + ")"; + document.getElementById("green").innerHTML = "3rd Party 3rd Party (" + green + ")"; + document.getElementById("orange").innerHTML = "Freight Only Freight Only (" + orange + ")"; + document.getElementById("yellow").innerHTML = "Unassigned Unassigned (" + yellow + ")"; + document.getElementById("red").innerHTML = "Not Scheduled Not Scheduled (" + red + ")"; + document.getElementById("black").innerHTML = "Bringbacks Bringbacks (" + black + ")"; + + // Sets the map zoom and center based on the markers created + map.setCenter(bounds.getCenter()); + map.fitBounds(bounds); + map.setZoom(map.getZoom() - 1); + + // Calls the initial filter check on initialization + getChecked(); +} + +//Creates the marker object and sets the associated variables +function addMarker(marker) { + var pos = new google.maps.LatLng(parseFloat(marker.Lat), parseFloat(marker.Long)); + var name = marker.Customer; + var category = marker.Marker; + var icon = marker.Marker + ".png"; + var mark = new google.maps.Marker({ + position: pos, + title: name, + category: category, + icon: icon, + visible: true + }); + + // Getting count of each type of marker for the legend + switch (category) { + case "blue": + blue++; break; + case "cyan": + cyan++; break; + case "purple": + purple++; break; + case "green": + green++; break; + case "orange": + orange++; break; + case "yellow": + yellow++; break; + case "red": + red++; break; + default: + black++; + } + + // Creating info window for the on-click display + var infoWin = new google.maps.InfoWindow({ + content: + "" + name + "
" + + "Customer Order: " + marker.CO + "
" + + "Address: " + marker.Address + "
" + + "Phone: " + marker.Phone + "
" + + "Vendor: " + marker.Vendor + "
" + + "PO: " + marker.PO + "
" + + "CO Due Date: " + marker["CO Due Date"] + "
" + + "Install Date: " + marker["Install Date"] + "
" + + "Type: " + marker.Type + "
" + }); + + mark.addListener("click", () => { + infoWin.open({ + anchor: mark, + map + }); + }); + + gmarkers.push(mark); +} + +// Gets list of all boxes checked on page +var getChecked = function () { + var checkedPlace = [] + var allFilterElem = document.getElementsByName('filter'); + for (var i = 0; i < allFilterElem.length; i++) { + if (allFilterElem[i].checked == true) { + checkedPlace.push(allFilterElem[i].value) + } + } + filterCheck(checkedPlace); +} + +// Iterates through marker array to check if the marker category matches with the box checked. Disassociates it from the map if the checkbox is not set. +var filterCheck = function (cat) { + for (var i = 0; i < gmarkers.length; i++) { + if (cat.includes(gmarkers[i].category)) { + gmarkers[i].setMap(map); + } + else { + gmarkers[i].setMap(null); + } + } +} \ No newline at end of file