Commit b2145b0707901335e67ed15f80904953a8fd1df7
1 parent
01ae2e35
Exists in
master
and in
1 other branch
WIP
Showing
3 changed files
with
46 additions
and
47 deletions
Show diff stats
includes/images/car.png
2.19 KB
src/js/app.js
... | ... | @@ -2,7 +2,7 @@ |
2 | 2 | var app = angular.module('batmanDelivers', ['ngSanitize', 'ui.select']); |
3 | 3 | |
4 | 4 | app.controller('myCtrl', function($scope, $http, $timeout, $rootScope, $interval) { |
5 | - | |
5 | + | |
6 | 6 | var map; |
7 | 7 | $scope.stops = [{ |
8 | 8 | "Description": "Start typing to search...", |
... | ... | @@ -14,11 +14,11 @@ app.controller('myCtrl', function($scope, $http, $timeout, $rootScope, $interval |
14 | 14 | valid: false, |
15 | 15 | id: 2 |
16 | 16 | }] |
17 | - | |
17 | + | |
18 | 18 | var directionsService = new google.maps.DirectionsService; |
19 | 19 | var directionsDisplay = new google.maps.DirectionsRenderer(); |
20 | 20 | |
21 | - | |
21 | + | |
22 | 22 | |
23 | 23 | initMap(); |
24 | 24 | $scope.timer = 0; |
... | ... | @@ -31,7 +31,7 @@ app.controller('myCtrl', function($scope, $http, $timeout, $rootScope, $interval |
31 | 31 | lng: -0.024640 |
32 | 32 | }, |
33 | 33 | mapTypeId: 'roadmap', |
34 | - zoom: 11, | |
34 | + zoom: 14, | |
35 | 35 | mapTypeControl: false, |
36 | 36 | styles: [{ |
37 | 37 | "featureType": "all", |
... | ... | @@ -184,11 +184,11 @@ app.controller('myCtrl', function($scope, $http, $timeout, $rootScope, $interval |
184 | 184 | } |
185 | 185 | ] |
186 | 186 | } |
187 | - ] | |
187 | + ] | |
188 | 188 | }); |
189 | 189 | $rootScope.map = map; |
190 | 190 | } |
191 | - $scope.addStop = function () { | |
191 | + $scope.addStop = function() { | |
192 | 192 | $scope.stops.push({ |
193 | 193 | Description: "Start typing to search..." |
194 | 194 | }) |
... | ... | @@ -221,16 +221,17 @@ app.controller('myCtrl', function($scope, $http, $timeout, $rootScope, $interval |
221 | 221 | |
222 | 222 | } |
223 | 223 | }); |
224 | + | |
224 | 225 | function calcRoute(start, end, waypoints) { |
225 | 226 | console.log(waypoints) |
226 | 227 | directionsService.route({ |
227 | 228 | origin: start.$marker.getPosition(), |
228 | 229 | destination: end.$marker.getPosition(), |
229 | - waypoints: waypoints.map(function(x){ | |
230 | + waypoints: waypoints.map(function(x) { | |
230 | 231 | return { |
231 | 232 | location: x.Description, |
232 | 233 | stopover: true |
233 | - }; | |
234 | + }; | |
234 | 235 | }), |
235 | 236 | travelMode: 'DRIVING', |
236 | 237 | provideRouteAlternatives: false |
... | ... | @@ -248,13 +249,15 @@ app.controller('myCtrl', function($scope, $http, $timeout, $rootScope, $interval |
248 | 249 | } |
249 | 250 | }); |
250 | 251 | } |
252 | + | |
251 | 253 | function follow(overview_path, start, end) { |
252 | 254 | |
253 | 255 | var marker = new google.maps.Marker({ |
254 | 256 | position: overview_path[0], |
255 | - icon: { | |
256 | - url: "../includes/images/car.svg", | |
257 | - rotation: 0 | |
257 | + icon: { | |
258 | + url: "../includes/images/car3x.png", | |
259 | + scaledSize: new google.maps.Size(32, 32), | |
260 | + anchor: new google.maps.Point(16, 16) | |
258 | 261 | }, |
259 | 262 | map: map, |
260 | 263 | optimized: false |
... | ... | @@ -262,49 +265,45 @@ app.controller('myCtrl', function($scope, $http, $timeout, $rootScope, $interval |
262 | 265 | var from; |
263 | 266 | var to; |
264 | 267 | var heading; |
265 | - var arrOfRots = []; | |
268 | + var arrOfRots = []; | |
266 | 269 | var pre = [0]; |
267 | 270 | var turn; |
268 | 271 | var c = 0; |
269 | - var i = c; | |
272 | + var i = 1; | |
273 | + var j = 1; | |
270 | 274 | |
271 | - //Rotating marker/icon | |
272 | - // $('img[src="../includes/images/car.svg"]').css({ | |
273 | - // 'transform': 'rotate(' + heading + 'deg)' | |
274 | - // }); | |
275 | + function moveDriver() { | |
276 | + setTimeout(function() { | |
275 | 277 | |
276 | - $interval(function(){ | |
277 | - //Smooth Movements from turn to turn | |
278 | - for(i ; i < overview_path.length; ){ | |
279 | - i++; | |
280 | - from = new google.maps.LatLng(overview_path[c].lat(), overview_path[c].lng()); | |
281 | - to = new google.maps.LatLng(overview_path[c + i].lat(), overview_path[c + i].lng()); | |
282 | - heading = Math.round(google.maps.geometry.spherical.computeHeading(from, to)); | |
283 | - pre.push(heading); //Pushing the heading so the next index can compare to it. | |
284 | - //arrOfRots.push(heading) These will be used to create the curved polyline. | |
285 | - turn = Math.abs(pre[0] - heading); | |
286 | - if(turn > 45 && turn < 135) { | |
287 | - c += i; | |
288 | - console.log(turn); | |
289 | - break; | |
290 | - } else { | |
291 | - pre.splice(0, 1); //Removes the current previous heading, so a new one can be added. | |
292 | - } | |
293 | - c += i; | |
294 | - } | |
295 | - marker.setPosition(overview_path[c]); | |
296 | - //Instead of setPosition draw a curved polyline using the array of rotations; | |
297 | - }, 1000) | |
298 | - //arrOfRots.push(heading); | |
299 | - //$scope.timeTaken++; | |
300 | 278 | |
301 | - } | |
279 | + function rotateDriver() { | |
280 | + setTimeout(function() { | |
281 | + var from = new google.maps.LatLng(overview_path[j - 1].lat(), overview_path[j - 1].lng()); | |
282 | + var to = new google.maps.LatLng(overview_path[j].lat(), overview_path[j].lng()); | |
283 | + var heading = Math.round(google.maps.geometry.spherical.computeHeading(from, to)); | |
284 | + if (Math.abs(heading) > 0) { | |
285 | + $('img[src="../includes/images/car3x.png"]').css({ 'transform': 'rotate(' + heading + 'deg)' }); | |
286 | + } | |
287 | + | |
288 | + j++; | |
289 | + if (j < 180) { | |
290 | + rotateDriver(); | |
291 | + } | |
292 | + }, 500) | |
293 | + } | |
294 | + rotateDriver(); | |
302 | 295 | |
303 | - | |
304 | - | |
305 | -}); | |
306 | 296 | |
297 | + j=1; | |
298 | + marker.setPosition(overview_path[i]); | |
299 | + i++; | |
300 | + if (i < overview_path.length) { | |
301 | + moveDriver(); | |
302 | + } | |
303 | + }, 1000) | |
304 | + } | |
305 | + moveDriver(); | |
307 | 306 | |
308 | - | |
307 | + } | |
309 | 308 | |
310 | - | |
309 | +}); | |
311 | 310 | \ No newline at end of file | ... | ... |