Beruflich Dokumente
Kultur Dokumente
Servicio de rutas - Versin 3 del API de JavaScript de Google Maps Google Developers
tanyvillalbav@gmail.com Sign out
Buscar
Inicio
Productos
Conferencias
Escaparate
Live
Grupos
Servicio de rutas
Descripcin general Solicitudes de rutas Medios de transporte Opciones de transporte pblico Sistemas de unidades Cmo especificar la regin para obtener rutas Cmo procesar rutas Cdigos de estado de las rutas Cmo visualizar DirectionsResult El objeto DirectionsResults Rutas Tramos Pasos Informacin especfica sobre transporte pblico Cmo inspeccionar DirectionsResults Cmo usar hitos en las rutas Rutas arrastrables
Descripcin general
El objeto DirectionsService permite obtener rutas para distintos medios de transporte. Este objeto se comunica con el servicio de rutas del API de Google Maps, que recibe solicitudes de rutas y devuelve los resultados calculados. Puedes trabajar directamente con estos resultados de rutas o utilizar el objeto DirectionsRenderer para procesarlos. Las rutas pueden especificar los orgenes y los destinos como cadenas de texto (por ejemplo, "Chicago, IL" o "Darwin, NSW, Australia") o como valores LatLng. El servicio de rutas puede devolver rutas segmentadas mediante una serie de hitos. Las rutas se muestran como polilneas que trazan la ruta en un mapa, o tambin como una serie de descripciones textuales en un elemento <div> (por ejemplo, "Gira a la derecha en la salida Williamsburg Bridge").
Solicitudes de rutas
El acceso al servicio de rutas tiene lugar de forma asncrona, ya que el API de Google Maps debe hacer una llamada a un servidor externo. Por ese motivo, debes incluir un mtodo de devolucin de llamada para que se ejecute al completar la solicitud. Este mtodo de devolucin de llamada procesar los resultados. Ten en cuenta que el servicio de rutas puede devolver ms de un posible itinerario como un conjunto de rutas (routes[]) independientes. Para utilizar rutas en la versin 3, crea un objeto de tipo DirectionsService y ejecuta DirectionsService.route() para iniciar una solicitud al servicio de rutas, incluyendo un objeto literal DirectionsRequest que contiene los trminos de entrada y un mtodo de devolucin de llamada que se ejecutar al recibir la respuesta. El objeto literal DirectionsRequest contiene los siguientes campos:
https://developers.google.com/maps/documentation/javascript/directions
1/15
2/04/13
Servicio de rutas - Versin 3 del API de JavaScript de Google Maps Google Developers
avoidHighways: Boolean , avoidTolls: Boolean region: String } A continuacin, se explican estos campos. origin (obligatorio): especifica la ubicacin de salida desde la que se calcularn las rutas. Este valor se puede especificar como String (por ejemplo, "Chicago, IL") o como LatLng. destination (obligatorio): especifica la ubicacin de llegada hasta la que se calcularn las rutas. Este valor se puede especificar como String (por ejemplo, "Chicago, IL") o como LatLng. travelMode (obligatorio): especifica el medio de transporte que se utilizar al calcular las rutas. Los valores vlidos se especifican en la seccin Medios de transporte que aparece a continuacin. transitOptions (opcional): especifica los valores que se aplican nicamente a las solicitudes donde travelMode se corresponde con google.maps.TravelMode.TRANSIT . Los valores vlidos se describen en la seccin Opciones de transporte pblico que aparece a continuacin. unitSystem (opcional): especifica el sistema de unidades que se utilizar para mostrar los resultados. Los valores vlidos se especifican en la seccin Sistemas de unidades que aparece a continuacin. waypoints[] (opcional): especifica un conjunto de hitos (DirectionsWaypoint). Los hitos modifican una ruta al hacerla pasar por ubicaciones concretas. Un hito se especifica como un objeto literal con los campos indicados a continuacin. location especifica la ubicacin del hito como LatLng o como String que se codificar geogrficamente. stopover es un valor booleano que indica que el hito es una parada en la ruta, lo cual provoca que la ruta se divida en dos rutas diferentes. (Para obtener ms informacin sobre los hitos, consulta la seccin Cmo usar hitos en las rutas que aparece a continuacin). optimizeWaypoints (opcional): especifica que la ruta con los hitos waypoints proporcionados se puede optimizar para proporcionar la ruta ms corta posible. Si su valor es true, el servicio de rutas devuelve los hitos waypoints ordenados de nuevo en un campo waypoint_order .Para obtener ms informacin, consulta la seccin Cmo usar hitos en las rutas que aparece a continuacin. provideRouteAlternatives (opcional): si se establece en true, indica que el servicio de rutas puede devolver ms de una ruta alternativa en la respuesta. Ten en cuenta que la obtencin de rutas alternativas puede incrementar el tiempo de respuesta del servidor. avoidHighways (opcional): si se establece en true, indica que las rutas calculadas deben evitar, si es posible, las principales carreteras. avoidTolls (opcional): si se establece en true, indica que las rutas calculadas deben evitar, si es posible, las autopistas de peaje. region (opcional): es el cdigo de regin, especificado como un valor de dos caracteres ccTLD ("dominio de nivel superior"). Para obtener ms informacin, consulta la seccin Cmo especificar la regin para obtener rutas que aparece a continuacin. A continuacin, se muestra una solicitud DirectionsRequest de ejemplo: { origin: "Chicago, IL", destination: "Los Angeles, CA", waypoints: [ { location:"Joplin, MO", stopover:false },{ location:"Oklahoma City, OK", stopover:true }], provideRouteAlternatives: false, travelMode: TravelMode.DRIVING, unitSystem: UnitSystem.IMPERIAL }
Medios de transporte
Al calcular rutas, es necesario especificar el medio de transporte que se debe utilizar. A continuacin, se indican los medios
https://developers.google.com/maps/documentation/javascript/directions
2/15
2/04/13
Servicio de rutas - Versin 3 del API de JavaScript de Google Maps Google Developers
de transporte que se admiten actualmente. google.maps.TravelMode.DRIVING (predeterminado): proporciona rutas estndar para llegar en coche a travs de la red de carreteras. google.maps.TravelMode.BICYCLING: solicita rutas para llegar en bicicleta a travs de carriles bici y vas preferenciales para bicicletas. google.maps.TravelMode.TRANSIT solicita rutas de transporte pblico. google.maps.TravelMode.WALKING solicita rutas a pie a travs de aceras y rutas peatonales. Consulta la hoja de clculo de cobertura de Google Maps para determinar en qu medida admite un pas la presentacin de rutas. Si solicita rutas para una regin donde ese tipo de ruta no est disponible, la respuesta devolver DirectionsStatus como ZERO_RESULTS. Las rutas para llegar a pie a veces no incluyen rutas peatonales evidentes, por lo que devuelven advertencias en DirectionsRenderer que debes visualizar si no utilizas el procesador predeterminado DirectionsResult.
{ origin: "Hoboken NJ", destination: "Carroll Gardens, Brooklyn", travelMode: google.maps.TravelMode.TRANSIT, transitOptions: { departureTime: new Date(1337675679473) }, unitSystem: google.maps.UnitSystem.IMPERIAL }
Sistemas de unidades
De forma predeterminada, las rutas se calculan y se muestran en el sistema de unidades del pas o de la regin de origen (nota: los orgenes expresados mediante coordenadas de latitud y longitud en lugar de direcciones se convierten siempre en unidades mtricas de forma predeterminada). Por ejemplo, una ruta de "Chicago, IL" a "Toronto, ONT" mostrar los resultados
https://developers.google.com/maps/documentation/javascript/directions
3/15
2/04/13
Servicio de rutas - Versin 3 del API de JavaScript de Google Maps Google Developers
en millas, mientras que la ruta inversa mostrar los resultados en kilmetros. Para anular este sistema de unidades predeterminado, basta con que definas en la solicitud uno de ellos de forma explcita mediante cualquiera de los siguientes valores UnitSystem: UnitSystem.METRIC indica el uso del sistema mtrico. Las distancias se muestran en kilmetros. UnitSystem.IMPERIAL indica el uso del sistema imperial (britnico). Las distancias se muestran en millas. Nota: esta configuracin del sistema de unidades solo afecta al texto que se muestra al usuario. El resultado de las rutas incluye tambin valores de distancia, que no se muestran al usuario y que siempre se expresan en metros.
https://developers.google.com/maps/documentation/javascript/directions
4/15
2/04/13
Servicio de rutas - Versin 3 del API de JavaScript de Google Maps Google Developers
Para mostrar un resultado DirectionsResult mediante un objeto DirectionsRenderer , sigue los siguientes pasos: 1. Crea un objeto DirectionsRenderer . 2. Ejecuta setMap() en el procesador para vincularlo al mapa transmitido. 3. Ejecuta setDirections() en el procesador, transmitindole DirectionsResult tal y como se ha indicado anteriormente. Dado que el procesador es un objeto MVCObject, detecta automticamente cualquier cambio introducido en sus propiedades y actualiza el mapa cuando se modifican las rutas asociadas. En el siguiente ejemplo se calculan las rutas entre dos ubicaciones de la ruta 66, en las que los valores "start" y "end" proporcionados en las listas desplegables determinan el origen y el destino. DirectionsRenderer controla la visualizacin de la polilnea entre las ubicaciones indicadas, as como la colocacin, si corresponde, de marcadores en el origen, en el destino y en los hitos. var directionsDisplay; var directionsService = new google.maps.DirectionsService(); var map; function initialize() { directionsDisplay = new google.maps.DirectionsRenderer(); var chicago = new google.maps.LatLng (41.850033, -87.6500523); var mapOptions = { zoom:7, mapTypeId: google.maps.MapTypeId .ROADMAP, center: chicago } map = new google.maps.Map (document.getElementById("map_canvas"), mapOptions); directionsDisplay.setMap(map); } function calcRoute() { var start = document.getElementById("start").value; var end = document.getElementById("end").value; var request = { origin:start, destination:end, travelMode: google.maps.TravelMode.DRIVING }; directionsService.route(request, function (result, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(result); } }); } En el cuerpo HTML: <div> <strong>Start: </strong> <select id="start" onchange="calcRoute();"> <option value="chicago, il">Chicago</option> <option value="st louis, mo">St Louis</option> <option value="joplin, mo">Joplin, MO</option> <option value="oklahoma city, ok">Oklahoma City </option> <option value="amarillo, tx">Amarillo</option> <option value="gallup, nm">Gallup, NM</option> <option value="flagstaff, az">Flagstaff, AZ </option> <option value="winona, az">Winona</option> <option value="kingman, az">Kingman</option> <option value="barstow, ca">Barstow</option> <option value="san bernardino, ca">San Bernardino</option> <option value="los angeles, ca">Los Angeles</option> </select> <strong>End: </strong> <select id="end" onchange="calcRoute();"> <option value="chicago, il">Chicago</option> <option value="st louis, mo">St Louis</option> <option value="joplin, mo">Joplin, MO</option>
https://developers.google.com/maps/documentation/javascript/directions
5/15
2/04/13
Servicio de rutas - Versin 3 del API de JavaScript de Google Maps Google Developers
<option value="oklahoma city, ok">Oklahoma City </option> <option value="amarillo, tx">Amarillo</option> <option value="gallup, nm">Gallup, NM</option> <option value="flagstaff, az">Flagstaff, AZ </option> <option value="winona, az">Winona</option> <option value="kingman, az">Kingman</option> <option value="barstow, ca">Barstow</option> <option value="san bernardino, ca">San Bernardino</option> <option value="los angeles, ca">Los Angeles</option> </select> </div> Ver ejemplo (directions-simple.html) En el siguiente ejemplo se muestran rutas con distintos medios de transporte entre Haight-Ashbury y Ocean Beach en San Francisco (California, Estados Unidos): var directionsDisplay; var directionsService = new google.maps.DirectionsService(); var map; var haight = new google.maps.LatLng (37.7699298, -122.4469157); var oceanBeach = new google.maps.LatLng (37.7683909618184, -122.51089453697205); function initialize() { directionsDisplay = new google.maps.DirectionsRenderer(); var mapOptions = { zoom: 14, mapTypeId: google.maps.MapTypeId .ROADMAP, center: haight } map = new google.maps.Map (document.getElementById("map_canvas"), mapOptions); directionsDisplay.setMap(map); } function calcRoute() { var selectedMode = document.getElementById("mode").value; var request = { origin: haight, destination: oceanBeach, // Note that Javascript allows us to access the constant // using square brackets and a string value as its // "property." travelMode: google.maps.TravelMode[selectedMode] }; directionsService.route(request, function (response, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(response); } }); } En el cuerpo HTML: <div> <strong>Mode of Travel: </strong> <select id="mode" onchange="calcRoute();"> <option value="DRIVING">Driving</option> <option value="WALKING">Walking</option> <option value="BICYCLING">Bicycling</option> <option value="TRANSIT">Transit</option> </select> </div> Ver ejemplo (directions-travel-modes.html) DirectionsRenderer no solo controla la visualizacin de la polilnea y cualquier marcador asociado, sino que tambin controla la
https://developers.google.com/maps/documentation/javascript/directions
6/15
2/04/13
Servicio de rutas - Versin 3 del API de JavaScript de Google Maps Google Developers
visualizacin textual de las rutas en forma de una serie de pasos. Para ello, basta con ejecutar setPanel() en DirectionsRenderer , transmitindole el elemento <div> en el que se mostrar esta informacin. De esta forma, tambin se garantiza la visualizacin de la correspondiente informacin sobre derechos de autor y cualquier advertencia asociada a los resultados. Las indicaciones textuales se proporcionan en la configuracin de idioma preferida del navegador, o en el idioma especificado al cargar el API JavaScript mediante el parmetro language (para obtener ms informacin, consulta la seccin Localizacin). En el caso de las rutas de transporte pblico, el valor de tiempo se mostrar en la zona correspondiente de la parada en cuestin. El ejemplo que aparece a continuacin es idntico al mostrado anteriormente, con la diferencia de que incluye un panel <div> en el que se mostrarn las rutas: var directionsDisplay; var directionsService = new google.maps.DirectionsService(); var map; function initialize() { directionsDisplay = new google.maps.DirectionsRenderer(); var chicago = new google.maps.LatLng (41.850033, -87.6500523); var mapOptions = { zoom:7, mapTypeId: google.maps.MapTypeId .ROADMAP, center: chicago } map = new google.maps.Map (document.getElementById("map_canvas"), mapOptions); directionsDisplay.setMap(map); directionsDisplay.setPanel(document.getElementById("directionsPanel")); } function calcRoute() { var start = document.getElementById("start").value; var end = document.getElementById("end").value; var request = { origin:start, destination:end , travelMode: google.maps.TravelMode.DRIVING }; directionsService.route(request, function (response, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(response); } }); } En el cuerpo HTML: <div id="map_canvas" style="float :left;width :70% ; height :100% "></div> <div id="directionsPanel" style="float :right;width :30% ;height 100% "></div> Ver ejemplo (directions-panel.html)
El objeto DirectionsResult
Al enviar una solicitud de rutas a DirectionsService, recibirs una respuesta que constar de un cdigo de estado y un resultado, que es un objeto DirectionsResult. DirectionsResult es un objeto literal con un nico campo: routes[] consta de un conjunto de objetos DirectionsRoute. Cada ruta indica una forma de llegar desde el origen al destino proporcionados en DirectionsRequest. Normalmente, solo se devuelve una ruta por solicitud, a menos que se haya establecido el campo provideRouteAlternatives de la solicitud en true, en cuyo caso se pueden devolver varias rutas.
Rutas
El objeto DirectionsTrip heredado se llama ahora DirectionsRoute. Ten en cuenta que una ruta se refiere ahora a todo un viaje de principio a fin, en lugar de a un solo tramo del viaje principal.
https://developers.google.com/maps/documentation/javascript/directions
7/15
2/04/13
Servicio de rutas - Versin 3 del API de JavaScript de Google Maps Google Developers
DirectionsRoute contiene un solo resultado del origen y del destino especificados. Esta ruta puede constar de uno o ms tramos (de tipo DirectionsLeg) en funcin de si se han especificado hitos. Adems, la ruta tambin incluye informacin de derechos de autor y advertencias que se deben mostrar al usuario junto con la informacin de la ruta. DirectionsRoute es un objeto literal que contiene los siguientes campos: legs[] contiene un conjunto de objetos DirectionsLeg, cada uno de los cuales incluye informacin sobre un tramo de la ruta entre dos ubicaciones incluidas en ella. Se presentar un tramo diferente por cada hito o destino especificado (una ruta sin hitos incluye exactamente un objeto DirectionsLeg). Cada tramo consta de una serie de pasos DirectionStep. waypoint_order incluye un conjunto que indica el orden de los hitos de la ruta calculada. El orden de este conjunto puede verse modificado si se transmite optimizeWaypoints: true a DirectionsRequest. overview_path contiene un conjunto de objetos LatLng que representan una ruta aproximada (suavizada) de las rutas resultantes. bounds contiene un objeto LatLngBounds que indica los lmites de la polilnea a lo largo de la ruta especificada. copyrights contiene el texto de los derechos de autor que se mostrar con la ruta. Si no utilizas el objeto DirectionsRenderer proporcionado, debers gestionar y mostrar esta informacin t mismo. warnings[] contiene un conjunto de advertencias que se visualizar cuando se muestren las rutas. Si no utilizas el objeto DirectionsRenderer proporcionado, debers gestionar y mostrar estas advertencias t mismo.
Tramos
El objeto DirectionsRoute heredado se llama ahora DirectionsLeg. DirectionsLeg define un nico tramo de un viaje desde el origen hasta el destino de la ruta calculada. Las rutas que no contengan hitos constarn de un nico "tramo", mientras que las rutas en las que se hayan definido uno o varios hitos constarn de uno o varios tramos correspondientes a los tramos especficos del trayecto. DirectionsLeg es un objeto literal que contiene los siguientes campos: steps[] contiene un conjunto de objetos DirectionsStep que proporciona informacin sobre cada uno de los pasos del tramo del viaje. distance indica la distancia total que abarca el tramo, como un objeto Distance que adopta la siguiente forma: value indica la distancia en metros. text contiene una representacin en cadena de la distancia, que se muestra de forma predeterminada en el sistema de unidades que se utilizan en la ubicacin de origen (por ejemplo, se utilizan millas para cualquier ubicacin de origen perteneciente a Estados Unidos). Para anular este sistema de unidades, define UnitSystem especficamente en la consulta original. Ten en cuenta que el campo distance.value siempre contendr un valor expresado en metros, independientemente del sistema de unidades que utilices. Si se desconoce la distancia, es posible que estos campos no estn definidos. duration indica la duracin total del tramo, como un objeto Duration que adopta la siguiente forma: value indica la duracin en segundos. text contiene una representacin en cadena de la duracin. Si se desconoce la duracin, es posible que estos campos no estn definidos. arrival_time contiene la hora estimada de llegada de este tramo. Esta propiedad solo se transmite para rutas de transporte pblico. El resultado se devuelve como un objeto Time con tres propiedades: value: valor de tiempo especificado como objeto de fecha (Date) de JavaScript. text: valor de tiempo especificado como cadena. El valor de tiempo se muestra en la zona correspondiente situada en la parte superior de la parada de transporte pblico. time_zone contiene la zona donde se muestra el valor de tiempo de esta estacin. El valor es el nombre de la zona donde se muestra el valor de tiempo, tal y como se define en la base de datos de zonas de tiempo de IANA, por ejemplo, "Amrica/Nueva_York". departure_time contiene la hora estimada de llegada de este tramo, especificada como un objeto Time. El elemento departure_time solo se transmite para rutas de transporte pblico. start_location contiene el valor LatLng del origen de este tramo. Dado que el servicio web de rutas utiliza la opcin de transporte ms cercana a los puntos de partida y de llegada (normalmente, carreteras) para calcular las rutas entre dos ubicaciones, es posible que el valor start_location no coincida con el origen del tramo si, por ejemplo, no hay carreteras cercanas al mismo.
https://developers.google.com/maps/documentation/javascript/directions
8/15
2/04/13
Servicio de rutas - Versin 3 del API de JavaScript de Google Maps Google Developers
end_location contiene el valor LatLng del destino de este tramo. Dado que DirectionsService utiliza la opcin de transporte ms cercana a los puntos de partida y de llegada (normalmente, carreteras) para calcular las rutas entre dos ubicaciones, es posible que el valor end_location no coincida con el destino del tramo si, por ejemplo, no hay carreteras cerca del mismo. start_address contiene la direccin interpretable por humanos (normalmente una calle) del inicio de este tramo. end_address contiene la direccin interpretable por humanos (normalmente una calle) del fin de este tramo.
Pasos
DirectionsStep es la unidad ms pequea de una ruta e incluye un solo paso que describe una nica instruccin especfica del viaje. Por ejemplo, "Gira a la izquierda en la calle W. 4th St.". Un paso no solo describe una instruccin, sino que tambin contiene informacin sobre la distancia y sobre el tiempo con respecto al paso siguiente. Por ejemplo, es posible que el paso etiquetado como "Tome la interestatal 80 oeste" especifique una duracin de "60 kilmetros" y de "40 minutos" para indicar que el siguiente paso se encuentra a 60 kilmetros/40 minutos. Cuando se utiliza el servicio de rutas para buscar rutas de transporte pblico, el conjunto de pasos incluye informacin especfica sobre transporte pblico en forma de un objeto transit. Si en las rutas se incluyen varios medios de transporte, se proporcionarn rutas detalladas para los pasos a pie y en coche en un conjunto steps[]. Por ejemplo, un paso a pie incluir rutas desde las ubicaciones de partida y de llegada: "Camina hasta la calle Innes Ave & Fitch St". Este paso incluir rutas a pie detalladas para la ruta del conjunto steps[], por ejemplo: "Dirgete hacia el noroeste", "Gira a la izquierda en Arelious Walker" y "Gira a la izquierda en Innes Ave". DirectionsStep es un objeto literal que contiene los siguientes campos: instructions contiene instrucciones para este paso dentro de una cadena de texto. distance contiene la distancia entre este paso y el siguiente, como un objeto Distance (consulta la descripcin de DirectionsLeg indicada anteriormente). Si no se conoce la distancia, es posible que este campo no est definido. duration contiene el tiempo estimado necesario para realizar el recorrido entre este paso y el siguiente, como un objeto Duration (consulta la descripcin de DirectionsLeg indicada anteriormente). Si no se conoce la duracin, es posible que este campo no est definido. start_location contiene el valor LatLng codificado geogrficamente del punto de partida de este paso. end_location contiene el valor LatLng del punto de llegada de este paso. steps[] es un objeto literal DirectionsStep que contiene rutas detalladas a pie o en coche para rutas de transporte pblico. Los subpasos solo se encuentran disponibles para rutas de transporte pblico. travel_mode contiene el modo TravelMode utilizado en este paso. Las rutas de transporte pblico pueden incluir una combinacin de rutas a pie y de transporte pblico. path contiene un conjunto de elementos LatLngs que describe el recorrido de este paso. transit contiene informacin especfica sobre transporte pblico como, por ejemplo, las horas de salida y llegada y el nombre de la lnea de transporte pblico.
https://developers.google.com/maps/documentation/javascript/directions
9/15
2/04/13
Servicio de rutas - Versin 3 del API de JavaScript de Google Maps Google Developers
ejemplo, "Amrica/Nueva_York"). departure_time contiene la hora de salida, especificada como un objeto Time. headsign especifica la direccin en la que viaja la lnea, tal y como aparece en el vehculo o en la parada de salida. Generalmente esta ser la ltima estacin. headway , cuando se encuentra disponible, especifica el nmero previsto de segundos entre salidas de la misma parada en ese momento. Por ejemplo, con un valor headway de 600, podras prever una espera de diez minutos si perdieras el autobs. line contiene un objeto literal TransitLine que incluye informacin sobre la lnea de transporte pblico utilizada en este paso. El objeto TransitLine proporciona el nombre y el operador de la lnea, as como otras propiedades descritas en la documentacin de referencia de TransitLine. num_stops contiene el nmero de paradas de este paso. Incluye la parada de llegada, pero no la de salida. Por ejemplo, si las rutas implican salir de la parada A, pasando por las paradas B y C hasta llegar a la parada D, num_stops devolver 3 paradas.
Tipo de vehculo
El objeto VehicleType expone las siguientes propiedades: Valor VehicleType.RAIL VehicleType.METRO_RAIL VehicleType.SUBWAY VehicleType.TRAM VehicleType.MONORAIL VehicleType.HEAVY_RAIL Definicin Ferrocarril Tren ligero Metro ligero Tranva Monorral Tren pesado
https://developers.google.com/maps/documentation/javascript/directions
10/15
2/04/13
Servicio de rutas - Versin 3 del API de JavaScript de Google Maps Google Developers
VehicleType.COMMUTER_TRAIN VehicleType.HIGH_SPEED_TRAIN VehicleType.BUS VehicleType.INTERCITY_BUS VehicleType.TROLLEYBUS VehicleType.SHARE_TAXI Tren de cercanas Tren de alta velocidad Autobs Autocar Trolebs Taxi colectivo (vehculo que recoge y deposita a los pasajeros en cualquier lugar de la ruta que se le ha asignado) VehicleType.FERRY VehicleType.CABLE_CAR Ferry Telefrico (vehculo que se desplaza por un cable, generalmente sobre el suelo; estos vehculos pueden ser del tipo VehicleType.GONDOLA_LIFT ) VehicleType.GONDOLA_LIFT VehicleType.FUNICULAR Telecabina (telefrico) Funicular (vehculo que se utiliza para subir pendientes mediante un cable; suele estar formado por dos cabinas que actan como contrapeso una de la otra) VehicleType.OTHER Para el resto de vehculos se devolver este tipo.
var map; var directionsDisplay; var directionsService; var stepDisplay; var markerArray = []; function initialize() { // Instantiate a directions service. directionsService = new google.maps.DirectionsService(); // Create a map and center it on Manhattan. var manhattan = new google.maps.LatLng (40.7711329, -73.9741874); var mapOptions = { zoom: 13, mapTypeId: google.maps.MapTypeId .ROADMAP, center: manhattan } map = new google.maps.Map (document.getElementById("map_canvas"), mapOptions); // Create a renderer for directions and bind it to the map. var rendererOptions = { map: map } directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions) // Instantiate an info window to hold step text. stepDisplay = new google.maps.InfoWindow();
https://developers.google.com/maps/documentation/javascript/directions
11/15
2/04/13
}
Servicio de rutas - Versin 3 del API de JavaScript de Google Maps Google Developers
function calcRoute() { // First, clear out any existing markerArray // from previous calculations. for (i = 0; i < markerArray.length; i++) { markerArray[i].setMap( null); } // Retrieve the start and end locations and create // a DirectionsRequest using WALKING directions. var start = document.getElementById("start").value; var end = document.getElementById("end").value; var request = { origin: start, destination: end , travelMode: google.maps.TravelMode.WALKING }; // Route the directions and pass the response to a // function to create markers for each step. directionsService.route(request, function (response, status) { if (status == google.maps.DirectionsStatus.OK) { var warnings = document.getElementById("warnings_panel"); warnings.innerHTML = "" + response.routes[0].warnings + ""; directionsDisplay.setDirections(response); showSteps(response); } }); } function showSteps(directionResult) { // For each step, place a marker, and add the text to the marker's // info window. Also attach the marker to an array so we // can keep track of it and remove it when calculating new // routes. var myRoute = directionResult.routes[0].legs[0]; for ( var i = 0; i < myRoute.steps.length; i++) { var marker = new google.maps.Marker({ position: myRoute.steps[i].start_point, map: map }); attachInstructionText(marker, myRoute.steps[i].instructions); markerArray[i] = marker; } } function attachInstructionText(marker, text) { google.maps.event .addListener(marker, 'click', function () { stepDisplay.setContent(text); stepDisplay.open(map, marker); }); } En el cuerpo HTML: <div> <strong>Start: </strong> <select id="start"> <option value="penn station, new york, ny">Penn Station</option> <option value="grand central station, new york, ny">Grand Central Station</option> <option value="625 8th Avenue New York NY 10018">Port Authority Bus Terminal</option> <option value="staten island ferry terminal, new york, ny">Staten Island Ferry Terminal</option> <option value="101 E 125th Street, New York, NY">Harlem - 125th St Station</option> </select> <strong>End: </strong>
https://developers.google.com/maps/documentation/javascript/directions
12/15
2/04/13
Servicio de rutas - Versin 3 del API de JavaScript de Google Maps Google Developers
<select id="end" onchange="calcRoute();"> <option value="260 Broadway New York NY 10007">City Hall</option> <option value="W 49th St & 5th Ave, New York, NY 10020">Rockefeller Center </option> <option value="moma, New York, NY">MOMA</option> <option value="350 5th Ave, New York, NY, 10118">Empire State Building</option> <option value="253 West 125th Street, New York, NY">Apollo Theatre</option> <option value="1 Wall St, New York, NY">Wall St</option> </select> <div> Ver ejemplo (directions-complex.html)
https://developers.google.com/maps/documentation/javascript/directions
13/15
2/04/13
Servicio de rutas - Versin 3 del API de JavaScript de Google Maps Google Developers
if (checkboxArray.options[i].selected == true) { waypts.push({ location:checkboxArray[i].value, stopover:true }); } } var request = { origin: start, destination: end , waypoints: waypts, optimizeWaypoints: true, travelMode: google.maps.TravelMode.DRIVING }; directionsService.route(request, function (response, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(response); var route = response.routes[0]; var summaryPanel = document.getElementById("directions_panel"); summaryPanel.innerHTML = ""; // For each route, display summary information. for ( var i = 0; i < route.legs.length; i++) { var routeSegment = i+1; summaryPanel.innerHTML += "<b>Route Segment: " + routeSegment + "</b><br />"; summaryPanel.innerHTML += route.legs[i].start_address + " to "; summaryPanel.innerHTML += route.legs[i].end_address + "<br />"; summaryPanel.innerHTML += route.legs[i].distance.text + "<br /><br />"; } } }); } Ver ejemplo (directions-waypoints.html)
Rutas arrastrables
Los usuarios pueden modificar las rutas para llegar en coche, a pie o en bicicleta que se muestran utilizando de forma dinmica un objeto DirectionsRenderer en caso de rutas arrastrables . Esto permite al usuario seleccionar y modificar rutas haciendo clic en ellas y arrastrndolas en el mapa. Puedes indicar si la visualizacin del procesador permite direcciones arrastrables estableciendo la propiedad draggable en true. Las rutas de transporte pblico no pueden ser arrastrables. Cuando las rutas son arrastrables, el usuario puede seleccionar cualquier punto de la ruta (o hito) del resultado devuelto y mover el componente indicado a una nueva ubicacin. El objeto DirectionsRenderer se actualizar de forma dinmica para mostrar la ruta modificada. Tras la publicacin, se aadir un hito de transicin al mapa (que se indicar con un pequeo marcador blanco). Si seleccionas y desplazas un fragmento de la ruta se modificar ese tramo de la misma, mientras que si seleccionas y mueves un marcador de hito (incluidos los puntos de inicio y fin) se modificar el tramo de la ruta que pase por ese hito. Debido a que las rutas arrastrables se modifican y se procesan en el lado del cliente, es posible que quieras controlar y gestionar el evento directions_changed en el objeto DirectionsRenderer para recibir una notificacin cuando el usuario modifique las rutas mostradas. El fragmento de cdigo que aparece a continuacin permite mostrar un recorrido de ida y vuelta desde Sdney hasta el interior de Nueva Gales del Sur (Australia). El cdigo realiza el seguimiento del evento directions_changed para actualizar la distancia total de todos los tramos del trayecto. var rendererOptions = { draggable: true }; var directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);; var directionsService = new google.maps.DirectionsService(); var map; var australia = new google.maps.LatLng (-25.274398, 133.775136); function initialize() {
https://developers.google.com/maps/documentation/javascript/directions
14/15
2/04/13
Servicio de rutas - Versin 3 del API de JavaScript de Google Maps Google Developers
var mapOptions = { zoom: 7, mapTypeId: google.maps.MapTypeId .ROADMAP, center: australia }; map = new google.maps.Map (document.getElementById("map_canvas"), mapOptions); directionsDisplay.setMap(map); directionsDisplay.setPanel(document.getElementById("directionsPanel")); google.maps.event .addListener(directionsDisplay, 'directions_changed', function () { computeTotalDistance(directionsDisplay.directions); }); calcRoute(); } function calcRoute() { var request = { origin: "Sydney, NSW", destination: "Sydney, NSW", waypoints:[{location: "Bourke, NSW"}, {location: "Broken Hill, NSW"}], travelMode: google.maps.TravelMode.DRIVING }; directionsService.route(request, function (response, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(response); } }); } function computeTotalDistance(result) { var total = 0; var myroute = result.routes[0]; for (i = 0; i < myroute.legs.length; i++) { total += myroute.legs[i].distance.value; } total = total / 1000. document.getElementById("total").innerHTML = total + " km"; } Ver ejemplo (directions-draggable.html)
Condiciones de servicio
Poltica de privacidad
Empleo
espaol
https://developers.google.com/maps/documentation/javascript/directions
15/15