Sie sind auf Seite 1von 17

Iniciar sesin

Versin 3 del API de X Buscar

Productos

Versin 3 del API de JavaScript de Google Maps

Versin 3 del API de JavaScript de Google Maps


Gua para
desarrolladores

Informar de un problema en la documentacin

Servicio de rutas

Introduccin
Lmites de uso y
facturacin
Conceptos
Eventos
Controles
Estilos
Superposiciones
Capas
Tipos de mapas
Servicios
Rutas
Matriz de distancia
Elevacin
Codificacin
geogrfica
Imgenes con nivel
de zoom mximo

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.

Street View
Bibliotecas
Referencia del API

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").

Ejemplos de cdigo
Ms recursos

Solicitudes de rutas

Blog
Foro
Preguntas frecuentes

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.

---------API de Google Maps for


Business
Servicios web del API de
Google Maps

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:

API de Google Places


API de Google Static
Maps
API de imgenes de
converted by Web2PDFConvert.com

Street View

{
origin: LatLng | String,
destination: LatLng | String,
travelMode: TravelMode,
transitOptions: TransitOptions,
unitSystem: UnitSystem,
waypoints[]: DirectionsWaypoint,
optimizeWaypoints: Boolean,
provideRouteAlternatives: Boolean,
avoidHighways: Boolean,
avoidTolls: Boolean
region: String

API de Google Earth


API obsoletas

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:

converted by Web2PDFConvert.com

{
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
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
DirectionsRendererque debes visualizar si no utilizas el procesador predeterminado DirectionsResult.

Opciones de transporte pblico


Actualmente, el servicio de transporte pblico est en perodo de prueba. Durante esta fase, implementaremos lmites
para evitar abusos del API. Finalmente, estableceremos un lmite en el nmero total de consultas por carga de mapa
para que se realice un uso responsable del API.
Las opciones disponibles para una solicitud de rutas vara segn el modo de transporte. Cuando se soliciten rutas de
transporte pblico, las opciones avoidHighways, avoidTolls, waypoints[] y optimizeWaypoints se ignorarn. Puedes establecer
opciones especficas de rutas de transporte pblico mediante el objeto literal TransitOptions.
Las rutas de transporte pblico varan segn los valores temporales. Las rutas solo se devolvern para valores temporales
futuros.
El objeto literal TransitOptions contiene los siguientes campos:
{
departureTime: Date,
arrivalTime: Date
}

A continuacin, se explican estos campos:


departureTime (opcional): especifica la fecha de salida deseada como un objeto Date. El campo departureTime se
ignorar si se especifica arrivalTime. Si no se especifica ni departureTime ni arrivalTime, se establecer la el valor

temporal actual de forma predeterminada.


arrivalTime (opcional): especifica la fecha de llegada deseada como un objeto Date. Si se especifica la fecha de
llegada, la fecha de salida se ignorar.
converted by Web2PDFConvert.com

A continuacin, se muestra un ejemplo de solicitud de rutas (DirectionsRequest) mediante transporte pblico:

{
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 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.

Cmo especificar la regin para obtener rutas


El servicio de rutas del API de Google Maps devuelve resultados de rutas en funcin del dominio (la regin o el pas) desde el
que se carg la solicitud de inicializacin de JavaScript. Dado que la mayora de los usuarios cargan
http://maps.google.com/, esto supone la definicin del dominio implcito correspondiente a Estados Unidos. Si cargas la
solicitud de inicializacin desde un dominio compatible diferente, puede que los resultados se vean influidos por dicho
dominio. Por ejemplo, las bsquedas de "San Francisco" pueden devolver diferentes resultados en funcin de que las
aplicaciones carguen http://maps.google.com/ (Estados Unidos) o http://maps.google.es/ (Espaa).
Tambin puedes especificar que el servicio de rutas devuelva resultados asociados a una regin en concreto mediante el
parmetro region. Este parmetro toma un cdigo de regin, especificado como una subetiqueta region en lenguaje IANA.
En la mayora de los casos, estas etiquetas se asignan directamente a valores de dos caracteres ccTLD ("dominio de nivel
superior") como, por ejemplo, "uk" en "co.uk". En algunos casos, la etiqueta region tambin admite cdigos ISO-3166-1, que
a veces son diferentes de los valores ccTLD (por ejemplo, "GB" para "Gran Bretaa").
Consulta la hoja de clculo de cobertura de Google Maps para determinar en qu medida admite un pas la presentacin de
rutas.

Cmo procesar rutas


El inicio de una solicitud de rutas al servicio DirectionsService mediante el mtodo route() requiere la transmisin de una
devolucin de llamada que se ejecuta al finalizar la solicitud de servicio. Esta devolucin de llamada devuelve
DirectionsResult y un cdigo DirectionsStatus en la respuesta.

Estado de la consulta de rutas


DirectionsStatus puede devolver los siguientes valores:
OK indica que la respuesta contiene un resultado DirectionsResult vlido.
NOT_FOUND indica que al menos una de las ubicaciones especificadas en el origen, el destino o los hitos de la

solicitud no se pudo codificar de forma geogrfica.


ZERO_RESULTSindica que no se pudo encontrar ninguna ruta entre el origen y el destino.
MAX_WAYPOINTS_EXCEEDED indica que se proporcionaron demasiados hitos (DirectionsWaypoint) en
DirectionsRequest. El nmero mximo de hitos permitido es ocho, adems del origen y del destino. Los clientes del
converted by Web2PDFConvert.com

API de Google Maps for Business pueden utilizar hasta 23 hitos, adems del origen y del destino. En las rutas de
transporte pblico no se admiten hitos.
INVALID_REQUEST indica que la solicitud DirectionsRequest proporcionada no era vlida. Las causas ms
comunes de este cdigo de error son las solicitudes que no incluyen un origen o un destino, o las solicitudes de
transporte pblico que incluyen hitos.
OVER_QUERY_LIMIT indica que la pgina web ha enviado demasiadas solicitudes dentro del perodo de tiempo
permitido.
REQUEST_DENIED indica que no se permite el uso del servicio de rutas en la pgina web.
UNKNOWN_ERROR indica que no se ha podido procesar una solicitud de rutas debido a un error del servidor. Puede
que la solicitud se realice correctamente si lo intentas de nuevo.
Debes asegurarte de que la consulta de rutas devuelva resultados vlidos. Para ello, comprueba este valor antes de procesar
el resultado.

Cmo visualizar DirectionsResult


DirectionsResult contiene el resultado de la consulta de rutas, que puedes controlar directamente o transmitirlo a un objeto
DirectionsRenderer, que mostrar automticamente el resultado en un mapa.

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:

converted by Web2PDFConvert.com

<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>
<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):

converted by Web2PDFConvert.com

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 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:

converted by Web2PDFConvert.com

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.
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.
converted by Web2PDFConvert.com

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.
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.

converted by Web2PDFConvert.com

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.

Informacin especfica sobre transporte pblico


Las rutas de transporte pblico devuelven informacin adicional que no es relevante para otros medios de transporte. Estas
propiedades adicionales se exponen mediante el objeto TransitDetails, que se devuelve como propiedad de DirectionsStep.
Desde el objeto TransitDetails puedes acceder a informacin adicional sobre los objetos TransitStop, TransitLine,
TransitAgency y VehicleType, tal y como se describe a continuacin.

Detalles de transporte pblico


El objeto TransitDetails expone las siguientes propiedades:
arrival_stop contiene un objeto TransitStop que representa la estacin o parada de llegada e incluye las siguientes

propiedades:
name: nombre de la estacin o la parada (por ejemplo, "Union Square"),
location: ubicacin de la estacin o parada de transporte pblico, representada como un objeto LatLng.
departure_stop contiene un objeto TransitStop que representa la estacin o parada de salida.
arrival_time contiene la hora de llegada, especificada 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 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.
converted by Web2PDFConvert.com

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.

Lnea de transporte pblico


El objeto TransitLine expone las siguientes propiedades:
name contiene el nombre completo de la lnea de transporte pblico. Por ejemplo: "7 Avenue Express" o "14th St

Crosstown".
short_name contiene el nombre abreviado de la lnea de transporte pblico. Generalmente este ser un nmero de

lnea como, por ejemplo, "2" o "M14".


agencies incluye un conjunto de objetos de tipo TransitAgency. Cada uno de los objetos TransitAgency proporciona
informacin sobre el operador de la lnea e incluye las siguientes propiedades:
name contiene el nombre de la empresa de transporte pblico.
url contiene la URL de la empresa de transporte pblico.
phone contiene el nmero de telfono de la empresa de transporte pblico.
Si procesas rutas de transporte pblico de forma manual en lugar de utilizar el objeto DirectionsRenderer, debes
mostrar los nombres y las URL de las empresas de transporte pblico que prestan sus servicios para realizar los
recorridos que aparecen en los resultados.
url contiene la URL de esta lnea de transporte pblico tal y como la proporciona la empresa de transporte.
icon contiene una URL correspondiente al icono asociado a esta lnea. La mayora de las ciudades utiliza iconos

genricos que varan segn el tipo de vehculo. Algunas lneas de transporte como, por ejemplo, el sistema de metro
de Nueva York, tienen iconos especficos para cada lnea.
color contiene el color que se utiliza normalmente para sealizar el transporte en cuestin. El color se especificar
como una cadena hexadecimal similar a esta: #FF0033.
text_color contiene el color del texto que se utiliza normalmente para sealizar la lnea en cuestin. El color se
especificar como una cadena hexadecimal.
vehicle contiene un objeto Vehicle que incluye la siguientes propiedades:
name contiene el nombre del vehculo de la lnea. Por ejemplo: "Metro".
type contiene el tipo de vehculo utilizado en la lnea en cuestin. Para obtener una lista completa de los valores
admitidos, consulta la documentacin sobre el tipo de vehculo.
icon contiene una URL correspondiente al icono asociado normalmente al tipo de vehculo en cuestin.
local_ icon contiene una URL correspondiente al icono asociado al tipo de vehculo en cuestin a nivel local.

Tipo de vehculo
El objeto VehicleType expone las siguientes propiedades:
Valor

Definicin

VehicleType.RAIL

Ferrocarril

VehicleType.METRO_RAIL

Tren ligero

VehicleType.SUBWAY

Metro ligero

VehicleType.TRAM

Tranva

VehicleType.MONORAIL

Monorral

VehicleType.HEAVY_RAIL

Tren pesado

VehicleType.COMMUTER_TRAIN

Tren de cercanas

VehicleType.HIGH_SPEED_TRAIN

Tren de alta velocidad

VehicleType.BUS

Autobs

VehicleType.INTERCITY_BUS

Autocar

converted by Web2PDFConvert.com

VehicleType.TROLLEYBUS

Trolebs

VehicleType.SHARE_TAXI

Taxi colectivo (vehculo que recoge y deposita a los pasajeros en cualquier lugar
de la ruta que se le ha asignado)

VehicleType.FERRY

Ferry

VehicleType.CABLE_CAR

Telefrico (vehculo que se desplaza por un cable, generalmente sobre el suelo;


estos vehculos pueden ser del tipo VehicleType.GONDOLA_LIFT)

VehicleType.GONDOLA_LIFT

Telecabina (telefrico)

VehicleType.FUNICULAR

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.

Cmo inspeccionar DirectionsResults


Los componentes DirectionsResults (DirectionsRoute, DirectionsLeg, DirectionsStep y TransitDetails) se pueden
inspeccionar y utilizar al analizar cualquier respuesta de rutas.
Importante: si procesas rutas de transporte pblico de forma manual en lugar de utilizar el objeto DirectionsRenderer,
debes mostrar los nombres y las URL de las empresas de transporte pblico que prestan sus servicios para realizar los
recorridos que aparecen en los resultados.
En el siguiente ejemplo, se muestran las rutas para llegar a pie entre determinadas atracciones tursticas de la ciudad de
Nueva York. Inspeccionamos el componente DirectionsStep de la ruta para aadir marcadores en cada paso y asociamos
informacin a una ventana de informacin (InfoWindow) con instrucciones para dichos pasos.
Como calculamos rutas para llegar a pie, tambin mostraremos advertencias al usuario en un panel <div>
independiente.
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();
}
function calcRoute() {
// First, clear out any existing markerArray
// from previous calculations.
for (i = 0; i < markerArray.length; i++) {
converted by Web2PDFConvert.com

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:

converted by Web2PDFConvert.com

<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>
<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)

Cmo usar hitos en las rutas


Tal y como se indica en la seccin relativa a DirectionsRequest, tambin puedes especificar hitos (de tipo
DirectionsWaypoint) al calcular rutas con el servicio de rutas para llegar a pie, en bicicleta o en coche. Los hitos no estn
disponibles en las rutas de transporte pblico. Los hitos permiten calcular rutas que pasen por ubicaciones adicionales, de
modo que la ruta devuelta atraviese hitos concretos.
El nmero mximo de hitos permitido es ocho, adems del origen y del destino. Los clientes del API de Google Maps for
Business pueden utilizar hasta 23 hitos, adems del origen y del destino. En las rutas de transporte pblico no se
admiten hitos.
Un objeto waypoint consta de los siguientes campos:
location (obligatorio): especifica la direccin del hito.
stopover (opcional): indica si el hito es una parada real en la ruta (true) o solo una preferencia que marca el deseo de
pasar por la ubicacin especificada (false). El valor predeterminado de las paradas es true.

De forma predeterminada, el servicio de rutas calcula una ruta que atraviese los hitos especificados en el orden indicado.
Opcionalmente, puedes transmitir objetos optimizeWaypoints: true en el elemento DirectionsRequest para que el servicio de
rutas reordene los hitos de forma ms eficaz para optimizar la ruta proporcionada. Esta optimizacin es el resultado de
aplicar el Problema del viajante. Todos los hitos deben definirse como paradas para que el servicio de rutas optimice la ruta.
Si el servicio de rutas optimiza el orden de los hitos de acuerdo a tus instrucciones, se devolver el nuevo orden en el campo
optimized_waypoints_order del objeto DirectionsResult.
En el ejemplo siguiente, se calculan diferentes rutas a travs de Estados Unidos que utilizan diversos puntos de partida,
puntos de llegada e hitos. Para seleccionar varios hitos, pulsa la tecla Ctrl mientras haces clic en cada uno de los elementos
de la lista. Ten en cuenta que inspeccionamos routes.start_address y routes.end_address para disponer del texto
correspondiente a todos los puntos de partida y de llegada de la ruta.

converted by Web2PDFConvert.com

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: 6,
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 waypts = [];
var checkboxArray = document.getElementById("waypoints");
for (var i = 0; i < checkboxArray.length; i++) {
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
converted by Web2PDFConvert.com

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() {
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)

A menos que se indique lo contrario, el contenido de esta pgina tiene la Licencia de Creative Commons Atribucin 3.0, y las
converted by Web2PDFConvert.com

muestras de cdigo tienen la Licencia Apache 2.0. Para obtener ms informacin, consulta las Polticas del sitio.
Last updated Enero 31, 2013.

Search
Seguir

+10m

Explore

Products
Showcase
Events
Communities
Connect

Blog
Google+ Community
YouTube Channel
Informar de un problema
Jobs
Programs

Groups
Experts
Startups
Women Techmakers
Top Products

Ads
Analytics
Android
Cast
Chrome
Cloud
Glass
Google Apps
Google+
Maps
Wallet
YouTube
Terms of Use | Privacy Policy

espaol

converted by Web2PDFConvert.com

Das könnte Ihnen auch gefallen