Вход Регистрация
Файл: module-assets/admin/gmaps/lib/gmaps.routes.js
Строк: 302
<?php
var travelModeunitSystem;

GMaps.prototype.getRoutes = function(options) {
  switch (
options.travelMode) {
    case 
'bicycling':
      
travelMode google.maps.TravelMode.BICYCLING;
      break;
    case 
'transit':
      
travelMode google.maps.TravelMode.TRANSIT;
      break;
    case 
'driving':
      
travelMode google.maps.TravelMode.DRIVING;
      break;
    default:
      
travelMode google.maps.TravelMode.WALKING;
      break;
  }

  if (
options.unitSystem === 'imperial') {
    
unitSystem google.maps.UnitSystem.IMPERIAL;
  }
  else {
    
unitSystem google.maps.UnitSystem.METRIC;
  }

  var 
base_options = {
        
avoidHighwaysfalse,
        
avoidTollsfalse,
        
optimizeWaypointsfalse,
        
waypoints: []
      },
      
request_options =  extend_object(base_optionsoptions);

  
request_options.origin = /string/.test(typeof options.origin) ? options.origin : new google.maps.LatLng(options.origin[0], options.origin[1]);
  
request_options.destination = /string/.test(typeof options.destination) ? options.destination : new google.maps.LatLng(options.destination[0], options.destination[1]);
  
request_options.travelMode travelMode;
  
request_options.unitSystem unitSystem;

  
delete request_options.callback;

  var 
self this,
      
service = new google.maps.DirectionsService();

  
service.route(request_options, function(resultstatus) {
    if (
status === google.maps.DirectionsStatus.OK) {
      for (var 
r in result.routes) {
        if (
result.routes.hasOwnProperty(r)) {
          
self.routes.push(result.routes[r]);
        }
      }
    }

    if (
options.callback) {
      
options.callback(self.routes);
    }
  });
};

GMaps.prototype.removeRoutes = function() {
  
this.routes = [];
};

GMaps.prototype.getElevations = function(options) {
  
options extend_object({
    
locations: [],
    
path false,
    
samples 256
  
}, options);

  if (
options.locations.length 0) {
    if (
options.locations[0].length 0) {
      
options.locations array_flat(array_map([options.locations], arrayToLatLng,  false));
    }
  }

  var 
callback options.callback;
  
delete options.callback;

  var 
service = new google.maps.ElevationService();

  
//location request
  
if (!options.path) {
    
delete options.path;
    
delete options.samples;

    
service.getElevationForLocations(options, function(resultstatus) {
      if (
callback && typeof(callback) === "function") {
        
callback(resultstatus);
      }
    });
  
//path request
  
} else {
    var 
pathRequest = {
      
path options.locations,
      
samples options.samples
    
};

    
service.getElevationAlongPath(pathRequest, function(resultstatus) {
     if (
callback && typeof(callback) === "function") {
        
callback(resultstatus);
      }
    });
  }
};

GMaps.prototype.cleanRoute GMaps.prototype.removePolylines;

GMaps.prototype.drawRoute = function(options) {
  var 
self this;

  
this.getRoutes({
    
originoptions.origin,
    
destinationoptions.destination,
    
travelModeoptions.travelMode,
    
waypointsoptions.waypoints,
    
unitSystemoptions.unitSystem,
    
callback: function(e) {
      if (
e.length 0) {
        
self.drawPolyline({
          
pathe[e.length 1].overview_path,
          
strokeColoroptions.strokeColor,
          
strokeOpacityoptions.strokeOpacity,
          
strokeWeightoptions.strokeWeight
        
});
        
        if (
options.callback) {
          
options.callback(e[e.length 1]);
        }
      }
    }
  });
};

GMaps.prototype.travelRoute = function(options) {
  if (
options.origin && options.destination) {
    
this.getRoutes({
      
originoptions.origin,
      
destinationoptions.destination,
      
travelModeoptions.travelMode,
      
waypoints options.waypoints,
      
callback: function(e) {
        
//start callback
        
if (e.length && options.start) {
          
options.start(e[e.length 1]);
        }

        
//step callback
        
if (e.length && options.step) {
          var 
route e[e.length 1];
          if (
route.legs.length 0) {
            var 
steps route.legs[0].steps;
            for (var 
i=0stepstep=steps[i]; i++) {
              
step.step_number i;
              
options.step(step, (route.legs[0].steps.length 1));
            }
          }
        }

        
//end callback
        
if (e.length && options.end) {
           
options.end(e[e.length 1]);
        }
      }
    });
  }
  else if (
options.route) {
    if (
options.route.legs.length 0) {
      var 
steps options.route.legs[0].steps;
      for (var 
i=0stepstep=steps[i]; i++) {
        
step.step_number i;
        
options.step(step);
      }
    }
  }
};

GMaps.prototype.drawSteppedRoute = function(options) {
  var 
self this;
  
  if (
options.origin && options.destination) {
    
this.getRoutes({
      
originoptions.origin,
      
destinationoptions.destination,
      
travelModeoptions.travelMode,
      
waypoints options.waypoints,
      
callback: function(e) {
        
//start callback
        
if (e.length && options.start) {
          
options.start(e[e.length 1]);
        }

        
//step callback
        
if (e.length && options.step) {
          var 
route e[e.length 1];
          if (
route.legs.length 0) {
            var 
steps route.legs[0].steps;
            for (var 
i=0stepstep=steps[i]; i++) {
              
step.step_number i;
              
self.drawPolyline({
                
pathstep.path,
                
strokeColoroptions.strokeColor,
                
strokeOpacityoptions.strokeOpacity,
                
strokeWeightoptions.strokeWeight
              
});
              
options.step(step, (route.legs[0].steps.length 1));
            }
          }
        }

        
//end callback
        
if (e.length && options.end) {
           
options.end(e[e.length 1]);
        }
      }
    });
  }
  else if (
options.route) {
    if (
options.route.legs.length 0) {
      var 
steps options.route.legs[0].steps;
      for (var 
i=0stepstep=steps[i]; i++) {
        
step.step_number i;
        
self.drawPolyline({
          
pathstep.path,
          
strokeColoroptions.strokeColor,
          
strokeOpacityoptions.strokeOpacity,
          
strokeWeightoptions.strokeWeight
        
});
        
options.step(step);
      }
    }
  }
};

GMaps.Route = function(options) {
  
this.origin options.origin;
  
this.destination options.destination;
  
this.waypoints options.waypoints;

  
this.map options.map;
  
this.route options.route;
  
this.step_count 0;
  
this.steps this.route.legs[0].steps;
  
this.steps_length this.steps.length;

  
this.polyline this.map.drawPolyline({
    
path: new google.maps.MVCArray(),
    
strokeColoroptions.strokeColor,
    
strokeOpacityoptions.strokeOpacity,
    
strokeWeightoptions.strokeWeight
  
}).getPath();
};

GMaps.Route.prototype.getRoute = function(options) {
  var 
self this;

  
this.map.getRoutes({
    
origin this.origin,
    
destination this.destination,
    
travelMode options.travelMode,
    
waypoints this.waypoints || [],
    
callback : function() {
      
self.route e[0];

      if (
options.callback) {
        
options.callback.call(self);
      }
    }
  });
};

GMaps.Route.prototype.back = function() {
  if (
this.step_count 0) {
    
this.step_count--;
    var 
path this.route.legs[0].steps[this.step_count].path;

    for (var 
p in path){
      if (
path.hasOwnProperty(p)){
        
this.polyline.pop();
      }
    }
  }
};

GMaps.Route.prototype.forward = function() {
  if (
this.step_count this.steps_length) {
    var 
path this.route.legs[0].steps[this.step_count].path;

    for (var 
p in path){
      if (
path.hasOwnProperty(p)){
        
this.polyline.push(path[p]);
      }
    }
    
this.step_count++;
  }
};
?>
Онлайн: 0
Реклама