Cálculo de rutas

Web services

Documentación sobre la funcionalidad Cálculo de rutas disponible a través del webservice HTTP-JSON/XML de la plataforma CERCALIA.

La URL base a utilizar es:

* Clave de seguridad. Es la misma KEY que para la API de mapas de Cercalia

Las peticiones HTTP se pueden enviar en GET o POST
Las respuestas son en formato JSON / XML

Ruta en coche

Petición:

Ejemplo de petición:

&cmd=route&report=0&mo_o=41.120380332,1.244894304&mo_d=39.584958220,2.663190407&mocs=gdd&weight=time&iweight=realtime,toll,ferry&stagegeometry=0&stagegeometrytolerance=0&stagegeometrysrs=EPSG:4326

Donde:

  • cmd= tipo de petición de cercalia
  • report=0 / report = 1 indica si se quiere obtener o no el report textual de ruta. Si no es necesario, para una respuesta más rápida utilizar &report=0
  • mo_o= coordenadas origen (Y,X)
  • mo_d= coordenadas destino (Y,X)
  • mo_1= punto de paso 1 (mo_1), 2 (mo_2), etc
  • mocs=gdd indica que las coordenadas de origen / destino están en geográficas
  • weight= tipo de ruta:
    • time (más rápida)
    • distance (más corta)
    • money (evitar peajes)
    • realtime (más rápida, en base al estado actual del tráfico y las vías cerradas).
  • iweight= proporciona información adicional sobre el cálculo de ruta. Permite indicar diferentes parámetros, separados por coma:
    • realtime: Utilizar este parámetro para obtener el tiempo de la ruta, en base al estado actual del tráfico.
    • toll: Utilizar este parámetro para obtener si la ruta pasa por un tramo de vía de peaje. Utilizar solo si &report=0
    • ferry: Utilizar este parámetro para obtener si la ruta pasa por un tramo de ferry. Utilizar solo si &report=0
  • stagegeometry=1/0 Incluir o no la geometría de la ruta (polilínea) en formato WKT. En caso que la petición incluya puntos de paso, la geometría se divide para cada etapa
  • stagegeometrytolerance=10 Indica la tolerancia (simplificación) en metros para la geometría del parámetro anterior. Por defecto: 100 m
  • stagegeometrysrs=EPSG:4326 Sistema de coordenadas de la geometría de la ruta (polilínea). EPSG:4326 = coordenadas geográficas

 

    Cálculo de rutas en función de la hora de salida:

    • weight= tipo de ruta:
      • sptime (más rápida en función de la hora de salida). Es obligatorio indicar también el parámetro departuretime
      • spmoney (más rápida en función de la hora de salida sin pasar por vías de peaje).Es obligatorio indicar también el parámetro departuretime
    • departuretime= Fecha y hora de salida en formato ISO 8601. Ejemplo para hora UTC:  2019-10-16T07:30:12Z  *Obligatorio si se indican los valores de weight indicados.


    Parámetros específicos para tener en cuenta restricciones temporales (vías cerradas determinados días y/o franjas horarias):

    Parámetro Descripción
    TRSTART Parámetro para indicar la fecha y hora de salida medido en milisegundos desde epoch (1 de Enero de 1970 UTC). Sólo se tiene en cuenta para evitar las restricciones temporales.
    TRDEPARTURETIME Parámetro para indicar la fecha y hora de salida en formato ISO 8601. Ejemplo para hora UTC:  2007-04-05T14:30:12Z. Sólo se tiene en cuenta para evitar las restricciones temporales. Se convierte a formato TRSTART de forma interna.
    TRINFODATE Parámetro para indicar la fecha salida, e informar (no evitar) de las restricciones temporales formato AAAAMMDD.
    TRINFODAYS Número de días a partir de TRINFODATE sobre las que informaran de las restricciones temporales. (Por defecto 1)

     

    Parámetros opcionales:

    • alternatives= el cálculo de ruta intenta devolver más de una ruta/recorrido para el mismo cálculo. Sólo se aplica en rutas optimizadas por time y distance. Por defecto: false
    • direction= Especifica como escoger el sentido de salida/llegada en las paradas. Por defecto: default.
      • default: Si es una carretera poco importante se escogen los dos sentidos. Si es importante se escoge aquel en el que parada quede a la derecha del tramo. Si se especifica un ángulo se escoge la dirección más parecida al ángulo.
      • both: Se escogen los dos sentidos de la carretera
    • blockrealtime=permite indicar si se debe impedir el paso por carreteras bloquedadas por obras u otras afectaciones. Este bloqueo se aplica aunque no existan trayectos alternativos: en caso de que no exista trayecto posible, se devolverá error. Por defecto: false.
    • avoidblockrealtime=permite indicar si se debe impedir el paso por carreteras bloquedadas por obras u otras afectaciones. Este bloqueo solo se aplica si existen trayectos alternativos. Por defecto: true.
    • blockferries=impide el paso por ferries. Por defecto: false.
    • avoidferries=evita el uso de ferries, pero los utiliza en caso que no existan rutas alternativas. Por defecto: true.
    • mindist=distancia mínima (en metros) de las subetapas del report textual de ruta, para evitar ser agrupadas con las subetapas consecutivas. 
    • lang= idioma del texto del report, en caso de &report=1.

    Posibles valores lang:

    Valor Significado
    es Español
    fr Francés
    de Alemán
    it Italiano
    ca Catalán
    pt Portugués
    en Inglés
    nl Holandés

     

    Parámetros avanzados: optimización de ruta:

    • reorder=1 Utilizar este parámetro para optimizar una ruta por distancia o tiempo, con un máximo de 100 paradas o puntos de paso. El origen y el destino se mantienen fijos
    • Franjas horarias de visita:
    Valor Significado
    STARTWINDOWx_1 Fecha y hora de inicio de la primera franja horaria en la que se permite llegar a la parada X en formato ISO 8601. Sólo se usa en rutas calculadas con reorder=1. Por ejemplo: &startwindow1_1=2021-10-21T07:30:00Z
    ENDWINDOWx_1 Fecha y hora del fin de la primera franja horaria en la que se permite llegar a la parada X en formato ISO 8601. Sólo se usa en rutas calculadas con reorder=1. Por ejemplo: &endwindow1_1=2021-10-21T07:40:00Z
    STARTWINDOWx_2 Fecha y hora de inicio de la segunda franja horaria en la que se permite llegar a la parada X en formato ISO 8601. Sólo se usa en rutas calculadas con reorder=1. Por ejemplo: &startwindow1_2=2021-10-21T17:30:00Z
    ENDWINDOWx_2 Fecha y hora del fin de la segunda franja horaria en la que se permite llegar a la parada X en formato ISO 8601. Sólo se usa en rutas calculadas con reorder=1. Por ejemplo: &endwindow1_2=2021-10-21T22:40:00Z
    • duration_x Valor de duración de la parada, en segundos. Si no se especifica se utiliza el valor por defecto: 0
    • priority_x Valor de 0 a 100 indicando la prioridad para realizar esta parada. Sólo se usa en rutas calculadas con reorder=1. Si el calculador no puede satisfacer todas las franjas horarias. Devolverá una ruta con las paradas que su suma de prioridades sea más alta. 

    Respuesta:

    <cercalia cmd="route" version="1">
    	<route dest="%" dist="356.697" hasferries="1" hastolls="1" icost="67707521,125,3" id="16474053,16410248|0.09513969,0.32824484" iweight="realtime,toll,ferry" orig="%" realtime="18:50:27" time="18:48:27" weight="time">
    		<stoplist>
    			<stop by="false" id="o">
    				<mo id="">
    					<coord x="1.24489430" y="41.120380332"/>
    				</mo>
    			</stop>
    			<stop by="false" id="d">
    				<mo id="">
    					<coord x="2.663190407" y="39.584958220"/>
    				</mo>
    			</stop>
    		</stoplist>
    		<getpoicats/>
    		<stages>
    			<stage dest="%" dest_stop_id="d" dist="356.697" orig="%" orig_stop_id="o" realtime="18:50:27" time="18:48:27" weight=""/>
    		</stages>
    	</route>
    	<server>http://c6.cercalia.com</server>
    </cercalia>
    

    Donde:

    • id= ID de ruta, necesario para pedir la geometría de la ruta
    • dist= distancia ruta, en km
    • time= tiempo total de la ruta (HH:MM:SS)*
    • realtime= tiempo total de la ruta, en base al estado actual del tráfico (HH:MM:SS)*, si iweight=realtime
    • hasferries= indica si la ruta pasa por un tramo de ferry (se devuelve si en la petición se añade &iweight=ferry y &report=0)
    • hastolls= indica si la ruta pasa por un tramo de vía de peaje (se devuelve si en la petición se añade &iweight=toll y &report=0)

    * Nota:

    Para trayectos que duren más de un día, el tiempo no se reparte en años, meses y días, sino que queda todo acumulado en las horas. Por ejemplo: 2 días se expresaría como "48:00:00", 10 días se expresaría como "240:00:00".


    Stagegeometry:

    El XML de respuesta de Cercalia contiene el elemento WKT con la geometría expresada en "Well-known Text Representation for Geometry".

    Geometry Type Text Literal Representation Comment
    Point 'POINT (10 10)' a Point
    LineString 'LINESTRING ( 10 10, 20 20, 30 40)' a LineString with 3 points
    Polygon 'POLYGON ((10 10, 10 20, 20 20, 20 15, 10 10))' a Polygon with 1 exteriorRing and 0 interiorRings
    Multipoint 'MULTIPOINT (10 10, 20 20)' a MultiPoint with 2 points
    MultiLineString 'MULTILINESTRING ((10 10, 20 20), (15 15, 30 15))' a MultiLineString with 2 linestrings
    MultiPolygon 'MULTIPOLYGON ( ((10 10, 10 20, 20 20, 20 15, 10 10)), ((60 60, 70 70, 80 60, 60 60 ) ))' a MultiPolygon with 2 polygons
    GeomCollection 'GEOMETRYCOLLECTION (POINT (10 10), POINT (30 30), LINESTRING (15 15, 20 20))' a GeometryCollection consisting of 2 Point values and a LineString value

    Para mayor información consulte el documento OpenGIS® Implementation Specification for Geographic information - Simple feature access - Part 1: Common architecture.

    En nuestro caso las geometrías devueltas siempre serán de tipo LineString (excepto si se piden subetapas no consecutivas o hay agrupaciones de subetapas, casos en los que se devolverá el tipo MultiLineString).

    Report textual de ruta:

    En caso de activar el report (&report=1), se incluirá la descripción textual de la ruta. El idioma del texto vendrá asociado al parámetro &lang=.

    <cercalia cmd="route" version="1">
    	<route coste_v1="0.0" coste_v2="0.0" coste_v3="0.0" dest="%" dist="1.2" icost="223570" id="13171123,13177702|0.18124574540503743,0.8983606557377048|" iweight="realtime" lang="es" mindist="1000" orig="%" realtime="00:03:43" time="00:03:33" weight="time">
    		<stoplist>
    			<stop by="false" id="o">
    				<mo id="">
    					<coord x="-413030" y="4900888"/>
    				</mo>
    			</stop>
    			<stop by="false" id="d">
    				<mo id="">
    					<coord x="-411582" y="4900474"/>
    				</mo>
    			</stop>
    		</stoplist>
    		<getpoicats/>
    		<stages>
    			<stage coste_v1="0.0" coste_v2="0.0" coste_v3="0.0" dest="%" dest_stop_id="d" dist="1.2" id="1,2,3,4,5,6,7" orig="%" orig_stop_id="o" time="00:03:33">
    				<wkt/>
    				<sub_stage angle="353.0" id="1,2,3,4,5" name="Calle de Sagasta" type="L">
    					<start x="-413030" y="4900888"/>
    					<end x="-411665" y="4900635"/>
    					<time>00:02:52</time>
    					<time_sum>00:02:52</time_sum>
    					<dist>1.0</dist>
    					<dist_sum>1.0</dist_sum>
    					<time_seconds>173</time_seconds>
    					<dist_meters>1049</dist_meters>
    					<view>0</view>
    					<desc>
    					Partir de <b>%</b> por Calle de Alberto Aguilera hasta llegar al cruce con Glorieta de Ruiz Jiménez.<br>Seguir recto por Glorieta de Ruiz Jiménez hasta llegar al cruce con Calle de Carranza.<br>Seguir recto por Calle de Carranza hasta llegar al cruce con Glorieta de Bilbao.<br>Girar hacia la derecha y seguir por Glorieta de Bilbao hasta llegar al cruce con Calle de Sagasta.<br>Seguir recto por Calle de Sagasta hasta llegar al cruce con Calle de Antonio Flores
    					</desc>
    					<municipios/>
    					<poilist/>
    					<arealist>
    						<area name="Madrid" type="U"/>
    					</arealist>
    				</sub_stage>
    				<sub_stage angle="65.0" id="6,7" name="Calle de Serrano Anguita" type="L">
    					<start x="-411665" y="4900635"/>
    					<end x="-411582" y="4900474"/>
    					<time>00:00:40</time>
    					<time_sum>00:03:33</time_sum>
    					<dist>0.2</dist>
    					<dist_sum>1.2</dist_sum>
    					<time_seconds>41</time_seconds>
    					<dist_meters>166</dist_meters>
    					<view>0</view>
    					<desc>
    					Girar hacia la derecha y seguir por Calle de Antonio Flores hasta llegar al cruce con Calle de Serrano Anguita.<br>Girar hacia la izquierda y seguir por Calle de Serrano Anguita en dirección a <b>%</b>.
    					</desc>
    					<municipios/>
    					<poilist/>
    					<arealist>
    						<area name="Madrid" type="U"/>
    					</arealist>
    				</sub_stage>
    			</stage>
    		</stages>
    	</route>
    	<server>http://cercalia-tomcat-lbs-instance4:8080</server>
    </cercalia>
    

    Ruta a pie

    El cálculo de rutas a pie se realiza en los servidores estándar de Cercalia.

    Petición:

    Ejemplo de petición:

    &cmd=route&mo_o=[2.825707,41.973398|o]&mo_d=[2.825536,41.970830|d]&mocs=4326&weight=time&stagegeometry=true&stagegeometrysrs=EPSG:4326&net=espw&direction=both&report=0

    Donde:

    • cmd= tipo de petición de cercalia
    • report=0 indica que no se quiere obtener el report textual de ruta (obligatorio para que no dé error)
    • mo_o= coordenadas origen (Y,X)
    • mo_d= coordenadas destino (Y,X)
    • weight= tipo de ruta:
      • time (más rápida)
      • distance (más corta)
    • stagegeometry=1 Indica que la respuesta debe incluir una geometría en formato WKT. En caso que la petición incluya puntos de paso, la geometría se divide para cada etapa
    • stagegeometrysrs=EPSG:4326 indica que la geometría de la polilínia se devolverá en coordenadas geográficas
    • mocs=epsg:4326 indica que las coordenadas de origen / destino están en geográfica
    • net= red/ país a utilizar (espw, o usaw)
    • direction=both obligatorio

    Opcional:

    • mo_1,n= coordenadas puntos de paso (Y,X) -> 1, ... n

    Parámetros avanzados: optimización de ruta:

    • reorder=1 Utilizar este parámetro para optimizar una ruta por distancia o tiempo, con un máximo de 100 paradas o puntos de paso. El origen y el destino se mantienen fijos
    • Franjas horarias de visita:
    Valor Significado
    STARTWINDOWx_1 Fecha y hora de inicio de la primera franja horaria en la que se permite llegar a la parada X en formato ISO 8601. Sólo se usa en rutas calculadas con reorder=1. Por ejemplo: &startwindow1_1=2021-10-21T07:30:00Z
    ENDWINDOWx_1 Fecha y hora del fin de la primera franja horaria en la que se permite llegar a la parada X en formato ISO 8601. Sólo se usa en rutas calculadas con reorder=1. Por ejemplo: &endwindow1_1=2021-10-21T07:40:00Z
    STARTWINDOWx_2 Fecha y hora de inicio de la segunda franja horaria en la que se permite llegar a la parada X en formato ISO 8601. Sólo se usa en rutas calculadas con reorder=1. Por ejemplo: &startwindow1_2=2021-10-21T17:30:00Z
    ENDWINDOWx_2 Fecha y hora del fin de la segunda franja horaria en la que se permite llegar a la parada X en formato ISO 8601. Sólo se usa en rutas calculadas con reorder=1. Por ejemplo: &endwindow1_2=2021-10-21T22:40:00Z
    • duration_x Valor de duración de la parada, en segundos. Si no se especifica se utiliza el valor por defecto: 0
    • priority_x Valor de 0 a 100 indicando la prioridad para realizar esta parada. Sólo se usa en rutas calculadas con reorder=1. Si el calculador no puede satisfacer todas las franjas horarias. Devolverá una ruta con las paradas que su suma de prioridades sea más alta. 

    Respuesta:

      <cercalia cmd="route" version="1">
    	<route dest="d" dist="0.306" id="9911054,9868590|0.6062123,0.5|espw" orig="o" time="00:04:35" weight="time">
    		<stoplist>
    			<stop by="false" id="o">
    				<mo id="o">
    					<coord x="2.825704625115002" y="41.97339605714581"/>
    				</mo>
    			</stop>
    			<stop by="false" id="d">
    				<mo id="d">
    					<coord x="2.8255339452110193" y="41.97082858283375"/>
    				</mo>
    			</stop>
    		</stoplist>
    		<getpoicats/>
    		<stages>
    			<stage dest="d" dest_stop_id="d" dist="0.306" orig="o" orig_stop_id="o" time="00:04:35" weight="time">
    				<wkt cs="EPSG:4326" tolerance="100.0">
    				LINESTRING (2.825668865971416 41.9734025479364, 2.8255968272809073 41.97318154631235, 2.8255159789053366 41.97294692425489, 2.82554292836386 41.97229668143117, 2.8258303892547785 41.97087550888706, 2.8255339452110193 41.97082858283375)
    				</wkt>
    			</stage>
    		</stages>
    	</route>
    	<server>lb3.cercalia.com</server>
    </cercalia>
    
    

    Donde:

    • id= ID de ruta, necesario para pedir la geometría de la ruta
    • dist= distancia ruta, en km
    • time= tiempo total de la ruta (HH:MM:SS)*

    * Nota:

    Para trayectos que duren más de un día, el tiempo no se reparte en años, meses y días, sino que queda todo acumulado en las horas. Por ejemplo: 2 días se expresaría como "48:00:00", 10 días se expresaría como "240:00:00".


    Stagegeometry:

    El XML de respuesta de Cercalia contiene el elemento WKT con la geometría expresada en "Well-known Text Representation for Geometry".

    Geometry Type Text Literal Representation Comment
    Point 'POINT (10 10)' a Point
    LineString 'LINESTRING ( 10 10, 20 20, 30 40)' a LineString with 3 points
    Polygon 'POLYGON ((10 10, 10 20, 20 20, 20 15, 10 10))' a Polygon with 1 exteriorRing and 0 interiorRings
    Multipoint 'MULTIPOINT (10 10, 20 20)' a MultiPoint with 2 points
    MultiLineString 'MULTILINESTRING ((10 10, 20 20), (15 15, 30 15))' a MultiLineString with 2 linestrings
    MultiPolygon 'MULTIPOLYGON ( ((10 10, 10 20, 20 20, 20 15, 10 10)), ((60 60, 70 70, 80 60, 60 60 ) ))' a MultiPolygon with 2 polygons
    GeomCollection 'GEOMETRYCOLLECTION (POINT (10 10), POINT (30 30), LINESTRING (15 15, 20 20))' a GeometryCollection consisting of 2 Point values and a LineString value

    Para mayor información consulte el documento OpenGIS® Implementation Specification for Geographic information - Simple feature access - Part 1: Common architecture.

    En nuestro caso las geometrías devueltas siempre serán de tipo LineString (excepto si se piden subetapas no consecutivas o hay agrupaciones de subetapas, casos en los que se devolverá el tipo MultiLineString).

    Ruta para camiones (truck routing)

    Funcionalidad que permite obtener la ruta específica para camiones. Incluye:

    • Calcular la distancia y tiempo parcial y acumulado entre cada punto.
    • Obtener el recorrido en formato polilínea (WKT).
    • Obtener el coste de peaje, en caso de pasar por vías de peaje.
    • Especificar las características físicas del camión (altura, peso, longitud, ancho), para que la ruta evite los tramos de vía por los que no puede circular.

    Esta funcionalidad está disponible a través de:

    • Webservice HTTP-JSON

    El formato de la petición & respuesta es el mismo que en el caso de una ruta normal, pero se le añaden unos parámetros específicos para indicar los tipos de restricciones a tener en cuenta.

    Parámetros de petición

    Parámetros comunes de cálculo de ruta:

    • cmd= tipo de petición de cercalia
    • report=0 indica que no se quiere obtener el report textual de ruta (respuesta más rápida)
    • mo_o= coordenadas origen (Y,X)
    • mo_d= coordenadas destino (Y,X)
    • mo_1,n= coordenadas puntos de paso (Y,X) -> 1,...n
    • weight= tipo de ruta:
      • time (más rápida)
      • distance (más corta)
      • money (evitar peajes)
      • realtime (más rápida, en base al estado actual del tráfico y las vías cerradas).
      • timerimp (mercancías peligrosas)
    • iweight= proporciona información adicional sobre el cálculo de ruta. Permite indicar diferentes parámetros, separados por coma:
      • realtime: Utilizar este parámetro para obtener el tiempo de la ruta, en base al estado actual del tráfico.
      • toll: Utilizar este parámetro para obtener si la ruta pasa por un tramo de vía de peaje. Utilizar solo si &report=0
      • ferry: Utilizar este parámetro para obtener si la ruta pasa por un tramo de ferry. Utilizar solo si &report=0
    • mocs=gdd indica que las coordenadas están en geográficas
    • stagegeometry=1/0 Incluir o no la geometría de la ruta (polilínea) en formato WKT. En caso que la petición incluya puntos de paso, la geometría se divide para cada etapa
    • stagegeometrytolerance=10 Indica la tolerancia (simplificación) en metros para la geometría del parámetro anterior. Por defecto: 100 m
    • stagegeometrysrs=EPSG:4326 Sistema de coordenadas de la geometría de la ruta (polilínea). EPSG:4326 = coordenadas geográficas

     

    Parámetros específicos vehículo:

    Para utilizar esta funcionalidad es necesario añadir el parámetro &net=logistics

    Parámetro Descripción
    VWEIGHT Peso del vehículo expresado en toneladas.
    VAXLEWEIGHT Peso máximo de los ejes del vehículo expresado en toneladas.
    VHEIGHT Altura máxima del vehículo expresada en metros.
    VLENGTH Longitud del vehículo expresada en metros.
    VWIDTH Ancho del vehículo expresado en metros.
    VMAXVEL Velocidad máxima del vehículo expresada en Km/h
    BLOCKVWEIGHT Impedir el paso por carreteras restringidas con peso máximo inferior al indicado en el parámetro VWEIGHT. Por defecto false.
    AVOIDVWEIGHT Evitar el paso por carreteras restringidas con peso máximo inferior al indicado en el parámetro VWEIGHT. Por defecto true.
    BLOCKVAXLEWEIGHT Impedir el paso por carreteras restringidas con peso máximo eje inferior al indicado en el parámetro VAXLEWEIGHT. Por defecto false.
    AVOIDVAXLEWEIGHT Evitar el paso por carreteras restringidas con peso máximo eje inferior al indicado en el parámetro VAXLEWEIGHT. Por defecto true.
    BLOCKVHEIGHT Impedir el paso por carreteras restringidas con altura inferior al indicado en el parámetro VHEIGHT. Por defecto false.
    AVOIDVHEIGHT Evitar el paso por carreteras restringidas con altura inferior al indicado en el parámetro VAXLEWEIGHT. Por defecto true.
    BLOCKVLENGTH Impedir el paso por carreteras restringidas con longitud inferior al indicado en el parámetro VLENGTH. Por defecto false.
    AVOIDVLENGTH Evitar el paso por carreteras restringidas con longitud inferior al indicado en el parámetro VLENGTH. Por defecto true.
    BLOCKVWIDTH Impedir el paso por carreteras restringidas con anchura inferior al indicado en el parámetro VWIDTH. Por defecto false.
    AVOIDVWIDTH Evitar el paso por carreteras restringidas con anchura inferior al indicado en el parámetro VWIDTH. Por defecto true.


    Parámetros específicos para tener en cuenta restricciones temporales (vías cerradas determinados días y/o franjas horarias):

    Parámetro Descripción
    TRSTART Parámetro para indicar la fecha y hora de salida medido en milisegundos desde epoch (1 de Enero de 1970 UTC). Sólo se tiene en cuenta para evitar las restricciones temporales.
    TRDEPARTURETIME Parámetro para indicar la fecha y hora de salida en formato ISO 8601. Ejemplo para hora UTC:  2007-04-05T14:30:12Z. Sólo se tiene en cuenta para evitar las restricciones temporales. Se convierte a formato TRSTART de forma interna.
    TRINFODATE Parámetro para indicar la fecha salida, e informar (no evitar) de las restricciones temporales formato AAAAMMDD.
    TRINFODAYS Número de días a partir de TRINFODATE sobre las que informaran de las restricciones temporales. (Por defecto 1)


    Ejemplo de petición:

    &cmd=route&net=logistics&mo_o=40.418372,-3.676642&mo_d=40.432961,-3.649504&mo_1=40.429048,-3.666815&mo_2=40.429446,-3.653268&weight=time&VWEIGHT=12&mocs=gdd


    Parámetros opcionales:

    • direction= Especifica como escoger el sentido de salida/llegada en las paradas. Por defecto: default.
      • default: Si es una carretera poco importante se escogen los dos sentidos. Si es importante se escoge aquel en el que parada quede a la derecha del tramo. Si se especifica un ángulo se escoge la dirección más parecida al ángulo.
      • both: Se escogen los dos sentidos de la carretera
    • blockrealtime=permite indicar si se debe impedir el paso por carreteras bloquedadas por obras u otras afectaciones. Este bloqueo se aplica aunque no existan trayectos alternativos: en caso de que no exista trayecto posible, se devolverá error. Por defecto: false.
    • avoidblockrealtime=permite indicar si se debe impedir el paso por carreteras bloquedadas por obras u otras afectaciones. Este bloqueo solo se aplica si existen trayectos alternativos. Por defecto: true.
    • blockferries=impide el paso por ferries. Por defecto: false.
    • avoidferries=evita el uso de ferries, pero los utiliza en caso que no existan rutas alternativas. Por defecto: true.
    • showbreaktimes=indica si se debe mostrar el tiempo de descanso obligatorio (tacógrafo). Se activa de forma automática si la red es logística.
    • lang= idioma del texto del report, en caso de &report=1.

    Posibles valores lang:

    Valor Significado
    es Español
    fr Francés
    de Alemán
    it Italiano
    ca Catalán
    pt Portugués
    en Inglés
    nl Holandés


    Parámetros avanzados: optimización de ruta:

    • reorder=1 Utilizar este parámetro para optimizar una ruta por distancia o tiempo, con un máximo de 100 paradas o puntos de paso. El origen y el destino se mantienen fijos
    • Franjas horarias de visita:
    Valor Significado
    STARTWINDOWx_1 Fecha y hora de inicio de la primera franja horaria en la que se permite llegar a la parada X en formato ISO 8601. Sólo se usa en rutas calculadas con reorder=1. Por ejemplo: &startwindow1_1=2021-10-21T07:30:00Z
    ENDWINDOWx_1 Fecha y hora del fin de la primera franja horaria en la que se permite llegar a la parada X en formato ISO 8601. Sólo se usa en rutas calculadas con reorder=1. Por ejemplo: &endwindow1_1=2021-10-21T07:40:00Z
    STARTWINDOWx_2 Fecha y hora de inicio de la segunda franja horaria en la que se permite llegar a la parada X en formato ISO 8601. Sólo se usa en rutas calculadas con reorder=1. Por ejemplo: &startwindow1_2=2021-10-21T17:30:00Z
    ENDWINDOWx_2 Fecha y hora del fin de la segunda franja horaria en la que se permite llegar a la parada X en formato ISO 8601. Sólo se usa en rutas calculadas con reorder=1. Por ejemplo: &endwindow1_2=2021-10-21T22:40:00Z
    • duration_x Valor de duración de la parada, en segundos. Si no se especifica se utiliza el valor por defecto: 0
    • priority_x Valor de 0 a 100 indicando la prioridad para realizar esta parada. Sólo se usa en rutas calculadas con reorder=1. Si el calculador no puede satisfacer todas las franjas horarias. Devolverá una ruta con las paradas que su suma de prioridades sea más alta. 

    Formato de respuesta

    Elem

    Elem

    Elem

    Elem

    Elem

    Descripción

    @id

     

     

     

     

    Identificador de la ruta

    @orig

     

     

     

     

    Nombre del origen de la ruta

    @dest

     

     

     

     

    Nombre del destino de la ruta

    @lang

     

     

     

     

    Idioma del report

    @dist

     

     

     

     

    Distancia total de la ruta calculada

    @time

     

     

     

     

    Tiempo total de la ruta calculada

    @weight

     

     

     

     

    Coste usado en el cálculo de ruta

    stoplist

     

     

     

     

     

    stop

     

     

     

     

    @id

     

     

    Identificador de parada (orig, dest, stage1, stage2)

    ge

     

     

    La parada es una geoentidad

    @id

     

    Código de la geoentidad

    @name

     

    Nombre de la geoentidad

    @type

     

    Tipo de geoentidad (ctry,ct,st,...)

    name

    Valor

    Nombre de la geoentidad

    city

    @id

    Código de localidad

    Valor

    Nombre de localidad

    municipality

    @id

    Código de municipio

    valor

    Nombre de municipio

    subregion

    @id

    Código de subregión

    valor

    Nombre de subregión

    region

    @id

    Código de región

    valor

    Nombre de región

    country

    @id

    Código de país

    valor

    Nombre de país

    coord

    @x

    Coordenada x

    @y

    Coordenada y

    poi

     

     

    La parada es un punto de interés

    @category_id

     

    Categoría del punto de interés

    @id

     

    identificador del punto de interés

    name

    Valor

    Nombre del punto de interés

    info

    Valor

    Información del punto de interés

    coord

    @x

    Coordenada x

    @y

    Coordenada y

    mo

     

     

    La parada es un mobile obect

    @id

     

    Idntificador objeto móvil

    satus

    Valor

    Estado

    desc

    Valor

    Descripción

    coord

    @x

    Coordenada x

    @y

    Coordenada y

    estages

     

     

     

     

     

    stage

     

     

     

     

    @orig

     

     

    Origen de la etapa

    @dest

     

     

    Destino de la etapa

    substage

     

     

     

    @id

     

    Identificador de subetapa

    @angle

     

    Angulo formado con la etapa anterior

    @name

     

    Nombre de la subetapa

    @type

     

    Tipo carretera de la subetapa *

    desc

    Valor

    Descripción de la subetapa

    time

    Valor

    Tiempo para cruzar la subetapa

    time_sum

    Valor

    Tiempo acumulado

    dist

    Valor

    Distancia para cruzar la subetapa

    dist_sum

    Valor

    Distancia acumulada

    start

     

     

     

    @x

    Coord. X del inicio de subetapa

     

    @y

    Coord. Y del inicio de subetapa

    end

     

     

     

    @x

    Coord. X del final de subetapa

     

    @y

    Coord. Y del final de subetapa

    restrictions

     

    Lista de restricciones

    restriction

    Véase 0 Elementos de una restricción logística

    municipios

     

    Municipios por los que se pasa

    municipio

    Un municipio

    @id

    Identificador

    @name

    Nombre

    * Valores posibles del parámetro @type (tipo de la carretera de la subetapa):

    Valor

    Descripción

    A

    Autopistas

    G

    Ferry

    I

    Carretera principal, con nombre

    K

    Carreteras secundarias, con nombre

    J

    Carreteras sin nombre

    L

    Calles con nombre

    M

    Calles secundarias, sin clasificación específica

    R

    Rotonda

    S

    Enlace

    T

    Via de servicio

    Elementos de una restricción logística (camiones)

    En cada subetapa del report de la ruta aparecen las restricciones que se han encontrado y su coordenada.

    <restrictions>
    	<restriction height="2.2" x="245771" y="5046066"/>
    	<restriction height="2.2" x="246247" y="5046538"/>
    </restrictions>
    

    Elemento

    Elem

    Descripción

    restriction

     

     

    @x

    Coordenada X.

    @y

    Coordenada Y.

    @weight

    Peso máximo del vehículo (si se informa).

    @axleweight

    Peso máximo de un eje del vehículo (si se informa).

    @height

    Altura máxima del vehículo (si se informa).

    @width

    Anchura máxima del vehículo (si se informa).

    @length

    Longitud máxima del vehículo (si se informa).


    Descansos obligatorios (tacógrafo)

    Para las rutas de camiones se activa por defecto parámetro &showbreaktimes, que incorpora la siguiente información en la respuesta:

    • totaltime= Tiempo total de la ruta, incluyendo las paradas obligatorias
    • breaktime= Tiempo total de las paradas obligatorias acumuladas a lo largo de la ruta
    • breakpoints= lista de paradas a realizar a lo largo de la ruta, incluyendo la duración, tipo y coordenadas

     

    Geometría de la ruta

    Para obtener la polilínea de la ruta, al igual que en el caso de las rutas normales, es necesario lanzar una segunda petición, indicando el ID de ruta devuelto por la primera petición.

    Por ejemplo:

    &cmd=geom&routeweight=time&tolerance=2&routeid=7156401,8107490,7151464,7156671|0.2309042,0.19879568,0.6412315,0.9265352|logistics|120******&ocs=4326

    Elementos de geom (polilínea de ruta)

    Elemento

    Elem

    Elem

    Descripción

    geometry

     

     

     

    Datos de la geometría

    route

     

    Parámetros de la subetapa o agrupación de subetapas

    @id

     

    Identificador de la ruta

    @substage

     

    Subetapa o agrupación de subetapas

    @weight

     

    Coste de la ruta

     

    wkt

     

     

    @tolerance

    Tolerancia (resolución de la geometría devuelta, en metros)

     

    Valor

    Geometría en formato wkt

    Cálculo masivo de rutas multipunto

    Funcionalidad que permite obtener la distancia y tiempo de conducción entre todos los puntos indicados en el cálculo, con todas las combinaciones posibles respetando el orden indicado. Por ejemplo, permite:

    • Indicar varios vehículos de asistencia (con su localización actual) que pueden atender a una incidencia.
    • La localización de una incidencia a atender (por ejemplo un coche averiado).
    • El taller de destino donde llevar el coche.
    • Las bases de vuelta a las que tienen que volver los vehículos.

    De esta forma, calcula todas las combinaciones de ruta, respetando el orden vehículo asistencia -> vehículo averiado -> taller de destino -> base donde volver

    Así mismo, puede tener en cuenta el estado del tráfico, al igual que en el caso del cálculo de rutas genérico.

    Petición:

    Ejemplo de petición:

    &cmd=route&molist_o=[40.390477919,-3.663617190,|Vehiculo1],[%2040.401144209,-3.692551925|Vehiculo2]&mo_1=[40.387970785,-3.722825150|Incidencia]&molist_2=[40.404172767,-3.698283176|Taller1],[%2040.352579254,-3.716509993|Taller2]&molist_d=[40.334976144,-3.761398808|Base1],[%2040.266864021,-3.752307858|Base2]&mocs=gdd&weight=time

    Donde:

    • cmd= tipo de petición de cercalia
    • Punto/os de partida de la/las rutas/s:
      • mo_o= coordenadas origen [Y,X|ID]
      • molist_o= lista de coordenadas origen [Y,X|ID2],[Y,X|ID2] ...
    • Punto/s de paso de la/las rutas/s:
      • mo_1= coordenadas 1er punto de paso [Y,X|ID]
      • molist_1= lista de coordenadas 1er punto de paso [Y,X|ID2],[Y,X|ID2] ...
    • Opcional: 2o punto/s de paso de la ruta (y así sucesivamente):
      • mo_2= coordenadas 2o punto de paso [Y,X|ID]
      • molist_2= lista de coordenadas 2o punto de paso [Y,X|ID2],[Y,X|ID2] ...
    • Punto/s de destino final de la/las rutas/s:
      • mo_d= coordenadas destino final [Y,X|ID]
      • molist_d= lista de coordenadas destino final [Y,X|ID2],[Y,X|ID2] ...
    • mocs=gdd indica que las coordenadas están en geográficas
    • weight= tipo de ruta:
      • time (más rápida)
      • distance (más corta)
      • money (evitar peajes)
      • realtime (más rápida, en base al estado actual del tráfico y las vías cerradas).
      • timerimp (mercancías peligrosas)
    • iweight= proporciona información adicional sobre el cálculo de ruta. Permite indicar diferentes parámetros, separados por coma:
      • realtime: Utilizar este parámetro para obtener el tiempo de la ruta, en base al estado actual del tráfico.
      • toll: Utilizar este parámetro para obtener si la ruta pasa por un tramo de vía de peaje. Utilizar solo si &report=0
      • ferry: Utilizar este parámetro para obtener si la ruta pasa por un tramo de ferry. Utilizar solo si &report=0

     

    Cálculo de rutas en función de la hora de salida:

    • weight= tipo de ruta:
      • sptime (más rápida en función de la hora de salida).Es obligatorio indicar también el parámetro departuretime
      • spmoney (más rápida en función de la hora de salida sin pasar por vías de peaje). Es obligatorio indicar también el parámetro departuretime
    • departuretime= Fecha y hora de salida en formato ISO 8601. Ejemplo para hora UTC:  2019-10-16T07:30:12Z  *Obligatorio si se indican los valores de weight indicados.

     

    Respuesta:

      <cercalia cmd="route" version="1">
       <route dest="Base1" dist="23.9" id="13174411,13206236,13184886,13672512|0.4314835,1.0,0.94561416,0.65883976" orig="Vehiculo1" time="00:44:16" weight="*">
          <stoplist>
             <stop by="false" id="o">
                <mo id="Vehiculo1">
                   <coord x="-3.663617189530327" y="40.39047791946798"/>
                </mo>
             </stop>
             <stop by="false" id="1">
                <mo id="Incidencia">
                   <coord x="-3.7228251499066443" y="40.387970785252115"/>
                </mo>
             </stop>
             <stop by="false" id="2">
                <mo id="Taller1">
                   <coord x="-3.698283176344499" y="40.404172767495176"/>
                </mo>
             </stop>
             <stop by="false" id="d">
                <mo id="Base1">
                   <coord x="-3.761398808206737" y="40.33497614352786"/>
                </mo>
             </stop>
          </stoplist>
          <getpoicats/>
          <stages>
             <stage dest="Incidencia" dest_stop_id="0" dist="8.5" orig="Vehiculo1" orig_stop_id="o" time="00:15:23" weight="time"/>
             <stage dest="Taller1" dest_stop_id="0" dist="4.4" orig="Incidencia" orig_stop_id="o" time="00:13:07" weight="time"/>
             <stage dest="Base1" dest_stop_id="0" dist="11.0" orig="Taller1" orig_stop_id="o" time="00:15:46" weight="time"/>
          </stages>
       </route>
       <route dest="Base1" dist="20.3" id="12951122,13206236,13184886,13672512|0.3542734,1.0,0.94561416,0.65883976" orig="Vehiculo2" time="00:39:34" weight="*">
          <stoplist>
             <stop by="false" id="o">
                <mo id="Vehiculo2">
                   <coord x="-3.692551924831817" y="40.40114420888145"/>
                </mo>
             </stop>
             <stop by="false" id="1">
                <mo id="Incidencia">
                   <coord x="-3.7228251499066443" y="40.387970785252115"/>
                </mo>
             </stop>
             <stop by="false" id="2">
                <mo id="Taller1">
                   <coord x="-3.698283176344499" y="40.404172767495176"/>
                </mo>
             </stop>
             <stop by="false" id="d">
                <mo id="Base1">
                   <coord x="-3.761398808206737" y="40.33497614352786"/>
                </mo>
             </stop>
          </stoplist>
          <getpoicats/>
          <stages>
             <stage dest="Incidencia" dest_stop_id="0" dist="4.8" orig="Vehiculo2" orig_stop_id="1" time="00:10:41" weight="time"/>
             <stage dest="Taller1" dest_stop_id="0" dist="4.4" orig="Incidencia" orig_stop_id="o" time="00:13:07" weight="time"/>
             <stage dest="Base1" dest_stop_id="0" dist="11.0" orig="Taller1" orig_stop_id="o" time="00:15:46" weight="time"/>
          </stages>
       </route>
       <route dest="Base1" dist="25.8" id="13174411,13206236,13089655,13672512|0.4314835,1.0,0.38120848,0.65883976" orig="Vehiculo1" time="00:44:17" weight="*">
          <stoplist>
             <stop by="false" id="o">
                <mo id="Vehiculo1">
                   <coord x="-3.663617189530327" y="40.39047791946798"/>
                </mo>
             </stop>
             <stop by="false" id="1">
                <mo id="Incidencia">
                   <coord x="-3.7228251499066443" y="40.387970785252115"/>
                </mo>
             </stop>
             <stop by="false" id="2">
                <mo id="Taller2">
                   <coord x="-3.716509993459284" y="40.352579253586725"/>
                </mo>
             </stop>
             <stop by="false" id="d">
                <mo id="Base1">
                   <coord x="-3.761398808206737" y="40.33497614352786"/>
                </mo>
             </stop>
          </stoplist>
          <getpoicats/>
          <stages>
             <stage dest="Incidencia" dest_stop_id="0" dist="8.5" orig="Vehiculo1" orig_stop_id="o" time="00:15:23" weight="time"/>
             <stage dest="Taller2" dest_stop_id="1" dist="9.2" orig="Incidencia" orig_stop_id="o" time="00:16:38" weight="time"/>
             <stage dest="Base1" dest_stop_id="0" dist="8.1" orig="Taller2" orig_stop_id="1" time="00:12:16" weight="time"/>
          </stages>
       </route>
       <route dest="Base1" dist="22.2" id="12951122,13206236,13089655,13672512|0.3542734,1.0,0.38120848,0.65883976" orig="Vehiculo2" time="00:39:35" weight="*">
          <stoplist>
             <stop by="false" id="o">
                <mo id="Vehiculo2">
                   <coord x="-3.692551924831817" y="40.40114420888145"/>
                </mo>
             </stop>
             <stop by="false" id="1">
                <mo id="Incidencia">
                   <coord x="-3.7228251499066443" y="40.387970785252115"/>
                </mo>
             </stop>
             <stop by="false" id="2">
                <mo id="Taller2">
                   <coord x="-3.716509993459284" y="40.352579253586725"/>
                </mo>
             </stop>
             <stop by="false" id="d">
                <mo id="Base1">
                   <coord x="-3.761398808206737" y="40.33497614352786"/>
                </mo>
             </stop>
          </stoplist>
          <getpoicats/>
          <stages>
             <stage dest="Incidencia" dest_stop_id="0" dist="4.8" orig="Vehiculo2" orig_stop_id="1" time="00:10:41" weight="time"/>
             <stage dest="Taller2" dest_stop_id="1" dist="9.2" orig="Incidencia" orig_stop_id="o" time="00:16:38" weight="time"/>
             <stage dest="Base1" dest_stop_id="0" dist="8.1" orig="Taller2" orig_stop_id="1" time="00:12:16" weight="time"/>
          </stages>
       </route>
       <route dest="Base2" dist="30.6" id="13174411,13206236,13184886,13737176|0.4314835,1.0,0.94561416,0.35529318" orig="Vehiculo1" time="00:45:41" weight="*">
          <stoplist>
             <stop by="false" id="o">
                <mo id="Vehiculo1">
                   <coord x="-3.663617189530327" y="40.39047791946798"/>
                </mo>
             </stop>
             <stop by="false" id="1">
                <mo id="Incidencia">
                   <coord x="-3.7228251499066443" y="40.387970785252115"/>
                </mo>
             </stop>
             <stop by="false" id="2">
                <mo id="Taller1">
                   <coord x="-3.698283176344499" y="40.404172767495176"/>
                </mo>
             </stop>
             <stop by="false" id="d">
                <mo id="Base2">
                   <coord x="-3.7523078575314477" y="40.26686402112744"/>
                </mo>
             </stop>
          </stoplist>
          <getpoicats/>
          <stages>
             <stage dest="Incidencia" dest_stop_id="0" dist="8.5" orig="Vehiculo1" orig_stop_id="o" time="00:15:23" weight="time"/>
             <stage dest="Taller1" dest_stop_id="0" dist="4.4" orig="Incidencia" orig_stop_id="o" time="00:13:07" weight="time"/>
             <stage dest="Base2" dest_stop_id="1" dist="17.7" orig="Taller1" orig_stop_id="o" time="00:17:11" weight="time"/>
          </stages>
       </route>
       <route dest="Base2" dist="27.0" id="12951122,13206236,13184886,13737176|0.3542734,1.0,0.94561416,0.35529318" orig="Vehiculo2" time="00:40:59" weight="*">
          <stoplist>
             <stop by="false" id="o">
                <mo id="Vehiculo2">
                   <coord x="-3.692551924831817" y="40.40114420888145"/>
                </mo>
             </stop>
             <stop by="false" id="1">
                <mo id="Incidencia">
                   <coord x="-3.7228251499066443" y="40.387970785252115"/>
                </mo>
             </stop>
             <stop by="false" id="2">
                <mo id="Taller1">
                   <coord x="-3.698283176344499" y="40.404172767495176"/>
                </mo>
             </stop>
             <stop by="false" id="d">
                <mo id="Base2">
                   <coord x="-3.7523078575314477" y="40.26686402112744"/>
                </mo>
             </stop>
          </stoplist>
          <getpoicats/>
          <stages>
             <stage dest="Incidencia" dest_stop_id="0" dist="4.8" orig="Vehiculo2" orig_stop_id="1" time="00:10:41" weight="time"/>
             <stage dest="Taller1" dest_stop_id="0" dist="4.4" orig="Incidencia" orig_stop_id="o" time="00:13:07" weight="time"/>
             <stage dest="Base2" dest_stop_id="1" dist="17.7" orig="Taller1" orig_stop_id="o" time="00:17:11" weight="time"/>
          </stages>
       </route>
       <route dest="Base2" dist="34.1" id="13174411,13206236,13089655,13737176|0.4314835,1.0,0.38120848,0.35529318" orig="Vehiculo1" time="00:48:25" weight="*">
          <stoplist>
             <stop by="false" id="o">
                <mo id="Vehiculo1">
                   <coord x="-3.663617189530327" y="40.39047791946798"/>
                </mo>
             </stop>
             <stop by="false" id="1">
                <mo id="Incidencia">
                   <coord x="-3.7228251499066443" y="40.387970785252115"/>
                </mo>
             </stop>
             <stop by="false" id="2">
                <mo id="Taller2">
                   <coord x="-3.716509993459284" y="40.352579253586725"/>
                </mo>
             </stop>
             <stop by="false" id="d">
                <mo id="Base2">
                   <coord x="-3.7523078575314477" y="40.26686402112744"/>
                </mo>
             </stop>
          </stoplist>
          <getpoicats/>
          <stages>
             <stage dest="Incidencia" dest_stop_id="0" dist="8.5" orig="Vehiculo1" orig_stop_id="o" time="00:15:23" weight="time"/>
             <stage dest="Taller2" dest_stop_id="1" dist="9.2" orig="Incidencia" orig_stop_id="o" time="00:16:38" weight="time"/>
             <stage dest="Base2" dest_stop_id="1" dist="16.4" orig="Taller2" orig_stop_id="1" time="00:16:24" weight="time"/>
          </stages>
       </route>
       <route dest="Base2" dist="30.4" id="12951122,13206236,13089655,13737176|0.3542734,1.0,0.38120848,0.35529318" orig="Vehiculo2" time="00:43:43" weight="*">
          <stoplist>
             <stop by="false" id="o">
                <mo id="Vehiculo2">
                   <coord x="-3.692551924831817" y="40.40114420888145"/>
                </mo>
             </stop>
             <stop by="false" id="1">
                <mo id="Incidencia">
                   <coord x="-3.7228251499066443" y="40.387970785252115"/>
                </mo>
             </stop>
             <stop by="false" id="2">
                <mo id="Taller2">
                   <coord x="-3.716509993459284" y="40.352579253586725"/>
                </mo>
             </stop>
             <stop by="false" id="d">
                <mo id="Base2">
                   <coord x="-3.7523078575314477" y="40.26686402112744"/>
                </mo>
             </stop>
          </stoplist>
          <getpoicats/>
          <stages>
             <stage dest="Incidencia" dest_stop_id="0" dist="4.8" orig="Vehiculo2" orig_stop_id="1" time="00:10:41" weight="time"/>
             <stage dest="Taller2" dest_stop_id="1" dist="9.2" orig="Incidencia" orig_stop_id="o" time="00:16:38" weight="time"/>
             <stage dest="Base2" dest_stop_id="1" dist="16.4" orig="Taller2" orig_stop_id="1" time="00:16:24" weight="time"/>
          </stages>
       </route>
       <server>lb.cercalia.com</server>
    </cercalia>
    
    

    Donde:

    • id= ID de ruta, necesario para pedir la geometría de la ruta
    • dist= distancia ruta, en km
    • time= tiempo total de la ruta (HH:MM:SS)*
    • realtime= tiempo total de la ruta, en base al estado actual del tráfico (HH:MM:SS)*, si iweight=realtime
    • hasferries= indica si la ruta pasa por un tramo de ferry (se devuelve si en la petición se añade &iweight=ferry y &report=0)
    • hastolls= indica si la ruta pasa por un tramo de vía de peaje (se devuelve si en la petición se añade &iweight=toll y &report=0)

    * Nota:

    Para trayectos que duren más de un día, el tiempo no se reparte en años, meses y días, sino que queda todo acumulado en las horas. Por ejemplo: 2 días se expresaría como "48:00:00", 10 días se expresaría como "240:00:00".

    Prueba el Webservice