Búsqueda de elementos
La búsqueda es una de las solicitudes más habituales en Wialon. Existen dos tipos principales:
- Búsqueda de elementos por ID
- Búsqueda de elementos por propiedad
A continuación, se describe cada tipo de búsqueda.
Búsqueda de elementos por ID
Si conoce el ID de un elemento, puede obtener cualquier información disponible sobre él mediante el método core/search_item.
Ejemplo
Busquemos la última ubicación de una unidad con el ID 34868. Para obtener información sobre la ubicación de la unidad, debe incluir el flag 0x00000400 (1024) en la solicitud. Incluyamos también el flag 0x00000001 (1) para obtener el nombre de la unidad. Para saber más sobre los flags y formatos de datos, consulte la sección Formato de datos.
https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_item&
params={
"id": 34868,
"flags": 1025
}
&sid=<your_sid>
Ejemplo de respuesta:
{
"item": {
"nm": "Bavarian Tractor",
"cls": 2,
"id": 34868,
"pos": {
"t": 1358761631,
"y": 53.9205504,
"x": 27.4921152,
"z": 238,
"s": 0,
"c": 102,
"sc": 10
},
"lmsg": {
"t": 1358761631,
"f": 3,
"tp": "ud",
"pos": {
"y": 53.9205504,
"x": 27.4921152,
"z": 238,
"s": 0,
"c": 102,
"sc": 10
},
"i": 0,
"p": {
"param22": 3,
"adc1": 12.352,
"pwr_ext": 12.356,
"param199": 0,
"param241": 25701,
"battery_charge": 0
}
},
"uacl": 638138188323
},
"flags": 1025
}
A partir de esta respuesta, se observa que la unidad con el ID especificado se llama Bavarian Tractor y que su última ubicación conocida es 53.9205504° N y 27.4921152° E.
Búsqueda de elementos por propiedad
Para encontrar varios elementos que compartan una propiedad específica, utilice el método core/search_items.
Ejemplo 1
Busquemos todos los usuarios ejecutando la siguiente solicitud:
https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items&
params={
"spec": {
"itemsType": "user",
"propName": "sys_name",
"propValueMask": "*",
"sortType": "sys_name"
},
"force": 1,
"flags": 1,
"from": 0,
"to": 0
}&sid=<your_sid>
El asterisco en el parámetro propValueMask significa que el array de resultados incluirá usuarios con cualquier valor en el campo sys_name (es decir, usuarios con cualquier nombre). Por lo tanto, se devolverán todos los usuarios disponibles. Un valor de 1 en parámetro flags indica que el resultado debe incluir la información básica del elemento. Para obtener más detalles sobre los flags de usuarios, consulte la página Usuarios. Los valores en cero (0) de los parámetros from y to indican que deben devolverse todos los usuarios encontrados.
Ejemplo de respuesta:
{
"searchSpec": {
"itemsType": "user",
"propName": "sys_name",
"propValueMask": "*",
"sortType": "sys_name"
},
"dataFlags": 1,
"totalItemsCount": 1,
"indexFrom": 0,
"indexTo": 0,
"items": [
{
"nm": "test_6512789",
"cls": 1,
"id": 648548,
"uacl": -1
}
]
}
El ejemplo anterior sirve para buscar únicamente elementos de nivel superior como recursos, repetidores, unidades, grupos de unidades, usuarios y rutas. Sin embargo, algunos de estos elementos (como los recursos o las rutas) suelen contener subelementos. Por ejemplo, las geocercas son subelementos de un recurso. A continuación, se muestran ejemplos para buscar subelementos.
Ejemplo 2
Para buscar subelementos, añada el parámetro propType a la especificación de búsqueda con el valor propitemname e indique el nombre del subelemento en el parámetro propName. Puede encontrar la lista de subelementos en la página core/search_items.
Busquemos recursos que contengan geocercas cuyos nombres incluyan la palabra office. Queremos que la respuesta contenga únicamente los dos primeros recursos encontrados. Para que la respuesta incluya geocercas, debe establecer el flag 0x00001000 (4096) además del flag básico.
https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items&
params={
"spec": {
"itemsType": "avl_resource",
"propName": "zones_library",
"propValueMask": "*office*",
"sortType": "zones_library",
"propType": "propitemname"
},
"force": 1,
"flags": 4097,
"from": 0,
"to": 1
}&sid=<your_sid>
Ejemplo de respuesta:
{
"searchSpec": {
"itemsType": "avl_resource",
"propName": "zones_library",
"propValueMask": "*office*",
"sortType": "zones_library",
"propType": "propitemname"
},
"dataFlags": 4097,
"totalItemsCount": 1,
"indexFrom": 0,
"indexTo": 0,
"items": [
{
"nm": "template_en",
"cls": 3,
"id": 163266,
"zl": {
"1": {
"n": "Head office",
"d": "",
"id": 1,
"f": 1,
"t": 2,
"e": 60774,
"b": {
"min_x": 43.5271002776,
"min_y": 49.7636455785,
"max_x": 43.5622908598,
"max_y": 49.7794993012,
"cen_x": 43.5446955687,
"cen_y": 49.7715724398
}
},
"2": {
"n": "Route1_final_destination",
"d": "",
"id": 2,
"f": 1,
"t": 2,
"e": 62438,
"b": {
"min_x": 44.3872954375,
"min_y": 48.6329175554,
"max_x": 44.6300246245,
"max_y": 48.856592389,
"cen_x": 44.508660031,
"cen_y": 48.7447549722
}
},
"3": {
"n": "Route1_starting_point",
"d": "",
"id": 3,
"f": 1,
"t": 2,
"e": 4566,
"b": {
"min_x": 43.107388,
"min_y": 50.009182,
"max_x": 43.294156,
"max_y": 50.119376,
"cen_x": 43.200772,
"cen_y": 50.064279
}
},
"4": {
"n": "Shopping mall",
"d": "",
"id": 4,
"f": 1,
"t": 1,
"e": 39844,
"b": {
"min_x": 37.5347102757,
"min_y": 55.7544919087,
"max_x": 37.5596537243,
"max_y": 55.7598140913,
"cen_x": 37.546216,
"cen_y": 55.757443
}
},
"5": {
"n": "Warehouse",
"d": "",
"id": 5,
"f": 1,
"t": 3,
"e": 44015,
"b": {
"min_x": 37.5537148786,
"min_y": 55.7585093867,
"max_x": 37.5576971214,
"max_y": 55.7607546133,
"cen_x": 37.555706,
"cen_y": 55.757443
}
}
},
"uacl": 2200454562339
}
]
}
Como resultado, se encontró un recurso con cinco geocercas, de las cuales una contiene la palabra office en su nombre.
Ejemplo 3
Busquemos unidades con la máscara de nombre *Volvo*:
https://hst-api.wialon.com/wialon/ajax.html?
svc=core/search_items&
params={
"spec": {
"itemsType": "avl_unit",
"propName": "sys_name",
"propValueMask": "*Volvo*",
"sortType": "sys_name"
},
"force": 1,
"flags": 1439,
"from": 0,
"to": 0
}&
sid=021df621073f5b102b83740b0ea0eaf5
Especificación:
| Parámetro | Valor | Descripción |
|---|---|---|
itemsType |
avl_unit |
Unidad |
propName |
sys_name |
Búsqueda por nombre |
propValueMask |
*Volvo* |
Máscara de nombre |
Ejemplo de respuesta:
{
"searchSpec": {
"itemsType": "avl_unit",
"propName": "sys_name",
"propValueMask": "*Volvo awe*",
"sortType": "sys_name",
"propType": "",
"or_logic": "0"
},
"dataFlags": 1439,
"totalItemsCount": 1,
"indexFrom": 0,
"indexTo": 0,
"items": [
{
"nm": "Volvo awesome",
"cls": 2,
"id": 21728414,
"prp": {
"label_color": "39219",
"solid_colors": "39219",
"track_solid": "39219",
"use_sensor_color": "0"
},
"crt": 930848,
"bact": 930849,
"mu": 0,
"ct": 1599638776,
"ftp": {
"ch": 0,
"tp": 0,
"fl": 1
},
"uid": "Volvo XC90",
"uid2": "",
"hw": 96266,
"ph": "+37069678441",
"ph2": "",
"psw": "",
"pos": {
"t": 1614336759,
"f": 1073741831,
"lc": 0,
"y": 43.2444668333,
"x": -118.146447667,
"c": 0,
"z": 300,
"s": 12,
"sc": 8
},
"lmsg": {
"t": 1614336759,
"f": 1073741831,
"tp": "ud",
"pos": {
"y": 43.2444668333,
"x": -118.146447667,
"c": 0,
"z": 300,
"s": 12,
"sc": 8
},
"i": 0,
"o": 0,
"lc": 0,
"rt": 1614336760,
"p": {
"hdop": 0.5,
"pass": "E2000020340F02371900D866",
"mil": 1001,
"ves": "900025517477741444444",
"io_1_76": 459,
"tco_activity_tm": 400,
"fuel": 220.79,
"tco_driver1_id": "rettt"
}
},
"act": 1,
"dactt": 0,
"flds": {
"1": {
"id": 1,
"n": "Type",
"v": "Navtelecom"
},
"2": {
"id": 2,
"n": "Device type",
"v": "Teltonika"
}
},
"fldsmax": -1,
"aflds": {},
"afldsmax": -1,
"uri": "/avl_library_image/19725/0/library/unit/supertux.png",
"ugi": 1,
"uacl": -1
}
]
}
Ejemplo 4
Obtengamos la lista de usuarios subordinados.
Si la jerarquía es simple, es decir, solo hay una cuenta principal y las demás están subordinadas a ella, puede obtener la lista de usuarios subordinados especificando el nombre del creador. Para ello, pase rel_user_creator_name en el parámetro propName y especifique el nombre del creador en el parámetro propValueMask.
https://hst-api.wialon.com/wialon/ajax.html?
svc=core/search_items&
sid=0281169f3adf2593e00f2fc1&
params={
"spec": {
"itemsType": "user",
"propName": "rel_user_creator_name",
"propValueMask": "chdi_test",
"sortType": "sys_name"
},
"force": 1,
"flags": 3,
"from": 0,
"to": 0
}
Si la jerarquía es compleja (es decir, existen varias cuentas principales), puede obtener la lista de usuarios subordinados especificando el árbol de creadores. Para ello, envíe creatortree en el parámetro propType y indique en el parámetro propValueMask el ID del usuario superior (o el ID de cualquier usuario principal si solo desea consultar sus usuarios subordinados directos).
https://hst-api.wialon.com/wialon/ajax.html?
svc=core/search_items&
sid=0281169f3adf2593e00f2fc1&
params={
"spec": {
"itemsType": "user",
"propName": "sys_user_creator",
"propValueMask": 930848,
"sortType": "sys_name",
"propType": "creatortree"
},
"force": 1,
"flags": 3,
"from": 0,
"to": 0
}