Cálculo de rutas

Servicios web

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.587980320,1.670039978&mo_d=41.597246135,1.565134720&mocs=gdd&weight=time&iweight=realtime&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)
  • 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=realtime Utilizar este parámetro para obtener el tiempo de la ruta, en base al estado actual del tráfico
  • 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

Opcional:

  • mo_1,n= coordenadas puntos de paso (Y,X) -> 1, ... n
  • 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áxima de 100 paradas o puntos de paso. El origen y el destino se mantienen fijos

Respuesta:

<cercalia cmd="route" version="1">
	<route dest="%" dist="17.9" icost="1125888" id="16474053,16410248|0.09513969,0.32824484" iweight="realtime" orig="%" realtime="00:18:45" time="00:18:45" weight="time">
		<stoplist>
			<stop by="false" id="o">
				<mo id="">
					<coord x="1.6700399784009199" y="41.587980320261"/>
				</mo>
			</stop>
			<stop by="false" id="d">
				<mo id="">
					<coord x="1.5651347195214422" y="41.59724613508166"/>
				</mo>
			</stop>
		</stoplist>
		<getpoicats/>
		<stages>
			<stage dest="%" dest_stop_id="d" dist="17.9" orig="%" orig_stop_id="o" realtime="00:18:45" time="00:18:45" weight="time"/>
		</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

 

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

 

"Well-known Text Representation for Geometry" es un estándar para el intercambio de geometrías definido por Open Geospatial Consortium. La siguiente tabla muestra ejemplos de este formato:

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

Opcional:

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

Parámetros avanzados: optimización de ruta:

  • reorder=1 Utiliza este parámetro para optimizar una ruta por distancia o tiempo, con un máxima de 100 paradas o puntos de paso. El origen y el destino se mantienen fijos

Esta funcionalidad está disponible para todos los tipos de ruta.

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)

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)
  • 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
  • iweight=realtime Utilizar este parámetro para obtener el tiempo de la ruta, en base al estado actual del tráfico. Solo disponible para Europa

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

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 avanzados: optimización de ruta:

  • reorder=1 Utiliza este parámetro para optimizar una ruta por distancia o tiempo, con un máxima de 100 paradas o puntos de paso. El origen y el destino se mantienen fijos

Esta funcionalidad está disponible para todos los tipos de ruta.

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

getpoicats

 

 

 

 

POI de la ruta a obtener. Invalida la cache de rutas calculadas.

@infoxml

 

 

 

Obtener info extendida XML

poicat

 

 

 

Categoría (y subcategoría) de POI. Repetitivo.

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

poilist

 

POI de la subetapa

poi

Véase ¡Error! No se encuentra el origen de la referencia. ¡Error! No se encuentra el origen de la referencia.

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

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

Prueba el Webservice