THIS IS CODE THAT HAS BEEN REMOVED var line = new google.maps.Polyline({ path: [{lat: response.routes[0].overview_path[0].lat(), lng: response.routes[0].overview_path[0].lng()}, {lat: response.routes[0].overview_path[1].lat(), lng: response.routes[0].overview_path[1].lng()}], icons: [{ icon: lineSymbol, offset: '100%' }], map: map }); response.routes[0].overview_path.forEach(function(x, i){ if (i % 2 == 0){ curvedLine({LatStart: x.lat(), LngStart: x.lng(), LatEnd: response.routes[0].overview_path[i + 2].lat(), LngEnd: response.routes[0].overview_path[i + 2].lng()}) } var line = new google.maps.Polyline({ path: [{lat: x.lat(), lng: x.lng()}, {lat: response.routes[0].overview_path[i + 1].lat(), lng: response.routes[0].overview_path[i + 1].lng()}], map: map }); }) function animateCircle(line) { var count = 0; window.setInterval(function() { count = (count + 1) % 200; var icons = line.get('icons'); console.log(icons); icons[0].offset = (count / 2) + '%'; line.set('icons', icons); }, 20); } animateCircle(line); $scope.stops.forEach(function(x) { try{ //Car Sensors in concept if(x.Latitude.toFixed(3) == overview_path[overview_path.length - 1].lat().toFixed(3) && x.Longitude.toFixed(3) == overview_path[overview_path.length - 1].lng().toFixed(3)){ var m = x.$marker; m.setMap(null); } } catch(e){ console.log(e); var m = x.$marker; m.setMap(null); clearInterval($scope.drive); } finally{ console.log('I am alerted regardless of the outcome above') } }); function calcDistance(p1, p2) { return (google.maps.geometry.spherical.computeDistanceBetween(p1, p2) / 1000).toFixed(2); } var p1 = new google.maps.LatLng(overview_path[counter].lat(), overview_path[counter].lng()); var p2 = new google.maps.LatLng(overview_path[counter + 1].lat(), overview_path[counter + 1].lng()); var difference = calcDistance(p1, p2); p1 = new google.maps.LatLng(overview_path[counter].lat(), overview_path[counter].lng()); p2 = new google.maps.LatLng(overview_path[counter + 1].lat(), overview_path[counter + 1].lng()); if (difference < 0.09){ setTimeout(function(){ }, 500) } else { setTimeout(function(){ marker.setPosition(overview_path[counter]); map.panTo(marker.getPosition()); counter++; }, 1000) }