Servicios web

Documentación sobre la funcionalidad disponible a través del webservice HTTP-XML de la plataforma CERCALIA.

La URL base a utilizar es:
http://lb.cercalia.com/clients/XXXXXXX(*)?

(*) Pedir dirección completa a Nexus

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

 

Geocodificación

Petición para normalizar una dirección

Petición:

Ejemplo de petición:

cmd=cand&stn=provença&stnum=50&ctn=barcelona&pcode=&ctryc=ESP&detcand=1

Donde:

cmd= tipo de petición de cercalia
stn= nombre de calle
stnum= número de portal
ctn= nombre de la población 
pcode= código postal (opcional)
ctryc= Código de país (ESP)
detcand=1 indica que queremos obtener los valores normalizados de la dirección en la respuesta XML

Respuesta:

Un solo candidato:

En caso que solo se encuentre un candidato, esta petición genera la respuesta XML:

<ge article="de" id="ESP080193000002996" name="Carrer de Provença" prefix="Carrer" sname="Provença" type="adr">
  <name>Carrer de Provença, 50</name> 
  <housenumber>50</housenumber> 
  <postalcode country_id="ESP" id="08029" /> 
  <city id="ESP37240332252624">Barcelona</city> 
  <municipality id="ESP080193">Barcelona</municipality> 
  <subregion id="ESP08">Barcelona</subregion> 
  <region id="ESPCAT">Cataluña</region> 
  <country id="ESP">España</country> 
  <coord x="238870" y="5040726" /> 
</ge>

Donde:

ge_id= ID de elemento geográfico normalizado (en este caso calle)
name= nombre completo del elemento geográfico normalizado (en esta caso calle)
prefix= Prefijo del nombre de la calle
ge article= artículo
sname= nombre (estrictamente) de la calle
type= tipo de elemento geográfico normalizado (adr = dirección)
housenumber= número de portal
postalcode country_id= código postal de la dirección
city = ID y nombre de ciudad
municipality = ID y nombre de municipio
subregion = ID y nombre de provincia
region = ID y nombre de comunidad autónoma
coutry = ID y nombre de país
coord x&y= coordenada de la dirección. Se preparará para devolverla en formato geográficas

Más de un candidato:

En caso que se encuentre más de un candidato, esta petición genera una respuesta más básica de cada candidato (en caso que se superen los 350 candidatos posibles, el sistema pide que se detalle más la búsqueda).

El objetivo es que el usuario seleccione el candidato correcto, y vuelva a lanzar la petición indicando los parámetros devueltos en urlparams. Este paso es necesario, puesto que las coordenadas devueltas en el caso de más de un candidato, son coordenadas por defecto de la calle, no de la dirección completa indicada.

Ejemplo petición que devuelve más de un candidato:
cmd=cand&stn=proven&stnum=5&ctn=barcelona&pcode=&ctryc=ESP&detcand=1

Respuesta XML:

<cercalia cmd="cand" version="1">
<candidates num="10" pos="0" total="3" urlcandidates="ctn=barcelona&stn=proven&stnum=5&ctryc=ESP" urlcommon="">
<candidate desc="Carrer de Dolça de Provença, 5 (Barcelona)" name="Carrer de Dolça de Provença, 5" urlparams="ctc=ESP17240205433170&stc=ESP080193000001172&stnum=5&pcode=08020">
  <urlparams>
    <param name="ctc" value="ESP17240205433170"/>
    <param name="stc" value="ESP080193000001172"/>
    <param name="stnum" value="5"/>
    <param name="pcode" value="08020"/>
  </urlparams>
  <ge article="de" id="ESP080193000001172" name="Carrer de Dolça de Provença" prefix="Carrer" sname="Dolça de Provença" type="adr">
    <name>Carrer de Dolça de Provença, 5</name>
    <housenumber>5</housenumber>
    <postalcode country_id="ESP" id="08020"/>
    <city id="ESP17240205433170">Barcelona</city>
    <municipality id="ESP080193">Barcelona</municipality>
    <subregion id="ESP08">Barcelona</subregion>
    <region id="ESPCAT">Cataluña</region>
    <country id="ESP">España</country>
    <coord x="245569" y="5046278"/>
  </ge>
</candidate>
<candidate desc="Carrer de Provença, 5 (Barcelona)" name="Carrer de Provença, 5" urlparams="ctc=ESP17240205433170&stc=ESP080193000002996&stnum=5&pcode=08029">
  <urlparams>
    <param name="ctc" value="ESP17240205433170"/>
    <param name="stc" value="ESP080193000002996"/>
    <param name="stnum" value="5"/>
    <param name="pcode" value="08029"/>
  </urlparams>
  <ge article="de" id="ESP080193000002996" name="Carrer de Provença" prefix="Carrer" sname="Provença" type="adr">...</ge>
</candidate>
 

En este caso la nueva petición tiene que arrastrar el valor del parámetro urlparams= del candidato seleccionado. Para obtener la geocodificación exacta será:
cmd=cand&ctc=ESP17240205433170&stc=ESP080193000002996&stnum=5&pcode=08029

Petición para normalizar una carretera

Petición:

Ejemplo de petición:

cmd=cand&detcand=1&rdn=M-45&km=12&munn=&pcode=&subregn=Madrid&ctryc=ESP

Donde:

cmd= tipo de petición de cercalia
rdn= código de carretera
km= punto kilométrico
munn= nombre del municipio (opcional)
pcode= código postal (opcional) 
subregn= nombre de la provincia (opcional)
ctryc= Código de país (ESP)
detcand=1 indica que queremos obtener los valores normalizados de la dirección en la respuesta XML

Respuesta:

Un solo candidato:

En caso que solo se encuentre un candidato, esta petición genera la respuesta XML:

<ge id="ESPM-45_MAD" name="M-45" type="rd">
  <name>M-45, Km. 12.0</name> 
  <postalcode country_id="ESP" id="28051" /> 
  <city id="" /> 
  <municipality id="" /> 
  <subregion id="ESP28">Madrid</subregion> 
  <region id="ESPMAD">Comunidad de Madrid</region> 
  <country id="ESP">España</country> 
  <coord x="-3.653151816470334" y="40.34468901375571" /> 
</ge>

Donde:

ge_id= ID de elemento geográfico normalizado (en este caso carretera)
name= nombre completo del elemento geográfico normalizado (en esta caso carretera)
type= tipo de elemento geográfico normalizado (rd = carretera)
postalcode country_id= código postal de la dirección
subregion id= ID y nombre de provincia
region id= ID y nombre de comunidad autónoma
coutry id= ID y nombre de país
coord x&y= coordenada de la dirección.

Más de un candidato:

En caso que se encuentre más de un candidato, esta petición genera una respuesta más básica de cada candidato (en caso que se superen los 350 candidatos posibles, el sistema pide que se detalle más la búsqueda).

El objetivo es que el usuario seleccione el candidato correcto, y vuelva a lanzar la petición indicando el código de carretera (recogido a partir del ge_id= del candidato seleccionado), utilizando el parámetro &rdc= (road code) en vez de &rdn= (road name). Este paso es necesario, puesto que las coordenadas devueltas en el caso de más de un candidato, són coordenadas por defecto del tramo de carretera, no de la dirección completa indicada.

Ejemplo petición que devuelve más de un candidato:
cmd=cand&detcand=1&rdn=M-4&km=12&munn=madrid&pcode=&subregn=Madrid&ctryc=ESP

Respuesta XML:

<candidate desc="M-40 (Madrid, Madrid)" name="M-40" urlparams="rdc=ESPM-40_MAD">
	<urlparams>
		<param name="rdc" value="ESPM-40_MAD" /> 
	</urlparams>
	<ge id="ESPM-40_MAD" name="M-40" type="rd">
		<name>M-40</name> 
		<city id="" /> 
		<municipality id="ESP280796">Madrid</municipality> 
		<subregion id="ESP28">Madrid</subregion> 
		<region id="ESPMAD">Comunidad de Madrid</region> 
		<country id="ESP">España</country> 
		<coord x="-3.7577336818475287" y="40.47364078795076" /> 
	</ge>
</candidate>
<candidate desc="M-421 (Madrid, Madrid)" name="M-421" urlparams="rdc=ESPM-421_MAD">
	<urlparams>
		<param name="rdc" value="ESPM-421_MAD" /> 
	</urlparams>
	<ge id="ESPM-421_MAD" name="M-421" type="rd">
		<name>M-421</name> 
		<city id="" /> 
		<municipality id="ESP280796">Madrid</municipality> 
		<subregion id="ESP28">Madrid</subregion> 
		<region id="ESPMAD">Comunidad de Madrid</region> 
		<country id="ESP">España</country> 
		<coord x="-3.7540326228769567" y="40.359430910920246" /> 
	</ge>
</candidate>
<candidate desc="M-425 (Madrid, Madrid)" name="M-425" urlparams="rdc=ESPM-425_MAD">
	<urlparams>
		<param name="rdc" value="ESPM-425_MAD" /> 
	</urlparams>
	<ge id="ESPM-425_MAD" name="M-425" type="rd">
		<name>M-425</name> 
		<city id="" /> 
		<municipality id="ESP280796">Madrid</municipality> 
		<subregion id="ESP28">Madrid</subregion> 
		<region id="ESPMAD">Comunidad de Madrid</region> 
		<country id="ESP">España</country> 
		<coord x="-3.744654211310748" y="40.36151994267048" /> 
	</ge>
</candidate>
<candidate desc="M-45 (Madrid, Madrid)" name="M-45" urlparams="rdc=ESPM-45_MAD">
	<urlparams>
		<param name="rdc" value="ESPM-45_MAD" /> 
	</urlparams>
	<ge id="ESPM-45_MAD" name="M-45" type="rd">
		<name>M-45</name> 
		<city id="" /> 
		<municipality id="ESP280796">Madrid</municipality> 
		<subregion id="ESP28">Madrid</subregion> 
		<region id="ESPMAD">Comunidad de Madrid</region> 
		<country id="ESP">España</country> 
		<coord x="-3.760761004355012" y="40.35870248319427" /> 
	</ge>
</candidate>

En este caso la nueva petición para obtener la geocodificación exacta será (para la carretera M-45):
cmd=cand&detcand=1&rdc=ESPM-45_MAD&km=12

 

Reverse Geocoding

Geocoding inverso

Petición:

Ejemplo de petición (coordenadas lat,long 37.777041,-3.785477):

cmd=prox&mocs=gdd&mo=37.777041,-3.785477&rqge=adr

Para agrupar diferentes coordenadas en una sola petición, utilizar el siguiente formato:

cmd=prox&mocs=gdd&molist=[37.77741,-3.785477],[37.87704,-3.78577]&rqge=adr

El número de posiciones máximo por petición es de 50.

Donde:

mocs=gdd -> indica que el sistema de coordenadas en el que están las coordenadas que se envían. En este caso geográficas (latitud,longitud)
mo= Y,X en el caso de geográficas, X,Y en el resto de sistemas de coordenadas
rqge= nivel de detalle de la información que de desea obtener. Opciones:

Valor Significado
cadr Dirección postal (solo devuelve calles o carreteras con nombre, no códigos de carretera)
adr Dirección postal / carretera (incluyendo códigos de carretera) y PK si disponible
st Calle / carretera
ct Ciudad / localidad
pcode Código postal
mun Municipio
subreg Sub-Región 
reg Región
ctry País

Respuesta:

Para una coordenada que se encuentra en una calle, el formato de la respuesta es el siguiente:

<cercalia cmd="prox" version="1">
	<proximity center="-3.653151816470334,40.34468901375571" num="1" type="adr">
		<gelist num="1" type="adr">
			<location>
				<municipality id="PRT110600">Lisboa</municipality>
				<subregion id="PRT11">Lisboa</subregion>
				<country id="PRT">Portugal</country>
			</location>
			<ge dist="0" frc="ep" id="PRT110004000090022" kmh="50" name="Avenida Duque de Loulé" pos="1" prefix="Avenida" sname="Duque de Loulé" zonename="Lisboa" zonetype="U">
				<housenumber>46</housenumber>
				<intersection dist="47" id="PRT1100040000090401" name="Rua Bernardo Lima" prefix="Rua" sname="Bernardo Lima"> 
					<coord x="-1018070" y="4656013"/>
				</intersection> 
				<postalcode country_id="PRT" id="1050"/>
                <city id="PRT16200000444481">Lisboa</city>
                <district id="PRT110614">Coraçao de Jesus</district>
				<municipality id="ESP280796">Madrid</municipality>
				<subregion id="ESP28">Madrid</subregion>
				<region id="ESPMAD">Comunidad de Madrid</region>
				<country id="ESP">España</country>
				<coord x="-3.6520019729066613" y="40.356833273872574" />
			</ge>
		</gelist>
	</proximity>
	<server>http://c1.cercalia.com</server>
</cercalia>

Donde:

dist= indica la distancia en metros (línea recta) entre la coordenada indicada y el elemento encontrado (dirección)
kmh= indica la velocidad máxima teórica del tramo de calle o carretera (según TomTom). En países anglosajones, este valor está en millas por hora (no km/h)
name= Nombre completo de la calle
prefix= Prefijo del nombre de la calle
sname= Nombre de la calle
article= Artículo del nombre de la calle
houysenumber= Número de portal (si disponible)
zonetype= indica si se encuentra en una zona urbana ("U") o industrial ("I")
zonename= nombre de la población o el polígono industrial donde se encuentra
district= distrito (división infra-municipal, disponible solo en algunos países)
municipality -> indica el municipio (ID y nombre)
subregion -> indica la provincia (ID y nombre)
region -> indica la comunidad autónoma (ID y nombre)
country -> indica el país (ID y nombre)

Adicionalmente, se añade el nodo <intersection>, correspondiente al cruce de vía más cercano.

Para una coordenada que se encuentra en una carretera, el formato de la respuesta es el siguiente:

<cercalia cmd="prox" version="1">
	<proximity center="248755,5136727" num="1" type="adr">
	<gelist num="1" type="adr">
		<location>
			<municipality id="ESP081173">les Masies de Voltregà</municipality> 
			<subregion id="ESP08">Barcelona</subregion> 
			<region id="ESPCAT">Cataluña</region> 
			<country id="ESP">España</country> 
		</location>
		<ge dist="252" frc="na1" kmh="75" name="C-17" pos="1">
			<km>73</km> 
			<postalcode country_id="ESP" id="08508" /> 
			<city dist="1192" id="ESP17240300011878">les Masies de Voltregà</city> 
			<municipality id="ESP081173">les Masies de Voltregà</municipality> 
			<subregion id="ESP08">Barcelona</subregion> 
			<region id="ESPCAT">Cataluña</region> 
			<country id="ESP">España</country> 
			<coord x="248719" y="5136977" /> 
		</ge>
	</gelist>
	</proximity>
	<server>http://c4.cercalia.com</server> 
</cercalia>

Donde: los parámetros son iguales que en el caso de calle, con la excepción de los registros que hacen referencia a la vía.

Name= código de la vía
km= punto quilométrico (si disponible)
frc= tipo de eje viario. Posibles valores:

Valor frc Tipo de vía
ap Autopista (peaje)
av Autovía
na1 Nacional & autonómica de primer orden
a2 Autonómica de segundo orden
pl Provincial y local
ep Eje urbano principal
cl Calle 
pt Calle peatonal

Petición para pedir las poblaciones / municipios / regiones que intersectan un polígono

Petición:

Ejemplo de petición:
cmd=prox&rqge=mun&cs=4326&wkt=POLYGON((2.149028778076172%2041.39586980544921,2.146625518798828%2041.41930231731321,2.1816444396972656%2041.41981722266227,2.1813011169433594%2041.398187683195694,2.149028778076172%2041.39586980544921))

Donde:

cmd=prox Petición de proximidad.
cs=4326 Coordenadas de la geometría expresadas en geográficas (LonLat).
wkt= Polígono o multi-polígono expresado en formato WKT
rqge= tipo de información solicitada, con los siguientes posibles valores:
&rqge=ct -> localidades
&rqge=mun -> municipios 
&rqge=subreg -> provincias
&rqge=reg -> comunidades

Respuesta:

<cercalia cmd="prox" version="1">
	<proximity buffer="0.0" cs="4326" tolerance="0.0" type="mun" wkt="POLYGON((2.149028778076172 41.39586980544921,2.146625518798828 41.41930231731321,2.1816444396972656 41.41981722266227,2.1813011169433594 41.398187683195694,2.149028778076172 41.39586980544921))">
		<gelist num="1" type="mun">
			<ge id="ESP080193" name="Barcelona" pos="1">
				<subregion id="ESP08">Barcelona</subregion>
				<region id="ESPCAT">Cataluña</region>
				<country id="ESP">España</country>
				<coord x="241554" y="5041472"/>
			</ge>
		</gelist>
	</proximity>
	<server>http://c2.cercalia.com</server>
</cercalia>
 

Petición para obtener la sección censal de una coordenada

Petición:

Ejemplo de petición:

cmd=prox&mo=40.3446890,-3.653151816&mocs=gdd&rqpoicats=d00seccen

Donde:

 

mo= coordenadas (Y,X) de la dirección normalizada

Respuesta:

En caso que solo se encuentre un candidato, esta petición genera la respuesta XML:

<cercalia cmd="prox" version="1">
	<proximity center="-3.653151816470334,40.34468901375571" num="1" type="poi">
		<poilist num="1">
			<poi category_id="D00SECCEN" dist="0" geometry="Z" id="DC00SC2807918002" pos="1" subcategory_id="-1">
				<name>2807918002</name> 
				<info>2807918002</info> 
				<ge>
					<city id="ESP57240362251934">Madrid</city> 
					<municipality id="ESP280796">Madrid</municipality> 
					<subregion id="ESP28">Madrid</subregion> 
					<region id="ESPMAD">Comunidad de Madrid</region> 
					<country id="ESP">España</country> 
				</ge>
				<coord x="-3.6520019729066613" y="40.356833273872574" /> 
			</poi>
		</poilist>
	</proximity>
	<server>http://c1.cercalia.com</server> 
</cercalia>

Donde:

name= ID de sección censa
info= ID de sección censal

Ambos contienen la misma información

 

Rutas

Petición para calcular una ruta entre dos puntos

Petición:

Ejemplo de petición:

cmd=route&report=0&mo_o=40.418372,-3.676642&mo_d=40.432961,-3.649504&weight=time&stagegeometry=1&stagegeometrytolerance=0&mocs=gdd&stagegeometrysrs=EPSG:4326

Donde:

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)
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). Nuevo!

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
stagegeometrytolerance=10 Indica la tolerancia (simplificación) en metros para la geometría del parámetro anterior. Por defecto: 100 m
mocs= gdd indica que las coordenadas de origen / destino están en geográficas
stagegeometrysrs=EPSG:4326 indica que la geometría de la polilínea se devolverá en coordenadas geográficas

Opcional:
mo_1,n= coordenadas puntos de paso (Y,X) -> 1, ...n
reorder=true Utiliza este parámetro para optimizar una ruta por distancia o tiempo, con un máxima de 11 paradas o puntos de paso. El origen y el destino se mantienen fijos.

 

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

Respuesta:

<cercalia cmd="route" version="1">
	<route dest="%" dist="3.3" id="6932203,7010929|0.25645086,0.9191169" orig="%" time="00:06:21" weight="time">
		<stoplist>
			<stop by="false" id="o">
				<mo id="">
					<coord x="-409282" y="4899217"/>
				</mo>
			</stop>
			<stop by="false" id="d">
				<mo id="">
					<coord x="-406261" y="4901342"/>
				</mo>
			</stop>
		</stoplist>
		<getpoicats/>
		<stages>
			<stage dest="%" dest_stop_id="d" dist="3.3" orig="%" orig_stop_id="o" time="00:06:21" weight="time">
				<wkt cs="EPSG:4326" tolerance="0.0">
				LINESTRING (-3.676647303341991 40.41833382831522, -3.677828537325097 40.41841407919609, -3.6777297226438437 40.419505741965295, -3.677639891115432 40.42043947708727, -3.677523110128497 40.421586031025996, -3.6775141269756553 40.421634089743094, -3.6774422617529257 40.422567795094515, -3.677370396530196 40.423460295353664, -3.6773075144603085 40.424085038434455, -3.676786491595519 40.42430472691934, -3.6757264795602578 40.42475096692812, -3.675205456695468 40.42501184432056, -3.674001714214748 40.425588517043444, -3.673480691349959 40.425801335480074, -3.672429662467539 40.42632308103419, -3.670749812886236 40.42712628661177, -3.6691418285276614 40.42791575275938, -3.6690789464577738 40.42795694204118, -3.6689891149293614 40.42795694204118, -3.66875555295549 40.42803932052852, -3.6684860583702545 40.428210942050534, -3.6684321594532068 40.42826586084437, -3.668288429007748 40.428313914751904, -3.667228416972487 40.42878758713173, -3.666581629967921 40.42911709636958, -3.665584500002548 40.429590763048566, -3.66536890433436 40.42970746301848, -3.665126359207647 40.429817298097866, -3.6649646624565055 40.42989967428876, -3.6644526227445575 40.43014680225134, -3.6640573640195453 40.430339012256184, -3.663311762333726 40.43074402438256, -3.6632039644996315 40.43079207650562, -3.663033284595649 40.43079207650562, -3.6627907394689365 40.430901909799815, -3.6625481943422242 40.43099114921823, -3.662251750298465 40.43105979484349, -3.6610749572762686 40.43125200221856, -3.66085936160808 40.43127259583305, -3.660374271354655 40.431348105698476, -3.659466972917694 40.43147166711214, -3.6592244277909822 40.43150598968644, -3.659125613109729 40.43158836379273, -3.6576164434324077 40.431787434129795, -3.65695169012216 40.43187667236396, -3.6567450776068124 40.431904130258154, -3.655873711781216 40.43202769064222, -3.6553706552221095 40.432096335201166, -3.654984379649938 40.432144386350416, -3.6541758958942303 40.432261081854534, -3.6532775806101108 40.43237777715456, -3.6524151979373563 40.432508201071904, -3.6522175685748497 40.43253565870622, -3.651534848958919 40.43263862473431, -3.6507083988975295 40.43275531937407, -3.6503041570196753 40.43280337004877, -3.6494950133876123 40.43292324412144)
				</wkt>
			</stage>
		</stages>
	</route>
	<server>http://c2.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).

Calcular la ruta entre dos puntos, específica para camiones, según características (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.

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

Opcional:

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

Nuevo!

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

Respuesta (formatos):

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

 

Identificador 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 0Elementos 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 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

 

Isócronas

Petición para obtener isócronas en coche

Petición:

Ejemplo de petición:
cmd=isochrone&weight=time&mocs=4326&ocs=4326&mo=2.8260807,41.9723144&isolevels=120000,300000,600000&method=convexhull

Donde:

cmd= tipo de petición de cercalia
mo= coordenadas X,Y centro de búsqueda.
weight= tipo de cálculo de la isócrona, en base a: tiempo conduciendo (time) / distancia máxima (distance).
isolevels= valor de la isócrona /as. Permite especificar n isócronas para un mismo mo. Si:

  • weight=time -> valor en milisegundos
  • weight=distance -> valor en metros

method= tipo de isócrona. Dos opciones:

  • convexhull: isócrona mejorada, polígono convexo
  • concavehull: isócrona simplificada, polígono cóncavo
 

Resto de parámetros, añadirlos con los valores indicados en el ejemplo

Respuesta:

<cercalia cmd="isochrone" version="1">
	<isochrones center="314598,5128250" inverse="0" method="convexhull" net="" ocs="4326" weight="time">
		<isocrhone level="120000">POLYGON((2.817302 41.975481, 2.821493 41.966362, 2.826972 41.964703, 2.831031 41.966286, 2.834707 41.971924, 2.824466 41.978659, 2.817302 41.975481))</isocrhone>
		<isocrhone level="300000">POLYGON((2.796979 41.973617, 2.809758 41.958717, 2.818998 41.954458, 2.827618 41.956012, 2.842624 41.958976, 2.847995 41.960498, 2.844361 41.971358, 2.829863 41.986543, 2.829747 41.986634, 2.822528 41.989372, 2.809847 41.985298, 2.800753 41.977611, 2.796979 41.973617))</isocrhone>
		<isocrhone level="600000">POLYGON((2.758942 41.970766, 2.791684 41.916767, 2.850383 41.926362, 2.863389 41.965211, 2.863398 41.965358, 2.863416 41.965995, 2.849140 42.019126, 2.818962 42.015080, 2.791487 41.999119, 2.758942 41.970766))</isocrhone>
	</isochrones>
	<server>http://c2.cercalia.com</server>
</cercalia>
 

Donde:

isocrhone level= nivel de la isócrona
POLYGON= polígono de la isócrona, en formato WKT

Petición para obtener isócronas a pie

Petición:

Ejemplo de petición:
http://www.routingreparto.com/planificador/server?cmd=isochrone&weight=time&mocs=4326&ocs=4326&mo=[2.8260807,41.9723144,]&isolevels=120000,300000,600000&net=ESPW&method=convexhull&clientid=xxxx

Donde:

http://www.routingreparto.com/planificador/server? -> Dirección de Webservice específica para isócronas a pie
cmd= tipo de petición de cercalia
mo= coordenadas [X,Y,ID] centro de búsqueda. El valor ID es opcional
weight= tipo de cálculo de la isócrona, en base a: tiempo caminando (time) / distancia máxima (distance).
isolevels= valor de la isócrona /as. Permite especificar n isócronas para un mismo mo. Si:

  • weight=time -> valor en milisegundos
  • weight=distance -> valor en metros

net= código de red a utilizar. Redes disponibles: Ver Anexo 2
method= tipo de isócrona. Dos opciones:

  • convexhull: isócrona mejorada, polígono convexo
  • concavehull: isócrona simplificada, polígono cóncavo

clientid= clave de cliente (contactar con Nexus)

 

Resto de parámetros, añadirlos con los valores indicados en el ejemplo

Respuesta:

<cercalia cmd="route" net="ESPW" version="1">
	<isocrhones center="" id="2.8260807,41.9723144" inverse="0" method="convexhull" net="ESPW" ocs="EPSG:4326" weight="time">
		<isocrhone level="120000">POLYGON((2.824596 41.972373, 2.824679 41.972123, 2.825704 41.971501, 2.826633 41.971441, 2.827483 41.972227, 2.827689 41.972437, 2.827443 41.972642, 2.826490 41.973251, 2.825570 41.973107, 2.825313 41.972981, 2.824596 41.972373))</isocrhone>
		<isocrhone level="300000">POLYGON((2.824113 41.970791, 2.824263 41.970663, 2.825529 41.970092, 2.826694 41.969754, 2.827381 41.969822, 2.828057 41.970386, 2.828425 41.970703, 2.829847 41.971956, 2.829968 41.972123, 2.828955 41.973342, 2.824808 41.974334, 2.824231 41.974147, 2.824113 41.970791))</isocrhone>
		<isocrhone level="600000">POLYGON((2.820341 41.974847, 2.820816 41.970313, 2.823459 41.967852, 2.823701 41.967703, 2.827544 41.966804, 2.828324 41.966894, 2.828493 41.967006, 2.830166 41.968462, 2.831011 41.969629, 2.832744 41.972590, 2.826764 41.976112, 2.825866 41.976544, 2.824984 41.976834, 2.824253 41.977027, 2.823247 41.976778, 2.821394 41.975694, 2.820341 41.974847))</isocrhone>
	</isocrhones>
</cercalia>

Donde:

isocrhone level= nivel de la isócrona 
POLYGON= polígono de la isócrona, en formato WKT

Snap to road

Petición para obtener la ruta a partir de un track GPS (snap to road)

Petición para obtener la ruta real por la que ha circulado un vehículo, a partir de su track GPS

Petición:

Ejemplo de petición:
cmd=geomtrack&TRACK=[2.857783,42.023196@250,45@@70],[2.826567,42.031977@310,45@@75],[2.815454,42.057026@330,45@@100]&SRS=EPSG:4326

Donde:

TRACK

Lista de puntos ordenados, separados por comas, limitado a un máximo de 300 puntos. Cada punto tiene el siguiente formato:

[coordenada{@<compás>}{@@velocidad}]

Donde:

  • coordenada: es una lista de ordenadas separadas por coma.
  • compás: Elemento opcional que identifica el rumbo del vehículo. Formato: @tolerance angle,direction tolerance
    • tolerance angle: corresponde al rumbo (en grados). Posibles valores: 0-360
    • direction tolerance: corresponde a la tolerancia (en grados) respecto al rumbo indicado. Posibles valores: 0-180
  • velocidad: Elemento opcional que indica la velocidad del vehículo en el punto indicado en Km/h.
SRS Sistema de coordenadas de la lista de puntos. Utilizar EPSG:4326 para coordenadas geográficas
WEIGHT Peso usado para la resolución (por defecto distancia 
NET Red usada para el cálculo (opcional)

Respuesta:

 

{"cercalia": {"cmd": "geomtrack","version": "1","track": {"geometry": {"wkt": {"$valor": "MULTILINESTRING ((2.857783638413659 42.02319542971281, 2.856741418181331 42.02254675781583, 2.8561934458580183 42.02229892250855, 2.855627507229023 42.02212476738611, 2.8550795349057103 42.022010896469304, 2.8544327479011438 42.02192381857078, 2.8535164663113424 42.02185683549016, 2.8528337466954112 42.02184343886551, 2.8525283194988105 42.02185683549016, 2.852267808066416 42.02187693042182, 2.851764751507309 42.02197070668492, 2.8512886444067256 42.02215156051315, 2.8510460992800133 42.022325715561664, 2.8503633796640826 42.02281468678302, 2.8499501546333876 42.023176389084554, 2.8489709909736973 42.023986862641316, 2.847354023462282 42.02535995524419, 2.8471204614884114 42.02559438270294, 2.846779101680446 42.02587569450395, 2.8465724891650983 42.02596946482563, 2.846105365217356 42.0261101200469, 2.8456472244224553 42.02620389002025, 2.845368746684378 42.02624407710902, 2.845045353182095 42.02627086848733, 2.8434463519763624 42.02624407710902, 2.8429612617229374 42.0262574727996, 2.8424851546223544 42.0262909620136, 2.8418383676177883 42.026351242554, 2.8411466648490165 42.02647850128354, 2.840868187110939 42.02653208382973, 2.840032753896708 42.02673301797275, 2.839421899503507 42.02695404479111, 2.8389098597915585 42.02716167533954, 2.8380654434244863 42.02755014356313, 2.8371042460704783 42.02805916727081, 2.836619155817054 42.02836725857285, 2.835756773144299 42.028842787847275, 2.835559143781793 42.02898343666428, 2.8353615144192865 42.02910399254361, 2.8347147274147204 42.02947235630339, 2.834274552925502 42.029679978565824, 2.8338972605061716 42.02988760014512, 2.832675551719769 42.03036311796232, 2.8319030005754264 42.03054394774102, 2.831372994557796 42.03065780326176, 2.830564510802088 42.03075156647751, 2.8296931449764924 42.030878816333164, 2.8288217791508963 42.03105964463396, 2.82839957096736 42.03117349922415, 2.8277797334213175 42.0313945104892, 2.827375491543464 42.031555245468454, 2.8270880306525457 42.031689190971704, 2.8267017550803746 42.031896805939795, 2.82659395724628 42.03196377836441, 2.8265220920235503 42.032037447949385, 2.8260459849229673 42.03233882262856, 2.8258842881718254 42.0324660692831, 2.8254441136826074 42.032847807706965, 2.825030888651912 42.033269726435655, 2.8247164783024705 42.03367155117314, 2.824482916328599 42.03401979720884, 2.824285286966093 42.034408223211706, 2.8240876576035867 42.034883706959675, 2.823773247254145 42.035881541483484, 2.8236115505030033 42.0364239818174, 2.823000696109802 42.038352620786064, 2.8228030667472956 42.03888164686428, 2.8225066227035365 42.0396986151295, 2.8223556389600484 42.04010423811514), (2.8223556389600484 42.04010423811514, 2.821599324266576 42.0421360641219, 2.820961520414851 42.043575721888, 2.820422531244379 42.044707336785336, 2.8196769295585598 42.04626745894128, 2.819479300196053 42.046716070613954, 2.819308620292071 42.047157983469795, 2.819137940388088 42.047693631264494, 2.8190031930954698 42.048209187969746, 2.8180779283528268 42.052768668328504, 2.8179970799772565 42.05306994396388, 2.817835383226115 42.053551981986, 2.8176467370164495 42.05398045713391, 2.817494023418149 42.05428172697873, 2.8172694445971196 42.05465663855284, 2.817062832081772 42.05496459996373, 2.816775371190854 42.055339507476994, 2.8158950222124166 42.05645752200172, 2.8154833331769398 42.0570388069664))"}}},"server": {"$valor": "http://c1.cercalia.com"}}}

Donde:

geomtrack= WKT de tipo polilínea (linestring / multilinestring) con la ruta real

Representación visual de la polilínea:

Polilinea

 

Proximidad

Petición para pedir los N puntos de interés (POIs) más próximos

Petición:

Ejemplo de petición:
cmd=prox&mo=40.3691,-3.589&mocs=gdd&rqpoicats=C001&num=2&distance=10000

Donde:

cmd=prox Petición de proximidad.
mocs=gdd Coordenadas expresadas en geográficas (LatLon).
mo= Coordenada en geográficas del centro de búsqueda. 
rqpoicats= Lista de categorías de las que se desea obtener puntos de interés, separadas por comas
num= Número máximo de puntos de interés a devolver
distance= Distancia máxima de búsqueda (radio máximo)

Respuesta:

<cercalia cmd="prox" version="1">
	<proximity center="-399526,4892043" num="2" type="poi">
		<poilist num="2">
			<poi category_id="C001" dist="334" geometry="P" id="C17240002129068" pos="1" subcategory_id="-1">
				<name>La Paloma</name>
				<info>La Paloma. Avenida del Mediterráneo, Km11.9 - 28051 Vallecas. Tel: +(34) - (913) - 310648.</info>
				<ge>
					<city id="ESP17240001236707">Madrid</city>
					<municipality id="ESP280796">Madrid</municipality>
					<subregion id="ESP28">Madrid</subregion>
					<region id="ESPMAD">Comunidad de Madrid</region>
					<country id="ESP">España</country>
				</ge>
				<coord x="-399238" y="4891872"/>
			</poi>
			<poi category_id="C001" dist="517" geometry="P" id="C17240000809703" pos="2" subcategory_id="-1">
				<name>San Pedro I</name>
				<info>San Pedro I. Carretera A-3 Mg Izdo, Km11.2 - 28051 Vallecas. Tel: +(34) - (913) - 328943. Web: www.estacionesdeserviciobp.com.</info>
				<ge>
					<city id="ESP17240001236707">Madrid</city>
					<municipality id="ESP280796">Madrid</municipality>
					<subregion id="ESP28">Madrid</subregion>
					<region id="ESPMAD">Comunidad de Madrid</region>
					<country id="ESP">España</country>
				</ge>
				<coord x="-399953" y="4892335"/>
			</poi>
		</poilist>
	</proximity>
	<server>http://c2.cercalia.com</server>
</cercalia>

Donde:

dist= distancia en línea recta del POI al centro de búsqueda
pos= orden de proximidad en la lista de POIs devueltos (de más a menos cercano) 
name= nombre del POI
info= información adicional del POI
dist= distancia proyectada en línea recta.

Petición para pedir los N puntos de interés (POIs) más próximos por ruta a un centro

Petición:

Ejemplo de petición:
cmd=prox&mo=40.3691,-3.589&rqpoicats=C001&num=10&&weight=time&mocs=gdd&inverse=0

Donde:

cmd=prox Petición de proximidad.
weight=time Obtener los puntos de interés ordenados por tiempo de ruta.
mocs=gdd Coordenadas expresadas en geográficas (LatLon).
mo= Coordenada en geográficas del centro. 
rqpoicats= Lista de categorías de las que se desea obtener puntos de interés
num= Número de puntos de interés a devolver (por defecto 1)
inverse Si 0 -> los tiempos de ruta son del centro a los puntos de interés
1 -> los tiempos de ruta son de los puntos de interés hasta el centro

Respuesta:

<cercalia cmd="prox" version="1">
	<proximity center="-399526,4892043" inverse="0" num="10" type="poi" weight="time">
		<poilist num="10">
			<poi category_id="C001" dist="334" geometry="P" id="C17240002129068" pos="1" routedist="254" routerealtime="35549" routetime="35549" routeweight="35549" subcategory_id="-1">
				<name>La Paloma</name>
				<info>La Paloma. Avenida del Mediterráneo, Km11.9 - 28051 Vallecas. Tel: +(34) - (913) - 310648.</info>
				<ge>
					<city id="ESP17240001236707">Madrid</city>
					<municipality id="ESP280796">Madrid</municipality>
					<subregion id="ESP28">Madrid</subregion>
					<region id="ESPMAD">Comunidad de Madrid</region>
					<country id="ESP">España</country>
				</ge>
				<coord x="-399238" y="4891872"/>
			</poi>
			<poi category_id="C001" dist="3325" geometry="P" id="C17240001859130" pos="2" routedist="4442" routerealtime="287052" routetime="287052" routeweight="287052" subcategory_id="-1">
				<name>Valdemingomez</name>
				<info>Valdemingomez. 28051 Canada Real.</info>
				<ge>
					<city id="ESP17240001236707">Madrid</city>
					<municipality id="ESP280796">Madrid</municipality>
					<subregion id="ESP28">Madrid</subregion>
					<region id="ESPMAD">Comunidad de Madrid</region>
					<country id="ESP">España</country>
				</ge>
				<coord x="-399474" y="4888718"/>
			</poi>
			<poi category_id="C001" dist="532" geometry="P" id="C17240000753382" pos="3" routedist="6131" routerealtime="410349" routetime="410349" routeweight="410349" subcategory_id="-1">
				<name>San Pedro I</name>
				<info>San Pedro I. 28031 Vallecas. Tel: +(34) - (913) - 328943. Web: www.estacionesdeserviciobp.com.</info>
				<ge>
					<city id="ESP17240001236707">Madrid</city>
					<municipality id="ESP280796">Madrid</municipality>
					<subregion id="ESP28">Madrid</subregion>
					<region id="ESPMAD">Comunidad de Madrid</region>
					<country id="ESP">España</country>
				</ge>
				<coord x="-399878" y="4892442"/>
			</poi>
			<poi category_id="C001" dist="1826" geometry="P" id="C17240002671622" pos="4" routedist="7428" routerealtime="480963" routetime="480963" routeweight="480963" subcategory_id="-1">
				<name>Fundosa Galenas S.A.U. I</name>
				<info>Fundosa Galenas S.A.U. I. Carretera de Vallecas a Vicálvaro, Km0.28 - 28031 Vallecas. Web: www.repsol.com.</info>
				<ge>
					<housenumber>Km0.28</housenumber>
					<street id="ESP280796000097298">Carretera de Vallecas a Vicálvaro</street>
					<city id="ESP17240001236707">Madrid</city>
					<municipality id="ESP280796">Madrid</municipality>
					<subregion id="ESP28">Madrid</subregion>
					<region id="ESPMAD">Comunidad de Madrid</region>
					<country id="ESP">España</country>
				</ge>
				<coord x="-400445" y="4893622"/>
			</poi>
			<poi category_id="C001" dist="1840" geometry="P" id="C17240000808691" pos="5" routedist="7494" routerealtime="486349" routetime="486349" routeweight="486349" subcategory_id="-1">
				<name>Fundosa Galenas S.A.U. D</name>
				<info>Fundosa Galenas S.A.U. D. Carretera de Vallecas a Vicálvaro, Km0.28 - 28031 Vallecas. Web: www.repsol.com.</info>
				<ge>
					<housenumber>Km0.28</housenumber>
					<street id="ESP280796000097298">Carretera de Vallecas a Vicálvaro</street>
					<city id="ESP17240001236707">Madrid</city>
					<municipality id="ESP280796">Madrid</municipality>
					<subregion id="ESP28">Madrid</subregion>
					<region id="ESPMAD">Comunidad de Madrid</region>
					<country id="ESP">España</country>
				</ge>
				<coord x="-400375" y="4893676"/>
			</poi>
			<poi category_id="C001" dist="517" geometry="P" id="C17240000809703" pos="6" routedist="7856" routerealtime="499707" routetime="499707" routeweight="499707" subcategory_id="-1">
				<name>San Pedro I</name>
				<info>San Pedro I. Carretera A-3 Mg Izdo, Km11.2 - 28051 Vallecas. Tel: +(34) - (913) - 328943. Web: www.estacionesdeserviciobp.com.</info>
				<ge>
					<city id="ESP17240001236707">Madrid</city>
					<municipality id="ESP280796">Madrid</municipality>
					<subregion id="ESP28">Madrid</subregion>
					<region id="ESPMAD">Comunidad de Madrid</region>
					<country id="ESP">España</country>
				</ge>
				<coord x="-399953" y="4892335"/>
			</poi>
			<poi category_id="C001" dist="1985" geometry="P" id="C17240000743819" pos="7" routedist="7840" routerealtime="572486" routetime="572486" routeweight="572486" subcategory_id="-1">
				<name>GPV-Pau de Vallecas-139</name>
				<info>GPV-Pau de Vallecas-139. Calle Real de Arganda, 74 - 28051 Vallecas. Web: www.repsol.com.</info>
				<ge>
					<housenumber>74</housenumber>
					<street id="ESP280796000097303">Calle Real de Arganda</street>
					<city id="ESP17240001236707">Madrid</city>
					<municipality id="ESP280796">Madrid</municipality>
					<subregion id="ESP28">Madrid</subregion>
					<region id="ESPMAD">Comunidad de Madrid</region>
					<country id="ESP">España</country>
				</ge>
				<coord x="-401225" y="4893070"/>
			</poi>
			<poi category_id="C001" dist="3094" geometry="P" id="C17240000620599" pos="8" routedist="8669" routerealtime="660968" routetime="660968" routeweight="660968" subcategory_id="-1">
				<name>Cepsa</name>
				<info>Cepsa. Avenida del Ensanche de Vallecas, 2 - 28051 Santa Eugenia. Web: www.cepsa.com.</info>
				<ge>
					<housenumber>2</housenumber>
					<street id="ESP280796000100228">Avenida del Ensanche de Vallecas</street>
					<city id="ESP17240001236707">Madrid</city>
					<municipality id="ESP280796">Madrid</municipality>
					<subregion id="ESP28">Madrid</subregion>
					<region id="ESPMAD">Comunidad de Madrid</region>
					<country id="ESP">España</country>
				</ge>
				<coord x="-402313" y="4893388"/>
			</poi>
			<poi category_id="C001" dist="1365" geometry="P" id="C17240002506529" pos="9" routedist="7465" routerealtime="711577" routetime="711577" routeweight="711577" subcategory_id="-1">
				<name>Carrefour La Gavia</name>
				<info>Carrefour La Gavia. Calle del Alto del Retiro, 2 - 28051 Vallecas.</info>
				<ge>
					<housenumber>2</housenumber>
					<street id="ESP280796000100267">Calle del Alto del Retiro</street>
					<city id="ESP17240001236707">Madrid</city>
					<municipality id="ESP280796">Madrid</municipality>
					<subregion id="ESP28">Madrid</subregion>
					<region id="ESPMAD">Comunidad de Madrid</region>
					<country id="ESP">España</country>
				</ge>
				<coord x="-400890" y="4891983"/>
			</poi>
			<poi category_id="C001" dist="3602" geometry="P" id="C17240001001301" pos="10" routedist="19586" routerealtime="856831" routetime="856831" routeweight="856831" subcategory_id="-1">
				<name>Valdemingomez</name>
				<info>Valdemingomez. 28051 Canada Real.</info>
				<ge>
					<city id="ESP17240001236707">Madrid</city>
					<municipality id="ESP280796">Madrid</municipality>
					<subregion id="ESP28">Madrid</subregion>
					<region id="ESPMAD">Comunidad de Madrid</region>
					<country id="ESP">España</country>
				</ge>
				<coord x="-399475" y="4888441"/>
			</poi>
		</poilist>
	</proximity>
	<server>http://c4.cercalia.com</server>
</cercalia>

Donde: 

routedist= distancia en ruta especificada en metros.
routetime= tiempo en ruta especificada en milisegundos.
dist= distancia proyectada en línea recta.

Petición para pedir las N coordenadas más próximas por ruta a un centro

Petición:

Ejemplo de petición:
cmd=prox&mo=42.369140,-3.489919|CENTRO&mocs=gdd&rqmolist=%5b40.369140,-3.589919|A%5d,%5b40.367223,-3.583056|B%5d&weight=time&num=2

Donde:

cmd=prox Petición de proximidad.
weight=time Obtener los puntos de interés ordenados por tiempo de ruta.
mocs=gdd Coordenadas expresadas en geográficas (LatLon).
mo= Coordenada en geográficas del centro con formato lat,lon|ID 
rqmolist= Lista de puntos que se desea ordenar por tiempo en ruta en formato [lat1,lon1|ID1], [lat2,lon2|ID2], ...
num= Número de puntos en rqmolist
inverse Si 0 -> los tiempos de ruta son del centro a la lista de puntos
1 -> los tiempos de ruta son de la lista de puntos hasta el centro

Respuesta:

<cercalia cmd="prox" version="1">
	<proximity center="-388496,5187633" inverse="0" num="2" type="mo" weight="time">
		<molist num="2">
			<mo dist="296045" id="B" pos="1" routedist="272234" routerealtime="9916465" routetime="9916465" routeweight="9916465">
				<coord x="-398864" y="4891770"/>
			</mo>
			<mo dist="295794" id="A" pos="2" routedist="271833" routerealtime="10130961" routetime="10130961" routeweight="10130961">
				<coord x="-399628" y="4892049"/>
			</mo>
		</molist>
	</proximity>
	<server>http://c1.cercalia.com</server>
</cercalia>

Donde: 

routedist= distancia en ruta especificada en metros.
routetime= tiempo en ruta especificada en milisegundos.
dist= distancia proyectada en línea recta.

Petición para pedir los puntos de interés (POIs) cercanos a una ruta

Petición:

Ejemplo de petición:
cmd=geom&routeweight=time&tolerance=5&routeid=2767920,2778988|0.6167333,0.6414299&getpoicats=C001&buffer=100

Donde:

cmd=geom
routeid= Identificador de ruta obtenido con un cmd=route (los ID de ruta se guardan de forma temporal, se borran cada cierto tiempo).
routeweight= tipo de ruta: tiene que coincidir con la utilizada en el cálculo de la ruta (ej: time) 
getpoicats= Lista de categorías de las que se desea obtener puntos de interés.
buffer= Distancia máxima a la que se deben encontrar los puntos de interés respecto la ruta.
tolerance= generalización de la línea de ruta en metros (si =0, no se aplica ninguna generalización). Por defecto, 100 metros

Respuesta:

<cercalia cmd="geom" version="1">
	<getpoicats>
		<poicats>
			<poicat>C001</poicat>
		</poicats>
		<poilist num="3">
			<poi category_id="C001" geometry="P" id="C12760043271405" subcategory_id="-1">
				<name>Aral Wetterau Ost</name>
				<info>Aral Wetterau Ost. 61239 Hasselhecke. Tel: +(49) - (6002) - 7915. E-mail: tank.wetterau.ost@live.de.</info>
				<ge>
					<city id="DEU12760044369035">Ober-Mörlen</city>
					<municipality id="DEU06440018">Ober-Mörlen</municipality>
					<subregion id="DEU06440">Wetteraukreis</subregion>
					<region id="DEU06">Hessen</region>
					<country id="DEU">Deutschland</country>
				</ge>
				<coord x="967897" y="6475193"/>
			</poi>
....
 

 

POIs

Petición para pedir los puntos de interés (POIs) dentro de una extensión

Petición:

Ejemplo de petición:
cmd=map&map=0&extent=39.177054843,-0.788648954|38.691551633,0.144251468&cs=gdd&getpoicats=D00GAS

Donde:

cmd=map&map=0 Petición de mapa sin generar el mapa 
cs=gdd Sistema de coordenadas de los objetos en geográficas (LatLon).
extent= extensión del área: Y,X|Y,X. Coordenadas superior-izquierda de la extensión | Coordenadas inferior-derecha de la extensión
getpoicats= Lista de categorías de las que se desea obtener puntos de interés.

Respuesta:

<cercalia cmd="map" version="1">
	<proximity op="3"/>
	<map smap="0" style="default">
		<img center="-35867,4685469" format="gif" height="250" href="" scale="8" width="350">
			<extent>
				<coord x="-105319" y="4735078"/>
				<coord x="33586" y="4635860"/>
			</extent>
		</img>
		<label op="1" pt="-35867,4685469"/>
		<poicats/>
		<shapes/>
		<getpoicats>
			<poicat>D00GAS</poicat>
			<poilist>
				<poi category_id="D00GAS" geometry="P" id="D00N09430387274N" subcategory_id="DEF">
					<name>PARGA I</name>
					<info>N|CR N-344 DIRC.VALENCIA, KM. 118.3|CAUDETE|Caudete|ALBACETE|02660|L-D: 06:00-22:00|P|1.249|1.135||||1.390||1.219|0.0</info>
					<ge>
						<city id="ESP17240002809067">Caudete</city>
						<municipality id="ESP020254">Castilla-La Mancha</municipality>
						<subregion id="ESP02">Albacete</subregion>
						<region id="ESPCLM">Castilla-La Mancha</region>
						<country id="ESP">España</country>
					</ge>
					<coord x="-104974" y="4655973"/>
					<pixels x="1" y="199"/>
				</poi>
			</poilist>
		</getpoicats>
	</map>
	<server>http://c4.cercalia.com</server>
</cercalia>
 

La petición puede devolver puntos fuera de la extensión pedida.

Petición para pedir los puntos de interés (POIs) dentro de una extensión con filtro por nivel de zoom

Petición:

Ejemplo de petición:
cmd=map&map=0&extent=39.177054843,-0.788648954|38.691551633,0.144251468&cs=gdd&gpoicats=D00GAS&map=0&mocs=gdd

Donde:

cmd=map&map=0 Petición de mapa sin generar el mapa 
cs=gdd Sistema de coordenadas de los objetos en geográficas (LatLon).
extent= extensión del área: Y,X|Y,X. Coordenadas superior-izquierda de la extensión | Coordenadas inferior-derecha de la extensión
getpoicats= Lista de categorías de las que se desea obtener puntos de interés.

Respuesta:

<cercalia cmd="map" version="1">
	<proximity op="3"/>
	<map smap="0" style="default">
		<img center="-35867,4685469" format="gif" height="250" href="/MapesNG/Cercalia/map/map77/44091920.gif" scale="8" width="350">
			<extent>
				<coord x="-105319" y="4735078"/>
				<coord x="33586" y="4635860"/>
			</extent>
		</img>
		<label op="1" pt="-35867,4685469"/>
		<poicats/>
		<shapes/>
		<getpoicats>
			<poicat>D00GAS</poicat>
			<poilist>
				<poi category_id="D00GAS" id="D00003780386529I" subcategory_id="DEF">
					<name>CALPE AUTOMOCION II</name>
					<info>I|PARTIDA ESTACION II, 6|CALPE|Calpe/Calp|ALICANTE|03710|L-D: 24H|P|1.219|1.079||||1.369||1.149|0.0</info>
					<ge>
						<municipality id="ESP030475"/>
					</ge>
					<coord x="4209" y="4645392"/>
					<pixels x="275" y="225"/>
				</poi>
			</poilist>
		</getpoicats>
	</map>
	<server>http://c1.cercalia.com</server>
</cercalia>
 

La petición puede devolver puntos fuera de la extensión pedida.

Petición para pedir los puntos de interés (POIs) dentro de un polígono

Petición:

Ejemplo de petición:
cmd=prox&rqpoicats=C001&cs=4326&wkt=POLYGON((2.149028778076172%2041.39586980544921,2.146625518798828%2041.41930231731321,2.1816444396972656%2041.41981722266227,2.1813011169433594%2041.398187683195694,2.149028778076172%2041.39586980544921))

Donde:

cmd=prox Petición de proximidad. 
cs=4326 Coordenadas de la geometría expresadas en geográficas (LonLat).
wkt= Polígono o multi-polígono expresado en formato WKT
rqpoicats= Lista de categorías de las que se desea obtener puntos de interés

Respuesta:

<cercalia cmd="prox" version="1">
	<proximity buffer="0.0" cs="4326" tolerance="0.0" type="poi" wkt="POLYGON((2.149028778076172 41.39586980544921,2.146625518798828 41.41930231731321,2.1816444396972656 41.41981722266227,2.1813011169433594 41.398187683195694,2.149028778076172 41.39586980544921))">
		<poilist num="9">
			<poi category_id="C001" geometry="P" id="C17240007719361" subcategory_id="-1">
				<name>Legalitat</name>
				<info>Legalitat. Carrer de la Legalitat, 59 - 08024 el Baix Guinardo. Tel: +(34) - (932) - 195641. Web: www.repsol.com.</info>
				<ge>
					<housenumber>59</housenumber>
					<street id="ESP080193000001884">Carrer de la Legalitat</street>
					<city id="ESP17240008430951">Barcelona</city>
					<municipality id="ESP080193">Barcelona</municipality>
					<subregion id="ESP08">Barcelona</subregion>
					<region id="ESPCAT">Cataluña</region>
					<country id="ESP">España</country>
				</ge>
				<coord x="240646" y="5044535"/>
			</poi>
			<poi category_id="C001" geometry="P" id="C17240007801323" subcategory_id="-1">
			<name>Estación de Servicio Galp</name>
			...
		</poilist>
	</proximity>
	<server>http://c2.cercalia.com</server>
</cercalia>
 

 

Mapas estáticos

Mapas estáticos (imágenes bajo petición) 

CERCALIA tiene habilitado un sistema para lanzar peticiones en formato http y recibir las respuestas en XML (o obtener la imagen directamente).

Actualmente las dimensiones máximas del mapa están fijadas en &width=1680&height=1280 (valores en píxeles).

Cómo pintar markers en el mapa

Petición:

Ejemplo de petición:
cmd=map&width=500&height=400&labelop=0&mocs=gdd&cs=gdd&extent=41.439132726,2.003108336|41.390497829,2.197135455&molist=[41.404725,2.14021||1|]&img=

Donde:

width=&height= alto y ancho del mapa (en píxeles)
mocs=gdd parámetro fijo para indicar que las coordenadas están en formato geográficas
extent= Y,X superior izquierda|Y,X inferior derecha
molist= puntos a pintar (markers). Formato: [Y,X||tipo icono (valor numérico)|],[Y,X||tipo icono (valor numérico)|], etc
Iconos disponibles (en caso de necesitar más pedirlos a scarbo@ngeografics.com): 
1= Opcional: img= devuelve la imagen directamente, en vez del XML

Respuesta:

En caso de no utilizar el parámetro &img= (que fuerza a devolver la imagen directamente como respuesta), la respuesta es en formato XML, e incluye el path de donde descargar la imagen GIF correspondiente al mapa ya generado. Ejemplo:


<cercalia version="1" cmd="map">
	<proximity op="3" center=""/>
	<map style="default" smap="0" cmode="molist">
		<img width="500" center="2.1402092149562364,41.40472286871521" scale="0" href="/MapesNG/Cercalia/map/map2/1164552.gif" height="400" format="gif">
			<extent>
				<coord y="41.405615633920526" x="2.1387269947374388"/>
				<coord y="41.403830091151015" x="2.141691435175033"/>
			</extent>
		</img>
<label op="0" pt="2.1402092149562364,41.40472286871521"/>
<poicats/>
	<shapes>
		<shape type="CIRCLE">
			<outline width="4" color="125,141,177,200"/>
			<fill color="0,255,0,0"/>
			<params>
				<coord y="41.40472286871521" x="2.1402092149562364"/>
				<rad>100.0</rad>
			</params>
		</shape>
	</shapes>
	<molist num="1">
		<mo id="">
			<status>1</status>
			<coord y="41.40472286871521" x="2.1402092149562364"/>
			<pixels y="200" x="250"/>
		</mo>
	</molist>
	</map>
	<server>http://c6.cercalia.com</server>
</cercalia>

Donde:

href="/MapesNG/Cercalia/map/map2/1164552.gif" Path de la imagen (mapa)
http://c6.cercalia.com Servidor donde se encuentra la imagen
Por lo tanto, el path completo sería:
http://c6.cercalia.com/MapesNG/Cercalia/map/map2/1164552.gif"

Ejemplo de mapa generado:

Polilinea

Cómo pintar líneas y círculos

Ejemplo de petición:
cmd=map&width=500&height=400&labelop=0&mocs=gdd&cs=gdd&extent=41.439132726,2.003108336|41.390497829,2.197135455&molist=[41.404725,2.14021||1|]&shape=[255,0,0,128|1|0,255,0,128|CIRCLE|41.439132726,2.003108336|2000],[255,0,0|2|255,0,0|POLYLINE|41.401902461,2.142455003|41.404628181,2.155965665|41.433339308,2.179860852]&img=

Donde:

SHAPE

Permite dibujar figuras por encima del mapa. Se puede especificar una lista de formas separadas por comas o emplear varias veces el parámetro en la petición con distintos valores.

El formato general para especificar una figura:

[color contorno | grueso | color interior | figura | parámetros específicos]

  • color contorno: Es el color con que se pinta el contorno de la forma se especifica en formato RGBA.
  • grueso: valor entero que representa el número de píxeles de grueso que tiene el contorno.
  • color interior: Es el color con el que se pinta el interior de la figura en formato RGBA.
  • figura: Nombre de la figura a dibujar.
  • parámetros específicos: Parámetros específicos según la figura a dibujar.

El formato de color RGBA :

rojo,verde,azul,alpha

  • Rojo: Nivel de rojo [valor entre 0-255]
  • Verde: Nivel de verde [valor entre 0-255].
  • Azul: Nivel de azul [valor entre 0-255]
  • Alpha: Nivel de transparencia [valor entre 0 (transparente) –255 (opaco)]. Si no se especifica asume valor 255.

Ejemplo de utilización:

cmd=map&ctn=Girona&shape=[255,0,0|3|0,255,0,128|RECTANGLE|316502,5132529|314502,5130528],[255,0,0,128|10|0,255,0,128|CIRCLE|314502,5130528|1000]

Nombres de figuras y parámetros específicos

CIRCLE

Dibuja un círculo. Los parámetros específicos tienen el siguiente formato:

centro | radio

centro: es una coordenada en el sistema especificado por el parámetro MOCS.

radio: es una distancia expresada en metros

RECTANGLE

Dibuja un rectángulo. Los parámetros específicos tienen el siguiente formato:

coordenada superior izquierda | coordenada inferior derecha

coordenada superior izquierda: es una coordenada en el sistema especificado por el parámetro MOCS.

coordenada inferior derecha: es una coordenada en el sistema especificado por el parámetro MOCS.

SECTOR

Dibuja un sector. Los parámetros específicos tienen el siguiente formato:

centro | radio interior | radio exterior | ángulo inicio | ángulo fin

centro: es una coordenada en el sistema especificado por el parámetro MOCS.

radio interior: Radio en metros donde empieza el sector.

radio externo: Radio en metros donde termina el sector.

ángulo inicio: Ángulo en grados en el que empieza el sector.

ángulo fin: Ángulo en grados en el que acaba el sector.

LINE

Dibuja una línea. En este caso no existe el color interior. Los parámetros específicos tienen el siguiente formato:

coordenada superior izquierda | coordenada inferior derecha

coordenada superior izquierda: es una coordenada en el sistema especificado por el parámetro MOCS.

coordenada inferior derecha: es una coordenada en el sistema especificado por el parámetro MOCS

POLYLINE

Dibuja una poli línea. En este caso no existe el color interior. Los parámetros específicos tienen el siguiente formato:

coordenada 1 | coordenada 2 | ... | coordenada n

  LABEL

Dibuja una etiqueta con un punto en el centro especificado. Los parámetros específicos tienen el siguiente formato:

centro | texto

centro: es una coordenada en el sistema especificado por el parámetro MOCS.

texto: Texto a escribir

Ejemplo de mapa generado:

Mapa estatico

 

Anexo 1: Códigos categorías POIs

Códigos de categorías de Puntos de Interés (POIs):

Categoría

Código

Gasolinera

C001

Area de aparcamiento & descanso

C002

Area de servicio

C003

Estación de ferrocarril

C004

Aeropuerto

C005

Terminal ferry

C006

Aparcamiento

C007

Venta de coches

C008

Hospital

C009

Centro comercial

C010

Oficina de correos

C011

Edificio administración pública

C012

Hotel

C013

Restaurante

C014

Estadio

C015

Acceso aeropuerto

C016

Puerto de montaña

C017

Embajada

C018

Paso fronterizo

C019

Pico de montaña

C020

Vista panorámica

C021

Playa

C022

Camping

C023

Cajero automático

C024

Cine

C025

Farmacia

C026

Universidad/Escuela

C027

Taller mecánico

C028

Centro de información turística

C029

Museo

C030

Teatro

C031

Centro de deportes

C032

Comisaría de policía

C033

Piscina

C034

Lugar de culto

C035

Casino

C036

Atracción turística importante

C037

Pista de patinaje sobre hielo

C038

Parque y área recreativa

C039

Palacio de justicia

C040

Ópera

C041

Sala de conciertos

C042

Centro de convenciones

C043

Puerto deportivo

C044

Parque de atracciones

C045

Campo de golf

C046

Biblioteca

C047

Zoo

C048

Metro

C049

Polígono industrial

C050

Parada de tranvía

C051

Taller de lunas

C052

Venta y reparación de neumáticos

C053

Taller de motocicletas

C054

Taller de camiones

C055

Concesionario de coches

C056

Concesionario de motocicletas

C057

Concesionario de yates

C058

Concesionario de vehículos de recreo

C059

Concesionario de camiones

C060

Concesionario de furgonetas

C061

Concesionario de autocares

C062

Concesionario de vehículos de nieve

C063

Empresa (transporte y logística)

C064

Empresa (salud)

C065

Empresa (Minería & Petróleo & Gas)

C066

Empresa (construcción)

C067

Empresa (empresas y oficinas)

C068

Parque costero

C069

Estación de esquí

C070

Empresa (servicios autobus y taxi)

C071

Parque botánico

C072

Parque acuático

C074

Parque de fauna salvaje

C075

Bed & Breakfast

C076

Resort hotelero

C077

Supermercado & Hypermercado

C078

Aeropuerto militar

C079

Campo de aviación

C080

Parada de Bus

C081

Parada de Taxi

C082

Parada de autocar

C083

Tienda (librería)

C084

Tienda (CD's, DVD & Videos)

C085

Tienda (ropa & accesorios)

C086

Tienda (artículos de conveniencia)

C087

Tienda (informática, electrónica, fotografía, etc)

C088

Tienda (inmobiliaria)

C089

Tienda (outlet)

C090

Tienda (floristería)

C091

Tienda (alimentación)

C092

Tienda (regalos, souvenirs)

C093

Tienda (casa, jardín)

C094

Tienda (joyería)

C095

Quiosco

C096

Tienda (óptica)

C097

Tienda (material deportivo)

C098

Tienda (juguetería)

C099

Tienda (agencia de viajes)

C100

Tienda (material construcción)

C101

Tienda (otros)

C102

Tienda (telefonía móvil)

C103

Estación recarga vehículo eléctrico

C104

Alquiler de vehículos

C105

Banco

C106

Mercado

C107

Aparcamiento para camiones

C108

Lavado de vehículos

C109

Industria

C110

Parquing alquiler vehículos

C111

Parada de transporte público, sin categorizar

C112

Tranvías (España)

D00TRA

Guarderías (España)

D00GUA

Escuelas de educación infantil (España)

D00ESC|INF

Escuelas de educación primaria (España)

D00ESC|PRI

Escuelas de educación secundaria y bachillerato (España)

D00ESC|SEC

Escuelas de formación profesional (España)

D00ESC|FPR

Otros tipos de escuelas (España)

D00ESC|RES

Radares (España)

D00RAD

Puntos Negros Carreteras (España)

D00PNG

Cámaras de tráfico

D00CAM

Incidencias tráfico: Retenciones

D00A2

Incidencias tráfico: Obras

D00A3

Incidencias tráfico: Conos

D00A4

Incidencias tráfico: Meteorología

D00A5

Anexo 2: Lista de países disponibles isócronas a pie

Códigos de categorías de Puntos de Interés (POIs):

Código

Descripción

ESP (*) Península Ibérica + sur de Francia
FRA Francia, Mónaco
ITA Italia, San Marino
BNL Bélgica, Holanda, Luxemburgo
GBR Inglaterra, Irlanda, Isla de Man
CHE Suiza, Austria, Liechtenstein
DEU Alemania
DNK Dinamarca
MEX México
ARG Argentina, Chile, Uruguay
COL Colombia
TUR Turquía
BRA Brasil
USA Estados Unidos
ROU Rumanía, Bulgaria
ISR Israel

(*) Valor por defecto