Skip to content
This repository has been archived by the owner on Oct 7, 2021. It is now read-only.

Commit

Permalink
Added refresh button on the maps. Fixed bugs regarding notfound/blank…
Browse files Browse the repository at this point in the history
… addresses.
  • Loading branch information
DynamicsNinja committed Feb 15, 2018
1 parent 46fd9c3 commit 0448d48
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 16 deletions.
4 changes: 4 additions & 0 deletions CrmGoogleMaps/img/refresh.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
73 changes: 57 additions & 16 deletions CrmGoogleMaps/js/googleMaps.js
Original file line number Diff line number Diff line change
@@ -1,25 +1,62 @@
var lat = [];
var lng = [];
var useGoogleAddress = false;
var useGoogleAddress = false;
var markerIcon = "";
var defaultZoom = null;
var map;
var addressProcessedCounter = 0;
var addresses = [];
var defaultZoom = null;
var addressProcessedCounter = 0;
var lat = [];
var lng = [];
var markers = [];

function RefreshButton(topLeftDiv) {
var imageUI = document.createElement('img');
imageUI.style.height = '20px';
imageUI.style.width = '20px';
imageUI.src = '../img/refresh.svg';
imageUI.style.backgroundColor = '#fff';
imageUI.style.border = '2px solid #fff';
imageUI.style.borderRadius = '3px';
imageUI.style.boxShadow = '0 2px 6px rgba(0,0,0,.3)';
imageUI.style.cursor = 'pointer';
topLeftDiv.appendChild(imageUI);

topLeftDiv.addEventListener('click', function () {
initialize();
});
}

function initialize() {
var p = GetParameters();
var map_canvas = document.getElementById('map_canvas');
var map_options = {
mapTypeId: google.maps.MapTypeId.ROADMAP
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false
}
map = new google.maps.Map(map_canvas, map_options);
map = map || new google.maps.Map(map_canvas, map_options);

var topLeftControl = document.createElement('div');
topLeftControl.style.margin = '10px 14px';
var centerControl = new RefreshButton(topLeftControl);

topLeftControl.index = 1;
if (map.controls[google.maps.ControlPosition.TOP_LEFT].length == 0) {
map.controls[google.maps.ControlPosition.TOP_LEFT].push(topLeftControl);
}

for (var i = 0; i < markers.length; i++) {
markers[i].setMap(null);
}
addressProcessedCounter = 0;
lat = [];
lng = [];
markers = [];
addresses = p.address.split(',');
if (p.zoom != undefined) { defaultZoom = parseInt(p.zoom); }
$.each(addresses, function (index, value) {
var addressString = generateAddressString(value);
setMarker(addressString);
setMarker(addressString)
});

}

function generateAddressString(field) {
Expand All @@ -41,7 +78,7 @@ function generateAddressString(field) {
function setCenterAndZoom() {
map.setCenter(new google.maps.LatLng(
((Math.max.apply(Math, lat) + Math.min.apply(Math, lat)) / 2.0), ((Math.max.apply(Math, lng) + Math.min.apply(Math, lng)) / 2.0)));
if (addresses.length == 1) {
if (markers.length == 1) {
map.setZoom(defaultZoom);
} else {
map.fitBounds(new google.maps.LatLngBounds(
Expand All @@ -59,21 +96,18 @@ function setMarker(address) {
},

function (results, status) {
addressProcessedCounter++;
if (status == google.maps.GeocoderStatus.OK) {
$("#map_canvas").show();
addressProcessedCounter++;
lat.push(results[0].geometry.location.lat());
lng.push(results[0].geometry.location.lng());

if (addressProcessedCounter == addresses.length) {
setCenterAndZoom(map);
}
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
title: useGoogleAddress ? results[0].formatted_address : address,
icon: markerIcon
});
markers.push(marker);
google.maps.event.addListener(marker,
'click',
function () {
Expand All @@ -84,9 +118,16 @@ function setMarker(address) {
infowindow.open(map);
});
} else if (status == google.maps.GeocoderStatus.ZERO_RESULTS) {
$("#no_results").show();
} else {
alert("Geocode was not successful for the following reason: " + status);
console.log("Geocode was not successful for the following reason: " + status);
}
if (addressProcessedCounter == addresses.length) {
if (markers.length != 0) {
$("#map_canvas").show();
setCenterAndZoom(map);
} else {
$("#no_results").show();
}
}
});
}
Expand Down

0 comments on commit 0448d48

Please sign in to comment.