Servicios web
Documentación sobre la funcionalidad Proximidad disponible a través del webservice HTTP-JSON/XML de la plataforma CERCALIA.
La URL base a utilizar es:
- JSON: http://ws.cercalia.com/services/json?markattributes=true&key=<clave API*>
- XML: http://ws.cercalia.com/services/xmlgeo?key=<clave API*>
* 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
Obtener los N puntos más próximos a un centro
PETICIÓN:
Ejemplo de petición:
&cmd=prox&mo=42.369140,-3.489919|CENTRO&mocs=gdd&rqmolist=40.369140,-3.589919|ID1,40.367223,-3.583056|ID2&num=2
Donde:
cmd= Tipo de petición de cercalia
mocs=gdd Coordenadas expresadas en geográficas (LatLon)
mo= Coordenada en geográficas del centro con formato lat,lon|ID
rqmolist= Lista de puntos (coordenadas) que se desea ordenar por proximidad en formato [lat1,lon1|ID1], [lat2,lon2|ID2], ...
rpoicats= (alternativo a rqmolist) Lista de categorías de POIs (separados por coma) que se desea buscar ordenados por proximidad
num= Número máximo de puntos a devolver (opcional)
rad= Radio máximo de búsqueda, en metros (opcional)
RESPUESTA:
<cercalia cmd="prox" version="1">
<proximity center="-3.4899189461929763,42.36914099810293" num="2" type="mo">
<molist num="2">
<mo dist="222546" id="A" pos="1">
<coord x="-3.5899194036211615" y="40.36914023237501"/>
</mo>
<mo dist="222739" id="B" pos="2">
<coord x="-3.5830562748504877" y="40.36722321688161"/>
</mo>
</molist>
</proximity>
<server>lb3.cercalia.com</server>
</cercalia>
Donde:
dist: distancia proyectada en línea recta, en metros
pos: orden de proximidad en la lista de puntos devueltos (de más a menos cercano)
Obtener los N puntos más próximos por ruta a un centro
PETICIÓN:
Ejemplo de petición:
&cmd=prox&mo=42.369140,-3.489919|CENTRO&mocs=gdd&rqmolist=40.369140,-3.589919|ID1,40.367223,-3.583056|ID2&weight=time&num=2
Donde:
cmd= Tipo de petición de cercalia
mocs=gdd Coordenadas expresadas en geográficas (LatLon)
mo= Coordenada en geográficas del centro con formato lat,lon|ID
rqmolist= Lista de puntos (coordenadas) que se desea ordenar por tiempo en ruta en formato [lat1,lon1|ID1], [lat2,lon2|ID2], ...
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 -> Complementaria a &weight=. Utilizar este parámetro para obtener el tiempo de la ruta, en base al estado actual del tráfico, pero sin modificar el recorrido de la ruta.
num= Número máximo de puntos a devolver (opcional)
rad= Radio máximo de búsqueda, en metros (opcional)
inverse= Opcional. 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
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)
- spmoney (más rápida en función de la hora de salida sin pasar por vías de peaje)
- departuretime= Fecha y hora de salida en formato ISO 8601. Ejemplo para hora UTC: 2019-10-16T07:30:12Z *Solamente funciona si se indican los valores de weight indicados.
RESPUESTA:
<cercalia cmd="prox" version="1">
<proximity center="-388496,5187633" inverse="0" num="2" type="mo" weight="time">
<molist num="2">
<mo dist="222739" id="B" pos="1" routedist="268639" routerealtime="9618936" routetime="9618936" routeweight="9618936">
<coord x="-398864" y="4891770"/>
</mo>
<mo dist="222546" id="A" pos="2" routedist="268238" routerealtime="9637116" routetime="9637116" routeweight="9637116">
<coord x="-399628" y="4892049"/>
</mo>
</molist>
</proximity>
<server>http://cercalia-tomcat-lbs-instance4:8080</server>
</cercalia>
Donde:
dist: distancia proyectada en línea recta, en metros
routedist: distancia en ruta especificada en metros
routetime: tiempo en ruta especificada en milisegundos
Obtención del buffer de una o más geometrías en formato WKT
PETICIÓN:
Parámetros de petición:
&cmd=buffergeoms
GEOMS |
Lista de geometrías separadas por comas. Cada geometría tiene el siguiente formato: Donde:
Todas las geometrías de la lista deben ser de uno de los siguientes tipos:
|
SRS |
Sistema de coordenadas de las geometrías. Por defecto geográficas (EPSG:4326) Ej.: EPSG:4326 |
BUFFER |
Buffer en metros que la geometría se debe expandir. |
TOLERANCE |
Error máximo en metros que se puede cometer al simplificar las geometrías devueltas. (Por defecto no se simplifican: 0 metros) |
RESPUESTA:
Ejemplo de respuesta:
<cercalia cmd="buffergeoms" version="1">
<buffergeoms>
<geometry id="1"> POLYGON((-3.708452 40.411246, -3.708434 40.411191, -3.706925 40.411582, -3.705362 40.412022, -3.708362 40.411294, -3.708452 40.411246))</geometry >
<geometry id="2"> POLYGON((-3.708452 40.411246, -3.708434 40.411191, -3.706925 40.411582, -3.705362 40.412022, -3.708362 40.411294, -3.708452 40.411246))</geometry>
</buffergeoms>
</cercalia>
Geofencing: Obtener los puntos que se encuentran dentro de una o varias geometrías
PETICIÓN:
Parámetros de petición:
&cmd=insidegeoms
GEOMS |
Lista de geometrías separadas por comas. Cada geometría tiene el siguiente formato: Donde:
|
SRS |
Sistema de coordenadas de las geometrías. Por defecto geográficas (EPSG:4326) Ej.: EPSG:4326 |
MOLIST |
Lista de puntos en formato MO Donde:
|
MOCS |
Sistema de coordenadas de los puntos (MOLIST). Por defecto geográficas (EPSG:4326) |
RESPUESTA:
Para cada geometría especificada con el parámetro geoms se devuelven los puntos especificados en el parámetro molist que están dentro.
Por ejemplo, para la petición:
&cmd=insidegeoms&geoms=[CIRCLE(2.2090 41.4141, 12)|ID1],[CIRCLE(2.3090 41.4141, 5)|ID2]&srs=epsg:4326&molist=[2.2090,41.4141|P1],[2.3090,41.4141|P2]&mocs=gdd
se devuelve:
<cercalia cmd="insidegeoms" version="1">
<insidegeoms>
<geometry id=”ID1”>
<wkt> CIRCLE(2.2090 41.4141, 12)</wkt>
<molist num=”1”>
<mo id=”P1”>
<coord x=”2.2090” y=”41.4141”>
</mo>
</molist>
</geometry>
<geometry id=”ID2”>
<wkt> CIRCLE(2.3090 41.4141, 5)</wkt>
<molist num=”1”>
<mo id=”P2”>
<coord x=”2.3090” y=”41.4141”>
</mo>
</molist>
</geometry>
</insidegeoms>
</cercalia>