API: Routes

M: Listar rutas

HTTP GET:

https://<hostname>/api/routes

URL PARAMETERS:

Este método soporta el uso de filtros.

OUTPUT:

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:

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:

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:

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:

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:

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.

POST BODY

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

POST BODY:

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.

POST BODY

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:

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:

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

POST BODY:

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

POST BODY:

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

HTTPS: GET

https://<hostname>/api/route/assignment

URL PARAMETERS:

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

HTTPS: GET

https://<hostname>/api/route/<id>/assignment

URL PARAMETERS:

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 realizó
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