1

Геозоны: присутствие в геозонах

Тема: Геозоны: присутствие в геозонах

Здравствуйте , не удается выполнить запрос к API(присутствие в геозонах)  всегда возвращается пустой ответ ( {} ).
Сам запрос:
svc=resource/get_zones_by_point&params={spec:{"zoneId":{"2788"[1]},"lat":86.03265,"lon":55.40495}}&sid=2d6f642d45a85eb577c24c6d5fd61234
Координаты точно попадают в геозону.(проверенно через "Инструменты" в wialon)
Геозона под пользователем одна ее id = 1.
Id ресурса сделан через поиск ресурсов он равняется 2788.
Отправляя пустой массив геозон тоже получаю "{}"

ООО "Навитрейд"
www.navitrade.ru
г.Кемерово
Захаров Руслан
2

Геозоны: присутствие в геозонах

(22/12/2016 16:07:38 отредактировано deal)

Re: Геозоны: присутствие в геозонах

zaharov, поменяйте местами значения lat и lon. Вы ищете посреди океана.

Head of Wialon Local Department
Gurtam
3

Геозоны: присутствие в геозонах

Re: Геозоны: присутствие в геозонах

Спасибо , из за своей невнимательности потратил время=)

ООО "Навитрейд"
www.navitrade.ru
г.Кемерово
Захаров Руслан
4

Геозоны: присутствие в геозонах

Re: Геозоны: присутствие в геозонах

Друзья, а приведенный выше пример запроса точно работает?
Как-то странно выглядит это: {"zoneId":{"2788"[1]}. Я при подобном варианте "error 4" получаю.

А вопрос у меня тот же, что у ТС. Не могу определить присутствие в геозоне, всегда получаю пустой объект.
Параметры могут выглядеть так:

{"spec":{"zoneId":{"342199":"1,2,3,4,5,6,7,8,9"},"lat":57.5598869324,"lon":39.9363594055}}

или так:

{"spec":{"zoneId":{"342199":""},"lat":57.5760803223,"lon":39.8430633545}}

Результат одинаковый: пустой объект.
Куда копать?

5

Геозоны: присутствие в геозонах

Re: Геозоны: присутствие в геозонах

gofk пишет:

Как-то странно выглядит это: {"zoneId":{"2788"[1]}.

Сам спросил - сам отвечу.
Именно так и выглядит рабочий запрос.
Странно это. Кругом нормальный JSON, а тут вот так...

6

Геозоны: присутствие в геозонах

Re: Геозоны: присутствие в геозонах

gofk, в этом запросе нормальный json. Просто в первом сообщении опечатка - забыто двоеточие. В кавычках id ресурса, в массиве id геозон.
Правильный рабочий формат: {"zoneId":{"2788":[1]}

Head of Wialon Local Department
Gurtam
7

Геозоны: присутствие в геозонах

Re: Геозоны: присутствие в геозонах

Геозоны: присутствие в геозонах {"error":4,"reason":"WRONG_PARAMS"}
Пожалуйста помогите разобраться.

По ссылке
https://sdk.wialon.com/wiki/ru/local/re … s_by_point
указана структура параметров

svc=resource/get_zones_by_point&params={spec: {"zoneId":{"<long>":[<long>],},"lat":<double>,"lon":<double>}}

Скармливаю
svc=resource/get_zones_by_point&params={spec: {"zoneId":{"465034":[]}, "lat":57.95762, "lon": 56.279404}}
or
svc=resource/get_zones_by_point&params={spec: {"zoneId":{465034:[]}, "lat":57.95762, "lon": 56.279404}}

а в ответ:  {"error":4,"reason":"WRONG_PARAMS"}

8

Геозоны: присутствие в геозонах

Re: Геозоны: присутствие в геозонах

abrammc пишет:

Геозоны: присутствие в геозонах {"error":4,"reason":"WRONG_PARAMS"}
Пожалуйста помогите разобраться.

sid не забыли?

9

Геозоны: присутствие в геозонах

Re: Геозоны: присутствие в геозонах

Там опечатка, должно быть "spec", а не spec. В params должен быть валидный JSON.

abrammc пишет:

Геозоны: присутствие в геозонах {"error":4,"reason":"WRONG_PARAMS"}
Пожалуйста помогите разобраться.

По ссылке
https://sdk.wialon.com/wiki/ru/local/re … s_by_point
указана структура параметров

svc=resource/get_zones_by_point&params={spec: {"zoneId":{"<long>":[<long>],},"lat":<double>,"lon":<double>}}

Скармливаю
svc=resource/get_zones_by_point&params={spec: {"zoneId":{"465034":[]}, "lat":57.95762, "lon": 56.279404}}
or
svc=resource/get_zones_by_point&params={spec: {"zoneId":{465034:[]}, "lat":57.95762, "lon": 56.279404}}

а в ответ:  {"error":4,"reason":"WRONG_PARAMS"}

10

Геозоны: присутствие в геозонах

Re: Геозоны: присутствие в геозонах

Добрый день.
Отправляю такой запрос
svc=resource/get_zones_by_point&params={"spec":{"zoneId":{"16088972":[]},"lat":51.555465,"lon":81.2360833333}}&sid=036...........
в ответ прилетает пустой json.
Подозреваю дело в неверном 16088972 - это id пользователя из результатов token/logon.
Согласно sdk здесь должен быть указан ID ресурса. Как его правильно получить?

11

Геозоны: присутствие в геозонах

Re: Геозоны: присутствие в геозонах

Добрый день

Dmitry Dmitriev пишет:

Подозреваю дело в неверном 16088972 - это id пользователя из результатов token/logon.
Согласно sdk здесь должен быть указан ID ресурса. Как его правильно получить?

Попробуйте использовать значение user.bact из ответа на token/login

12

Геозоны: присутствие в геозонах

Re: Геозоны: присутствие в геозонах

user.bact тоже пробовал
Параметры запроса {"spec":{"zoneId":{"16088973":[]},"lat":52.6139133333,"lon":82.94185}} - ответ пустой
при этом запрос svc=core/search_items&params={"force":1,"flags":4096,"from":0,"to":0,"spec":{"itemsType":"avl_resource","propName":"*","propValueMask":"*","sortType":""}}&sid=03d..... возвращает мне геозоны

13

Геозоны: присутствие в геозонах

Re: Геозоны: присутствие в геозонах

в core/search_items возвращаются все ресурсы и их геозоны. Выполнив "flags":4097 (включён 0x1) кроме геозон вы получите тот самый ID ресурса, о котором спрашивали изначально

14

Геозоны: присутствие в геозонах

Re: Геозоны: присутствие в геозонах

теперь понятно как получить id ресурса, которому "подчинены" геозоны. С флагом flag:4097 как раз и возвращает id ресурса 16088973, что соответствует user.bact
подскажите, что еще можно посмотреть? почему возвращается пустой json?
{"spec":{"zoneId":{"16088973":[]},"lat":52.6139133333,"lon":82.94185}}

15

Геозоны: присутствие в геозонах

Re: Геозоны: присутствие в геозонах

при этом запрос svc=resource/get_zone_data&params={"itemId":"16088973","col":[1,2,3]}&sid=032240fa287cd0abb90e6adeda190392 работает нормально

16

Геозоны: присутствие в геозонах

Re: Геозоны: присутствие в геозонах

Эти запросы не связаны (один используется для получения данных, другой для попадания точки в геозону)

Проверьте, действительно ли точка с координатами "lat":52.6139133333,"lon":82.94185 попадает в геозоны ресурса. Возможно она просто лежит за их пределами

17

Геозоны: присутствие в геозонах

Re: Геозоны: присутствие в геозонах

Спасибо, разобрался.
точка не попадала в геозоны, но, согласно документации по api я ожидал ответ в виде
"Если точка находится вне геозоны.
[
    {
    <text>:{        /* id ресурса */
        <text>:<double>    /* ID геозоны, расстояние до геозоны */
    }
    }
]"
Получается, если точка не попадает в геозону или не попадает в геозону в заданном радиусе, возвращается пустой json, в противном случае, возвращается результат.