Содержание

Поиск элементов

Одними из наиболее часто используемых запросов в Wialon являются поисковые запросы. В Wialon возможны два вида поиска:

:!: Внимание! Для запуска данного примера на Wialon Kit во всех запросах следует заменить https://hst-api.wialon.com на https://kit-api.wialon.com, а для входа в систему использовать логин и пароль своей учетной записи или логин и пароль демо-пользователя: kitdemo kitdemo.

Поиск элемента по ID

Простейшим поиском, является поиск по идентификатору. Если известен ID элемента, то можно получить любую доступную информацию о нем, используя запрос core/search_item. Например, нужно узнать последнее местоположение объекта с ID равным 34868. Для того, чтобы в ответе содержалось местоположение объекта нужно установить флаг 0x00000400, также установим флаг 0x00000001 для того, чтобы узнать имя объекта. (Подробнее о флагах и форматах данных можно почитать в разделе Форматы данных.)

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_item&
	params={
		"id":34868,
		"flags":1025
	}&sid=<your_sid>

Результат выполнения:

{
    "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
}

Из ответа видно что объект с заданным идентификатором называется «Bavarian Tractor» и последнее известное его местоположение это 53.9205504 с.ш. и 27.4921152 в.д.

Поиск элементов по критериям

Для более сложных критериев поиска используется запрос core/search_items. Например, найти всех пользователей можно следующим запросом:

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>

Звездочка в параметре «propValueMask» означает, что в результирующем массиве будут присутствовать пользователи с любым значением поля «sys_name», а это значит все доступные пользователи. Единица в параметре «flags» означает, что только минимальная информация о пользователе попадет в ответ (подробнее о флагах пользователя в разделе Пользователи). Нули в параметрах «from» и «to» указывают на то, что вернуть следует всех найденных пользователей.

Результат выполнения:

{
    "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
    }]
}

Пример, рассмотренный выше, подходит для поиска всех элементов Wialon: ресурсов, ретрансляторов, объектов, групп объектов, пользователей и маршрутов. Но некоторые элементы, такие как ресурсы и маршруты содержат в себе подэлементы, например геозоны в ресурсе. Для поиска в подэлементах в спецификацию поиска нужно добавить еще один параметр - «propType», и указать в нем значение propitemname, а в параметре «propName» указать название подэлемента. Список всех подэлементов указан в разделе core/search_items.

В качестве примера рассмотрим ситуацию, в которой нужно найти ресурсы, в которых есть геозоны, название которых содержит фразу «bing», и вернуть два первых найденных. Чтобы в ответе отображались геозоны ресурса, в дополнение к базовому флагу установим флаг 0x00001000.

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items&
	params={
		"spec":{
			"itemsType":"avl_resource",
			"propName":"zones_library",
			"propValueMask":"*bing*",
			"sortType":"zones_library",
			"propType":"propitemname"
		},
		"force":1,
		"flags":4097,
		"from":0,
		"to":1
	}&sid=<your_sid>

Результат выполнения:

{
    "searchSpec": {
        "itemsType": "avl_resource",
        "propName": "zones_library",
        "propValueMask": "*bing*",
        "sortType": "zones_library",
        "propType": "propitemname"
    },
    "dataFlags": 4097,
    "totalItemsCount": 1,
    "indexFrom": 0,
    "indexTo": 0,
    "items": [{
        "nm": "template_ru",
        "cls": 3,
        "id": 163266,
        "zl": {
            "1": {
                "n": "Ветютнев",
                "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": "Волгоград_конечный_пункт",
                "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": "Михайловка_база",
                "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": "Шмитовский",
                "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": "bingo",
                "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.759632
                }
            }
        },
        "uacl": 2200454562339
    }]
}

В результате был найден один ресурс, в котором 5 геозон, название одной из которых содержит фразу «bing».