Splitting single route to more than one route because of way point 
restriction.Here I am facing two issues.

( http://jsfiddle.net/geocodezip/ouhLc6v2/ This code I used )

1.Animation is working fyn if only one route.More than one route making 
wrong animation.How to solve this issue?How can I make path and leg of 
different route as single route to making animation correct? Route is 
displaying perfectly after splitting route also.Only problem is animation 
is working with last route only.

2.Directionrender is not clearing if route more than one.

>      if (directionsRenderer != null) {
>
>                 directionsRenderer.setMap(null);
>
>                 directionsRenderer = null;
>
>
>>             }
>
>
>
  if (waypts.length <= 23) {
>
>                                                     directionsRenderer = 
>> new google.maps.DirectionsRenderer({
>
>                                                         suppressMarkers: 
>> true
>
>                                                     });
>
>                                                     var directionsService 
>> = new google.maps.DirectionsService;
>
>                                                     
>> directionsRenderer.setMap(map);                                            
>>        
>
>                                                     
>> calculateAndDisplayRoute(directionsService, directionsRenderer, Startlong, 
>> Startlat, Endlong, Endlat, waypts);                                        
>>            
>
>                                                     
>> //AnimateFinalRoute(pathCoords4Animation);
>
>                                                     Startlong = Endlong;
>
>                                                     Startlat = Endlat;
>
>                                                 }
>
>                                                 else {
>
>                                                     // 
>> alert(waypts.length);
>
>                                                     var splitroute = 
>> Math.floor(waypts.length / 20);//quotient
>
>                                                     //alert(splitroute);
>
>                                                     var splitrouteReminder 
>> = (waypts.length % 20);
>
>                                                     // 
>> alert(splitrouteReminder);
>
>                                                     var m = 0;
>
>                                                     var CntWaypnt = 0;
>
>                                                    
>
>                                                     for (CntWaypnt = 0; 
>> CntWaypnt < splitroute; CntWaypnt++)//Quotient times
>
>                                                     {
>
>                                                         var 
>> SplittedWaypts1to20s = waypts.slice(m, m + 20);
>
>                                                         var Startlats = 
>> waypts[m].location.lat;
>
>                                                         var Endlats = 
>> waypts[m + 20].location.lat;
>
>                                                         var Startlongs = 
>> waypts[m].location.lng;
>
>                                                         var Endlongs = 
>> waypts[m + 20].location.lng;
>
>                                                         directionsRenderer 
>> = new google.maps.DirectionsRenderer({
>
>                                                             
>> suppressMarkers: true
>
>                                                         });
>
>                                                         var 
>> directionsService = new google.maps.DirectionsService;
>
>                                                         
>> directionsRenderer.setMap(map);
>
>                                                         
>> calculateAndDisplayRoute(directionsService, directionsRenderer, Startlongs, 
>> Startlats, Endlongs, Endlats, SplittedWaypts1to20s);
>
>
>
Calling function

> function calculateAndDisplayRoute(directionsService, directionsRenderer, 
>> startLonRoute, StartLatRoute, EndLonRoute, EndLatRoute, waypts) {
>
>             // Instantiate an info window to hold step text.
>
>             var stepDisplay = new google.maps.InfoWindow;
>
>             directionsService.route({
>
>                 origin: { lat: StartLatRoute, lng: startLonRoute },  // 
>> Haight.
>
>                 destination: { lat: EndLatRoute, lng: EndLonRoute },  // 
>> Ocean Beach.
>
>                 waypoints: waypts,
>
>                 optimizeWaypoints: false,
>
>                 travelMode: 'DRIVING'             
>
>             }, function (response, status) {
>
>                     if (status == 'OK') {
>
>                         directionsRenderer.setDirections(response);
>
>                       
>
>                     //////////////////////////////////
>
>                     var steps = [];
>
>                         polyline = new google.maps.Polyline({
>
>                             path: [],
>
>                             strokeColor: '#FF0000',
>
>                             strokeWeight: 3
>
>                         });
>
>
>>                         poly2 = new google.maps.Polyline({
>
>                             path: [],
>
>                             strokeColor: '#FF0000',
>
>                             strokeWeight: 3
>
>                         });
>
>
>>                     //Animation
>
>                     var bounds = new google.maps.LatLngBounds();
>
>                     var route = response.routes[0];
>
>                     startLocation = new Object();
>
>                     endLocation = new Object();
>
>
>>                     // For each route, display summary information.
>
>                     var path = response.routes[0].overview_path;
>
>                     var legs = response.routes[0].legs;
>
>                     for (i = 0; i < legs.length; i++) {
>
>                         if (i === 0) {
>
>                             startLocation.latlng = legs[i].start_location;
>
>                             startLocation.address = legs[i].start_address;
>
>                             //   marker = 
>> createMarker(legs[i].start_location, "start", legs[i].start_address, 
>> "green");
>
>                         }
>
>                         endLocation.latlng = legs[i].end_location;
>
>                         endLocation.address = legs[i].end_address;
>
>                         var steps = legs[i].steps;
>
>                         for (j = 0; j < steps.length; j++) {
>
>                             var nextSegment = steps[j].path;
>
>                             for (k = 0; k < nextSegment.length; k++) {
>
>                                 polyline.getPath().push(nextSegment[k]);
>
>                                 bounds.extend(nextSegment[k]);
>
>                             }
>
>                         }                        
>
>                     }
>
>                     polyline.setMap(map);
>
>                     map.fitBounds(bounds);
>
>                     map.setZoom(18);
>
>
>>                     startAnimation(); 
>
>                 } else {
>
>                     window.alert('Directions request failed due to ' + 
>> status);
>
>                 }
>
>             });
>
>         }      
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"[deprecated] Google Maps JavaScript API v3. Please use the latest post." group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-maps-js-api-v3+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-maps-js-api-v3/75e123b1-a558-4335-8eb4-4488c40d6603o%40googlegroups.com.

Reply via email to