|
61 | 61 | ]; |
62 | 62 | if (request) |
63 | 63 | { |
64 | | - for(var key in request) |
65 | | - { |
66 | | - if (request.hasOwnProperty(key)) |
67 | | - { |
68 | | - (validKeys.indexOf(key) === -1) && (delete request[key]); |
69 | | - } |
| 64 | + for(var key in request) { |
| 65 | + if (request.hasOwnProperty(key)) { |
| 66 | + (validKeys.indexOf(key) === -1) && (delete request[key]); |
70 | 67 | } |
| 68 | + } |
71 | 69 | } |
72 | 70 |
|
73 | 71 | if(request.waypoints) { |
74 | | - // Check fo valid values |
75 | | - if(request.waypoints == "[]" || request.waypoints === "") { |
| 72 | + // Check for acceptable values |
| 73 | + if(!Array.isArray(request.waypoints)) { |
76 | 74 | delete request.waypoints; |
77 | 75 | } |
78 | 76 | } |
79 | 77 |
|
80 | 78 | var showDirections = function(request) { |
81 | 79 | if (requestTimeout && request) { |
82 | | - if (!routeRequest) |
83 | | - { |
| 80 | + if (!routeRequest) { |
84 | 81 | routeRequest = request; |
85 | | - } |
86 | | - else |
87 | | - { |
88 | | - for (var attr in request) |
89 | | - { |
90 | | - if (request.hasOwnProperty(attr)) |
91 | | - { |
92 | | - routeRequest[attr] = request[attr]; |
| 82 | + } else { |
| 83 | + for (var attr in request) { |
| 84 | + if (request.hasOwnProperty(attr)) { |
| 85 | + routeRequest[attr] = request[attr]; |
93 | 86 | } |
94 | 87 | } |
95 | 88 | } |
96 | | - } |
97 | | - else |
98 | | - { |
| 89 | + } else { |
99 | 90 | requestTimeout = $timeout(function() { |
100 | | - if (!routeRequest) |
101 | | - { |
| 91 | + if (!routeRequest) { |
102 | 92 | routeRequest = request; |
103 | 93 | } |
104 | 94 | directionsService.route(routeRequest, function(response, status) { |
105 | 95 | if (status == google.maps.DirectionsStatus.OK) { |
106 | 96 | renderer.setDirections(response); |
| 97 | + // Unset request for the next call |
| 98 | + routeRequest = undefined; |
107 | 99 | } |
108 | 100 | }); |
| 101 | + $timeout.cancel(requestTimeout); |
| 102 | + // Unset expired timeout for the next call |
109 | 103 | requestTimeout = undefined; |
110 | 104 | }, routeRenderDelay); |
111 | 105 | } |
|
0 commit comments