API: Routes

M: Listar rutas

HTTP GET:
https://<hostname>/api/routes
URL PARAMETERS:
Nombre Tipo Requerido Descripción
page_size Tamaño de Página Numérico no (opcional, default: 5000, max: 5000) Cantidad de elementos que se quiere obtener en la respuesta.
page_num Número de Página Numérico no (opcional, default: 0) Si la cantidad global de elementos es mayor al tamaño de página utilizado, se utiliza este parámetro para obtener una página específica.
sort_by Ordernar por string no Nombre del campo del Route Data Object que se utilizará para ordenar la respuesta. Si el campo es de tipo texto, el orden es alfabético.
sort_dir Dirección de ordenamiento string no Dirección del orden de la respuesta, ascendente (asc) o descendente (desc).
fields Campos string no Nombres de los campos que se quiere obtener del Route Data Object. Deben estar separados por ,.

Este método soporta el uso de filtros.

OUTPUT:

Json con los campos:

EJEMPLO CON CURL:
$ curl -u <api_key>:<password>
     -X GET
     https://<hostname>/api/routes?page_size=2
RESPUESTA:
{
    "success": true,
    "data": [
        {
            "id":"12556",
            "client_id":"92",
            "name":"Stores Route",
            "start_place":"",
            "end_place":"",
            "type":"2",
            "distance":"0",
            "avg_duration":"0",
            "expected_duration":"0",
            "times_driven":"0",
            "num_points":"0",
            "last_seq":"0",
            "the_geom":"",
            "creation_date":"2016-07-07",
            "changed_date":"2016-07-07 10:21:35-06",
            "deactivated":"0"
        },
        {
            "id":"12563",
            "client_id":"92",
            "name":"Retail Route",
            "start_place":"",
            "end_place":"",
            "type":"0",
            "distance":"0",
            "avg_duration":"0",
            "expected_duration":"0",
            "times_driven":"0",
            "num_points":"13",
            "last_seq":"13",
            "the_geom":"01020...CFE23202D40",
            "creation_date":"2016-07-11",
            "changed_date":"2016-07-11 10:54:24-06",
            "deactivated":"0"
        }
    ]
}

M: Ver ruta

HTTP GET:
https://<hostname>/api/route/<id>
OUTPUT:

Json con los campos:

EJEMPLO CON CURL:
$ curl -u <api_key>:<password>
     -X GET
     https://<hostname>/api/route/9584
RESPUESTA:
{
    "success":true,
    "data":{
        "id":"9584",
        "client_id":"92",
        "name":"Distribution Route",
        "start_place":"",
        "end_place":"",
        "type":"0",
        "distance":"0",
        "avg_duration":"0",
        "expected_duration":"0",
        "times_driven":"0",
        "num_points":"4",
        "last_seq":"4",
        "the_geom":"01020...F212D40",
        "creation_date":"2015-04-22",
        "changed_date":"2015-04-22 15:08:36-06",
        "deactivated":"0"
    }
}

M: Ver puntos de una ruta trazada

HTTP GET:
https://<hostname>/api/route/<id>/points
OUTPUT:

Json con los campos:

EJEMPLO CON CURL:
$ curl -u <api_key>:<password>
     -X GET
     https://<hostname>/api/route/9584/points
RESPUESTA:
{
    "success":true,
    "data":[
        {
            "id":"651638",
            "seq":"1",
            "x":"-90.54583129783",
            "y":"14.566157823613",
            "reason":"1",
            "fromlast":null,
            "speed":null,
            "time":null,
            "placename":"Walblues"
        },
        {
            "id":"651639",
            "seq":"2",
            "x":"-90.48086643218",
            "y":"14.573698457906",
            "reason":"1",
            "fromlast":null,
            "speed":null,
            "time":null,
            "placename":"Cheapsmart"
        },
        {
            "id":"651640",
            "seq":"3",
            "x":"-90.54945817647",
            "y":"14.563043801205",
            "reason":"1",
            "fromlast":null,
            "speed":null,
            "time":null,
            "placename":"CTS"
        },
        {
            "id":"651641",
            "seq":"4",
            "x":"-90.53704261779",
            "y":"14.601851880278",
            "reason":"1",
            "fromlast":null,
            "speed":null,
            "time":null,
            "placename":"CostInc"
        }
    ]
}

M: Ver geocercas de una ruta de geocercas

HTTP GET:
https://<hostname>/api/route/<id>/pois
OUTPUT:

Json con los campos:

EJEMPLO CON CURL:
$ curl -u <api_key>:<password>
     -X GET
     https://<hostname>/api/route/9585/pois
RESPUESTA:
{
    "success":true,
    "data":["132", "448", "458", "467", "513", "556"]
}

M: Crear ruta

HTTP POST:
https://<hostname>/api/route
BODY PARAMETERS:
OUTPUT:

Json con los campos:

EJEMPLO CON CURL:
$ curl -u <api_key>:<password>
     --data "name=ejemplo&start_place=&end_place=&type=0&expected_duration=7200"
     https://<hostname>/api/route
RESPUESTA:
{
 "success": true,
 "id": "9267"
}

M: Agregar puntos a una ruta trazada

HTTP POST:
https://<hostname>/api/route/<id>/point
BODY PARAMETERS:
OUTPUT:

Json con los campos:

EJEMPLO CON CURL:
$ curl -u <api_key>:<password>
     --data "x=-90.54945817647&y=14.563043801205&placename=First"
     https://<hostname>/api/route/9584/point

$ curl -u <api_key>:<password>
     --data "x=-90.54583129783&y=14.566157823613&placename=Second"
     https://<hostname>/api/route/9584/point

M: Agregar una geocerca a una ruta de geocercas

HTTP POST:
https://<hostname>/api/route/<id>/poi
URL PARAMETERS:
Nombre Tipo Requerido Descripción
id Id de Ruta Numérico Id de la ruta a la que se quiere agregar la geocerca.
BODY PARAMETERS:
Nombre Tipo Requerido Descripción
poi_id Id de Geocerca Numérico Id de la geocerca que se quiere agregar a la ruta.
OUTPUT:

Json con los campos:

EJEMPLO CON CURL:
$ curl -u <api_key>:<password> 
     --data "poi_id=615"
     https://<hostname>/api/route/9585/poi
RESPUESTA:
{
    "success":true,
    "data":["132", "448", "458", "467", "513", "556", "615"]
}

M: Agregar geocercas a una ruta de geocercas

HTTP POST:
https://<hostname>/api/route/<id>/pois
BODY PARAMETERS:
Campo Nombre Tipo Formato Requerido Descripción
poi_ids Ids de Geocercas Lista Números separados por coma Ids de las geocercas que se quiere agregar a la ruta.
OUTPUT:

Json con los campos:

EJEMPLO CON CURL:
$ curl -u <api_key>:<password> 
     --data "poi_ids=645,655,690"
     https://<hostname>/api/route/9585/pois
RESPUESTA:
{
    "success":true,
    "data":["132", "448", "458", "467", "513", "556", "615", "645", "655", "690"]
}

M: Quitar una geocerca de una ruta de geocercas sin secuencia

HTTP DELETE:
https://<hostname>/api/route/<id>/poi/<poi_id>
URL PARAMETERS:
Nombre Tipo Requerido Descripción
id Id de Ruta Numérico Id de la ruta a la que se quiere quitar la geocerca.
poi_id Id de Geocerca Numérico Id de la geocerca que quiere quitar de la ruta.
OUTPUT:

Json con los campos:

EJEMPLO CON CURL:
$ curl -u <api_key>:<password>
     -X DELETE 
     https://<hostname>/api/route/9585/poi/615
RESPUESTA:
{
    "success":true,
    "data":["132", "448", "458", "467", "513", "556"]
}

M: Quitar una geocerca de una ruta de geocercas con secuencia

HTTP DELETE:
https://<hostname>/api/route/<id>/seq/<seq>
URL PARAMETERS:
Nombre Tipo Requerido Descripción
id Id de Ruta Numérico Id de la ruta a la que se quiere quitar la geocerca.
seq Número de Secuencia Numérico Número de secuencia de la geocerca que quiere quitar de la ruta.
OUTPUT:

Json con los campos:

EJEMPLO CON CURL:
$ curl -u <api_key>:<password>
     -X DELETE 
     https://<hostname>/api/route/9585/seq/3
RESPUESTA:
{
    "success":true,
    "data":["132", "448", "458", "513", "556"]
}

M: Reordenar las geocercas de una ruta de geocercas con secuencia

HTTP PUT:
https://<hostname>/api/route/<id>/poi
URL PARAMETERS:
Nombre Tipo Requerido Descripción
id Id de Ruta Numérico Id de la ruta a la que se quiere agregar la geocerca.
BODY PARAMETERS:
Nombre Tipo Requerido Descripción
poi_ids Ids de Geocercas Lista Números separados por coma
OUTPUT:

Json con los campos:

EJEMPLO CON CURL:
$ curl -u <api_key>:<password>
     -X PUT
     --data "poi_id=467,513,556,132,448,458"
     https://<hostname>/api/route/9585/poi
RESPUESTA:
{
    "success":true,
    "data":["467", "513", "556", "132", "448", "458"]
}

M: Actualizar ruta

HTTP PUT:
https://<hostname>/api/route/<id>
BODY PARAMETERS:
OUTPUT:

Json con los campos:

EJEMPLO CON CURL:
$ curl -u <api_key>:<password>
     -X PUT
     --data "name=mod&expected_duration=3600"
     https://<hostname>/api/route/9584
RESPUESTA:
{
    "success":true,
    "data":{
        "id":"9584",
        "client_id":"92",
        "name":"mod",
        "start_place":"",
        "end_place":"",
        "type":"0",
        "distance":"0",
        "avg_duration":"0",
        "expected_duration":"3600",
        "times_driven":"0",
        "num_points":"4",
        "last_seq":"4",
        "the_geom":"0102...12D40",
        "creation_date":"2015-04-22",
        "changed_date":"2015-04-22 15:08:36-06",
        "deactivated":"0"
    }
}

M: Borrar ruta

HTTP DELETE:

https://<hostname>/api/route/<id>
URL PARAMETERS:
Nombre Tipo Requerido
id Id de Ruta Numérico
OUTPUT:

Json con los campos:

EJEMPLO CON CURL:
$ curl -u <api_key>:<password>
     -X DELETE
     https://<hostname>/api/route/9585
RESPUESTA:
{
    "success":true,
    "data":{
        "id":"9585",
        "client_id":"92",
        "name":"mod",
        "start_place":"",
        "end_place":"",
        "type":"0",
        "distance":"0",
        "avg_duration":"0",
        "expected_duration":"3600",
        "times_driven":"0",
        "num_points":"4",
        "last_seq":"4",
        "the_geom":"0102...12D40",
        "creation_date":"2015-04-22",
        "changed_date":"2015-04-22 15:08:36-06",
        "deactivated":"1"
    }
}

M: Importar rutas trazadas (CSV)

HTTP POST:
https://<hostname>/api/route/csv
BODY PARAMETERS:
OUTPUT:

Json con los campos:

EJEMPLO CON CURL:
$ curl -u <api_key>:<password>
     -X POST
     https://<hostname>/api/route/csv
     -d "nombre,duracion,coordenadas
         ruta1,86400,-90.5123 14.6456,-90.5234 14.6567,-90.5345 14.6678
         ruta2,43200,-90.5567 14.6123,-90.5678 14.6234,-90.5789 14.6345,-90.5890 14.6456"
RESPUESTA:
{
    "success": true,
    "data": {
        "routes": [
            {
                "id": "69",
                "client_id": "22",
                "name": "ruta1",
                "start_place": "?",
                "end_place": "?",
                "type": "1",
                "distance": "0",
                "avg_duration": "0",
                "expected_duration": "86400",
                "times_driven": "0",
                "num_points": "310",
                "last_seq": "312",
                "the_geom": "LINESTRING(-90.5123 14.6456,-90.5234 14.6567,-90.5345 14.6678)",
                "creation_date": "2017-04-22 15:08:25",
                "changed_date": "2017-04-22 15:08:36",
                "deactivated": "0",
                "status": "imported"
            },
            {
                "id": "70",
                "client_id": "22",
                "name": "ruta2",
                "start_place": "?",
                "end_place": "?",
                "type": "1",
                "distance": "0",
                "avg_duration": "0",
                "expected_duration": "43200",
                "times_driven": "0",
                "num_points": "310",
                "last_seq": "312",
                "the_geom": "LINESTRING(-90.5567 14.6123,-90.5678 14.6234,-90.5789 14.6345,-90.5890 14.6456)",
                "creation_date": "2017-04-22 15:08:46",
                "changed_date": "2017-04-22 15:08:57",
                "deactivated": "0",
                "status": "imported"
            }
        ]
    }
}

M: Importar rutas trazadas (KML)

HTTP POST:
https://<hostname>/api/route/kml
BODY PARAMETERS:
OUTPUT:

Json con los campos:

EJEMPLO CON CURL:
$ curl -u <api_key>:<password>
     -X POST
     https://<hostname>/api/route/kml
     -d "@rutas/mis-rutas.kml"
RESPUESTA:
{
    "success": true,
    "data": {
        "routes": [
            {
                "id": "69",
                "client_id": "22",
                "name": "ruta1",
                "start_place": "?",
                "end_place": "?",
                "type": "1",
                "distance": "0",
                "avg_duration": "0",
                "expected_duration": "86400",
                "times_driven": "0",
                "num_points": "310",
                "last_seq": "312",
                "the_geom": "LINESTRING(-90.5123 14.6456,-90.5234 14.6567,-90.5345 14.6678)",
                "creation_date": "2017-04-22 15:08:25",
                "changed_date": "2017-04-22 15:08:36",
                "deactivated": "0",
                "status": "imported"
            },
            {
                "id": "70",
                "client_id": "22",
                "name": "ruta2",
                "start_place": "?",
                "end_place": "?",
                "type": "1",
                "distance": "0",
                "avg_duration": "0",
                "expected_duration": "43200",
                "times_driven": "0",
                "num_points": "310",
                "last_seq": "312",
                "the_geom": "LINESTRING(-90.5567 14.6123,-90.5678 14.6234,-90.5789 14.6345,-90.5890 14.6456)",
                "creation_date": "2017-04-22 15:08:46",
                "changed_date": "2017-04-22 15:08:57",
                "deactivated": "0",
                "status": "imported"
            }
        ]
    }
}

M: Ver asignaciones de todas las rutas

HTTP GET:
https://<hostname>/api/route/assignment
URL PARAMETERS:
Nombre Tipo Requerido Descripción
page_size Tamaño de Página Numérico no (opcional, default: 5000, max: 5000) Cantidad de elementos que se quiere obtener en la respuesta.
page_num Número de Página Numérico no (opcional, default: 0) Si la cantidad global de elementos es mayor al tamaño de página utilizado, se utiliza este parámetro para obtener una página específica.
sort_by Ordernar por string no Nombre del campo del Vehicle Route Data Object que se utilizará para ordenar la respuesta. Si el campo es de tipo texto, el orden es alfabético.
sort_dir Dirección de ordenamiento string no Dirección del orden de la respuesta, ascendente (asc) o descendente (desc).
fields Campos string no Nombres de los campos que se quiere obtener del Vehicle Route Data Object. Deben estar separados por ,.

Este método soporta el uso de filtros.

OUTPUT:

Json con los campos:

EJEMPLO CON CURL:
$ curl -u <api_key>:<password>
     -X GET
     https://<hostname>/api/route/assignment
RESPUESTA:
{
    "success": true,
    "count": 2,
    "data": [
        {
            "id": "14",
            "vehicle_id": "240",
            "route_id": "14",
            "user_id": "64",
            "driver_id": "",
            "trip_id": "171892",
            "last_route_point_id": "-1",
            "last_route_point_seq": "-1",
            "last_trip_id": "171892",
            "last_point_id": "908023",
            "extra_envio_num": "",
            "extra_boleta": "",
            "expected_start_date": "2017-08-07 04:00:00+00",
            "actual_start_date": "2017-10-06 18:29:52+00",
            "expected_end_date": "2017-10-07 18:29:52+00",
            "actual_end_date": "",
            "auto_reassign": "0",
            "timeout_enabled": "0",
            "num_rules_triggered": "",
            "max_mts_from_route": "",
            "notes": "",
            "seq": "0",
            "matched_poi_ids": "",
            "matched_point_seqs": "",
            "percent_completed": "",
            "deactivated": "0",
            "deactivated_date": "",
            "deactivated_user_id": "0"
        },
        {
            "id": "16",
            "vehicle_id": "250",
            "route_id": "42",
            "user_id": "64",
            "driver_id": "50",
            "trip_id": "163842",
            "last_route_point_id": "221",
            "last_route_point_seq": "13",
            "last_trip_id": "163842",
            "last_point_id": "644619",
            "extra_envio_num": "",
            "extra_boleta": "",
            "expected_start_date": "2017-08-08 18:00:00+00",
            "actual_start_date": "2017-08-30 22:48:34+00",
            "expected_end_date": "2017-08-30 23:48:34+00",
            "actual_end_date": "2017-08-30 23:20:47+00",
            "auto_reassign": "0",
            "timeout_enabled": "0",
            "num_rules_triggered": "",
            "max_mts_from_route": "",
            "notes": "",
            "seq": "0",
            "matched_poi_ids": "",
            "matched_point_seqs": "",
            "percent_completed": "",
            "deactivated": "0",
            "deactivated_date": "",
            "deactivated_user_id": "0"
        }
    ]
}

M: Ver asignaciones de una ruta específica

HTTP GET:
https://<hostname>/api/route/<id>/assignment
URL PARAMETERS:
Nombre Tipo Requerido Descripción
page_size Tamaño de Página Numérico no (opcional, default: 5000, max: 5000) Cantidad de elementos que se quiere obtener en la respuesta.
page_num Número de Página Numérico no (opcional, default: 0) Si la cantidad global de elementos es mayor al tamaño de página utilizado, se utiliza este parámetro para obtener una página específica.
sort_by Ordernar por string no Nombre del campo del Vehicle Route Data Object que se utilizará para ordenar la respuesta. Si el campo es de tipo texto, el orden es alfabético.
sort_dir Dirección de ordenamiento string no Dirección del orden de la respuesta, ascendente (asc) o descendente (desc).
fields Campos string no Nombres de los campos que se quiere obtener del Vehicle Route Data Object. Deben estar separados por ,.

Este método soporta el uso de filtros.

OUTPUT:

Json con los campos:

EJEMPLO CON CURL:
$ curl -u <api_key>:<password>
     -X GET
     https://<hostname>/api/route/14/assignment
RESPUESTA:
{
    "success": true,
    "count": 1,
    "data": [
        {
            "id": "14",
            "vehicle_id": "240",
            "route_id": "14",
            "user_id": "64",
            "driver_id": "",
            "trip_id": "171892",
            "last_route_point_id": "-1",
            "last_route_point_seq": "-1",
            "last_trip_id": "171892",
            "last_point_id": "908023",
            "extra_envio_num": "",
            "extra_boleta": "",
            "expected_start_date": "2017-08-07 04:00:00+00",
            "actual_start_date": "2017-10-06 18:29:52+00",
            "expected_end_date": "2017-10-07 18:29:52+00",
            "actual_end_date": "",
            "auto_reassign": "0",
            "timeout_enabled": "0",
            "num_rules_triggered": "",
            "max_mts_from_route": "",
            "notes": "",
            "seq": "0",
            "matched_poi_ids": "",
            "matched_point_seqs": "",
            "percent_completed": "",
            "deactivated": "0",
            "deactivated_date": "",
            "deactivated_user_id": "0"
        }
    ]
}

O: Vehicle Route Data Object

Cada objeto de ruta de vehículo tiene estos campos

campo read-only requerido
id
route_id no Id de la ruta que se ejecutó
last_route_point_id no En una ruta de geocercas con secuencia, el id del último RoutePoint.
last_route_point_seq no En una ruta de geocercas con secuencia, el índice correlativo del último RoutePoint.
last_trip_id no El id del viaje del último punto recorrido dentro de la ruta.
last_point_id no El id del último punto recorrido dentro de la ruta.
expected_start_date no Fecha estimada de inicio
actual_end_date no Fecha de inicio
num_rules_triggered no Cantidad de reglas rotas
max_mts_from_route no Para rutas trazadas, lo más lejos que se ha estado de la ruta.
seq no
notes no
deactivated no
deactivated_date no
trip_id no
user_id no
auto_reassign no (0, 1) reasigna la ruta luego de completarse o expirar
vehicle_id no
timeout_enabled no
eta no Duración estimada
delay no
matched_poi_ids no En una ruta de geocercas, los ids de geocercas que se han visitado en el orden en el que se han visitado.
matched_point_seqs no En una ruta de geocercas ordenadas, los índices correlativos de las geocercas que se han visitado en el orden que se han visitado.
percent_completed no
creation_date no

O: Route Data Object

Cada objeto de ruta tiene estos campos:

campo read-only requerido
id no
client_id no
name no
start_place no siempre enviar ""
end_place no siempre enviar ""
type no 0, 1, 2
distance no no
avg_duration no no
expected_duration no no en segundos
times_driven no
num_points no
last_seq no
the_geom no no
creation_date no
changed_date no
deactivated no

type

O: RoutePoint Data Object

Cada objeto de punto de ruta tiene estos campos:

campo read-only requerido
id no
seq no
x no coordenadas en grados
y no coordenadas en grados
reason no no
fromlast no no
speed no no
time no no
placename no