var cnt = 0; // simulate different responses
$(document).ready(function() {
//Time between marker refreshes
var INTERVAL = 2000;
//Used to remember markers
var markerStore = {};
var infowindow = new google.maps.InfoWindow();
var myLatlng = new google.maps.LatLng(20, 20);
var myOptions = {
zoom: 4,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
getMarkers();
function getMarkers() {
var res = inputData[cnt++ % inputData.length];
var timeStamp = Date.now();
for (var i = 0, len = res.length; i < len; i++) {
//Do we have this marker already?
if (markerStore.hasOwnProperty(res[i].id)) {
markerStore[res[i].id].setPosition(new google.maps.LatLng(res[i].position.lat, res[i].position.long));
markerStore[res[i].id].timeStamp = timeStamp;
} else {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(res[i].position.lat, res[i].position.long),
title: res[i].name,
map: map,
});
markerStore[res[i].id] = marker;
markerStore[res[i].id].timeStamp = timeStamp;
}
}
for (var markerId in markerStore) {
if (markerStore.hasOwnProperty(markerId)) {
if (markerStore[markerId].timeStamp < timeStamp) {
markerStore[markerId].setMap(null);
delete markerStore[markerId]
}
}
}
window.setTimeout(getMarkers, INTERVAL);
}
})
var inputData = [
[{
"id": 1,
"name": "Peter",
"position": {
"lat": 10.0000,
"long": 15.0000
}
},
{
"id": 2,
"name": "Paul",
"position": {
"lat": 20.0000,
"long": 25.00000
}
}
],
[{
"id": 1,
"name": "Peter",
"position": {
"lat": 11.0000,
"long": 15.0000
}
},
{
"id": 2,
"name": "Paul",
"position": {
"lat": 21.0000,
"long": 25.00000
}
}
],
[{
"id": 2,
"name": "Paul",
"position": {
"lat": 22.0000,
"long": 25.00000
}
}],
[{
"id": 2,
"name": "Paul",
"position": {
"lat": 23.0000,
"long": 25.00000
}
},
{
"id": 3,
"name": "George",
"position": {
"lat": 5.0000,
"long": 15.0000
}
}
],
[{
"id": 2,
"name": "Paul",
"position": {
"lat": 24.0000,
"long": 25.00000
}
},
{
"id": 3,
"name": "George",
"position": {
"lat": 6.0000,
"long": 15.0000
}
}
]
];
html,
body,
#map_canvas {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="map_canvas"></div>