update_zone
Для создания, редактирования или удаления геозон используйте метод resource/update_zone.
Конечная точка
svc=resource/update_zone¶ms={
"itemId": <long>,
"id": <long>,
"callMode": "<text>",
"n": "<text>",
"d": "<text>",
"t": <uint>,
"w": <uint>,
"f": <uint>,
"c": <uint>,
"tc": <uint>,
"ts": <uint>,
"min": <uint>,
"max": <uint>,
"path": "<text>",
"libId": <long>,
"oldItemId": <long>,
"oldZoneId": <uint>,
"jp": <JSON>,
"p": [
{
"x": <double>,
"y": <double>,
"r": <uint>
}
]
}
Параметры
Параметры itemId, id и callMode обязательны для всех действий. Для create и update также обязательны параметры n, t, w, f, c и p, а остальные параметры необязательны. Для delete и reset_image используются только itemId, id и callMode.
| Параметр | Описание |
|---|---|
itemId |
ID ресурса. |
id |
ID геозоны. Для create значение не используется, поэтому укажите 0. |
callMode |
Действие: create, update, delete или reset_image (удалить изображение или иконку геозоны). |
oldItemId |
ID ресурса, из которого необходимо скопировать изображение геозоны. Необязательный параметр. Используется только вместе с oldZoneId. |
oldZoneId |
ID геозоны, изображение которой необходимо скопировать. Необязательный параметр. Используется только вместе с oldItemId. |
n |
Имя. |
d |
Описание. Необязательный параметр. Если он не указан, описание пустое. При обновлении геозоны это удаляет ее текущее описание. |
t |
Тип геозоны:
|
w |
Толщина линии. Для круга — радиус. Значение указывается в футах, если в ресурсе используется американская или имперская система измерений, и в метрах в остальных случаях. |
f |
Флаги (см. Флаги геозоны). |
c |
Цвет (ARGB). |
tc |
Цвет текста (RGB). Необязательный параметр. Значение по умолчанию — 16711884 (0xFF00CC). |
ts |
Размер текста. Необязательный параметр. Значение по умолчанию — 12. |
min |
Минимальный масштаб (видимость от). Необязательный параметр. Значение по умолчанию — 0. |
max |
Максимальный масштаб (видимость до). Необязательный параметр. Значение по умолчанию — 4294967295 (0xFFFFFFFF). |
path |
Путь к иконке. Необязательный параметр. |
libId |
ID библиотеки иконок. Необязательный параметр. Значение по умолчанию — 0 (библиотека иконок по умолчанию). |
jp |
Произвольные поля в формате имя:значение. Необязательный параметр. |
p |
Точки, где x — долгота, y — широта, r — радиус. Каждая точка должна содержать все три значения. Линия должна содержать не менее 2 точек, полигон — не менее 3, круг — ровно 1. Точки с недопустимыми координатами пропускаются. Для круга радиус берется из w, а r игнорируется. Единицы r совпадают с единицами w. |
При обновлении геозоны неуказанные параметры tc, ts, min, max, path, libId и jp сохраняют текущие значения. Изображение или иконка геозоны также сохраняются. При создании геозоны вместо этого используются значения по умолчанию.
Чтобы скопировать изображение другой геозоны, укажите параметры
oldItemIdиoldZoneId. Копируется только изображение или иконка исходной геозоны. Остальные свойства (например, цвет текста или произвольные поля) берутся из запроса, поэтому укажите их явно. У пользователя должно быть право доступа Просмотр геозон на исходный ресурс.
Подробнее о свойствах геозон см. resource/get_zone_data.
Флаги геозоны
Доступны следующие флаги геозоны (f):
| Флаг | Описание |
|---|---|
0x2 |
Геозона начала рейса. Используется в отчетах, если геозоны начала и окончания рейсов не указаны в настройках таблицы. |
0x4 |
Геозона окончания рейса. Используется в отчетах, если геозоны начала и окончания рейсов не указаны в настройках таблицы. |
0x10 |
Устанавливается автоматически при сохранении геозоны. |
0x20 |
Показать форму. |
0x40 |
Не упрощать геозону. |
Флаг 0x10 всегда добавляется к сохраняемому значению. Флаг 0x20 также добавляется, если запрос не содержит ни одного из параметров tc, ts, min, max, libId, path и jp. Например, если указать "f": 0 без этих параметров, геозона сохраняется со значением флагов 48 (0x30).
Ответ
Если запрос create, update или reset_image выполнен успешно, возвращается результат в следующем формате:
[
<long>, /* ID геозоны */
{
"n": "<text>", /* имя */
"d": "<text>", /* описание */
"id": <long>, /* ID геозоны */
"f": <uint>, /* флаги */
"t": <int>, /* тип: 1 (линия), 2 (полигон), 3 (круг) */
"w": <int>, /* толщина линии или радиус круга, в футах или метрах в зависимости от системы измерений ресурса */
"e": <ushort>, /* контрольная сумма данных геозоны (CRC16) */
"c": <uint>, /* цвет (ARGB) */
"i": <uint>, /* контрольная сумма изображения (CRC32); 4294967295, если у геозоны нет собственного изображения */
"icon": "<text>", /* URI изображения иконки; возвращается, только если у геозоны есть изображение или иконка из библиотеки */
"libId": <long>, /* ID библиотеки иконок, 0 для библиотеки иконок по умолчанию */
"path": "<text>", /* короткий путь к иконке из библиотеки иконок; пустой, если у геозоны нет такой иконки */
"b": { /* границы */
"min_x": <double>, /* минимальная долгота */
"min_y": <double>, /* минимальная широта */
"max_x": <double>, /* максимальная долгота */
"max_y": <double>, /* максимальная широта */
"cen_x": <double>, /* долгота центра */
"cen_y": <double> /* широта центра */
},
"ct": <uint>, /* время создания */
"mt": <uint>, /* время последнего изменения */
"jp": <JSON> /* произвольный JSON; возвращается, только если он задан для геозоны */
}
]
Возвращаемый результат не содержит полей tc, ts, min, max и p. Чтобы получить их, используйте resource/get_zone_data.
Флаги геозоны см. в разделе Флаги геозоны.
Если запрос delete выполнен успешно, возвращается результат в следующем формате:
[
<long>, /* ID геозоны */
null
]
Если запрос выполнить не удалось, возвращается код ошибки.
Коды ошибок
| Код ошибки | Описание |
|---|---|
| 4 | Неверные входные параметры. Если обязательный параметр отсутствует или имеет неверный тип, возвращаемый результат также содержит причину. Если значение callMode, тип геозоны или количество точек недопустимы, возвращается только код ошибки. |
| 6 | Геозона с указанным ID не существует в ресурсе, либо ее не удалось удалить, либо не удалось сбросить ее изображение. |
| 7 | Элемент с указанным ID не существует или не является ресурсом, либо у пользователя нет права доступа Создание, редактирование и удаление геозон на ресурс. При копировании изображения эта ошибка также возвращается, если исходный ресурс или геозона не существуют либо у пользователя нет права доступа Просмотр геозон на исходный ресурс. |