function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: {lat: 42.33196, lng: -71.020173}
});
setMarkers(map);
}
var events = [
['Faneuil Hall, Boston MA', 4, 42.33095, -71.10963, 'January 1, 2016 03:30:00', 3],
['Boston Common, Boston MA', 5, 42.35500, -71.06556, 'February 20, 2016 02:23:00', 5],
['The Paul Revere House, Boston MA', 5, 42.3637351, -71.0558839, 'June 20, 2016 02:24:00', 4],
['Fenway Park, Boston MA', 3, 42.3466803, -71.0994065, 'March 8, 2016 01:20:00', 2],
['Beacon Hill, Boston MA', 2, 42.3583059, -71.0711146, 'April 19, 2016 02:20:00', 1]
];
events.sort(function (a, b) {
var date1, date2, priority1, priority2;
date1 = new Date(a[4]).getTime();
date2 = new Date(b[4]).getTime();
priority1 = a[1];
priority2 = b[1];
if (priority1 < priority2) {
return 1;
} else if (priority1 > priority2) {
return -1;
} else if (date1 < date2) {
return 1;
} else if (date1 > date2) {
return -1;
} else {
return 0;
}
});
function setMarkers(map) {
var image = {
url: 'https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png',
size: new google.maps.Size(20, 32),
origin: new google.maps.Point(0, 0),
anchor: new google.maps.Point(0, 32)
};
var shape = {
coords: [1, 1, 1, 20, 18, 20, 18, 1],
type: 'poly'
};
for (var i = 0; i < events.length; i++) {
events[i][5] = events.length - [i];
var beach = events[i];
var marker = new google.maps.Marker({
position: {lat: beach[2], lng: beach[3]},
map: map,
icon: image,
shape: shape,
title: beach[0],
zIndex: beach[5],
});
}
}
html, body {
height: 100%;
margin: 0;
padding: 0;
background-color: #C1F0C1;
}
#map {
height: 100%;
}
#pac-input {
margin: 5px;
padding: 10px;
}
<body>
<input id="pac-input" class="controls" type="text" placeholder="Search Box">
<div id="map"></div>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDVcdnzK1fFrT1TXnWt1EPVCQvC2vg_AZY&libraries=places&callback=initMap" async defer></script>
</body>