1

Помогите чайнику

(15/07/2016 09:15:38 отредактировано Alexsm62)

Тема: Помогите чайнику

Здравствуйте. Стоит задача продемонстрировать потенциальному клиенту некоторые возможности API. Я чайник в этом деле, не бейте сильно. Посмотрел форум и хелпы, написал следующее:

<?
$url = "https://hst-api.wialon.com/wialon/ajax.html?svc=token/login";
$params = array(
            "token"=>"faf7a07209ebf3120dec44ebeF7EB90B792160D0C79EDA6A3A6E1A68E593E4FE7",
            "operateAs"=>"elsytest"
        );

$json = json_encode($params);

$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,'params='.$json);
$result = curl_exec($ch);
curl_close($ch);
$resulteid = json_decode($result);
$p_eid = $resulteid->{'eid'};
echo 'Получили данные при авторизации токеном: ';
echo '<br>';
echo $result;
echo '<br>';
echo '<br>';
echo 'Выделяем ссесионный ключ - eid: '.$p_eid;
echo '<br>';
echo '<br>';
echo 'Выделяем id пользователя: '.$resulteid->{'user'}->{'id'};
echo '<br>';
echo '<br>';


$url = "https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_item&".$p_eid;
$params0 = array(
            "id"=>"14019836",
            "flags"=>"1025"
        );

$json = json_encode($params0);
#$params2 = 'params='.$json1.'&'.$p_eid

#$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_URL, $url);
#curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_POSTFIELDS, 'params='.$json);
$result = curl_exec($ch);
curl_close($ch);
#$resulteid = json_decode($result);
#$p_eid = $resulteid->{'eid'};
echo 'Пытаемся получить данные по поиску: '.$result;
echo '<br>';
echo '<br>';

#завершение ссесии
$url1 = "https://hst-api.wialon.com/wialon/ajax.html?svc=core/logout&params={}&sid=$p_eid";

$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_POST, true);
curl_setopt($ch1, CURLOPT_URL, $url1);
#curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
#curl_setopt($ch,CURLOPT_POSTFIELDS,'params='.$json);
$result2 = curl_exec($ch1);
curl_close($ch1);
echo 'Выводим результат завершения ссесии: '.$result2;

?>

Получил рабочий токен. Авторизацию проходит нормально. далее по id сеанца пытаюсь полусит данные - не получается. Ошибку пишет ("error":1) что нет сеанса. Помогите чайнику, плиз.

2

Помогите чайнику

Re: Помогите чайнику

Добрый день

error:1 - невалидная сессия или по-простому - проблема с параметром sid
Вы неверно клеите идентификатор сессии ($p_eid) в url

У вас

$url = "https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_item&".$p_eid;

Должно быть

$url = "https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_item&sid=".$p_eid;
3

Помогите чайнику

Re: Помогите чайнику

Добрый день, пытаюсь получить геозону по заданным координатам
http://hst-api.wialon.com/avl_hittest_pos?lon=58.1047&lat=54.9085633333&scale=1&radius=10&layerName=""&sid=<SID>
Но в ответ выдается "Неизвестная ошибка"; Как правильно воспользоваться инструментом?

И еще, к примеру, у меня есть 2 геозоны по этим координатам: геозона конкретного объекта расположенного на этом месте и большая геозона "Город", нет функции определения наименьшей геозоны по этим координатам (в уведомлениях есть такая опция, отразить наименьшую из геозон)? Такое нужно высчитывать самому?

мануале говорится: "radius - радиус поиска в градусах (как координаты)", не понятно, это что за значение?

4

Помогите чайнику

Re: Помогите чайнику

killigor, а Вы перед этим создали слой геозон?
Этот запрос ищет геозоны на построенном слое. Создать слой геозон можно так:
https://sdk.wialon.com/wiki/ru/sidebar/ … ones_layer

Данный запрос вернёт первую попавшуюся геозону по данным координатам.

По поводу радиуса: географические координаты измеряются в градусах, в нашем случае с целой и дробной частью.
А радиус в этом запросе представляет из себя расстояние (дельту), измеряемую также в градусах.
Т.е. искать в районе заданных координат с заданной дельтой. Поэтому значение 10 для радиуса в данном случае слишком большое.
Т.е. при значении 10 много геозон попадёт в этот радиус и возьмётся первая попавшаяся.
А например значение 0.00005 это очень грубо радиус 5 метров.

Но, вероятнее всего, Вам лучше использовать другой запрос:
https://sdk.wialon.com/wiki/ru/sidebar/ … s_by_point
Для него не нужно создавать слой геозон и завать радиус и т.д.
Подаёте коордиаты и id необходимых ресурсов и если нужно список id конкретных геозон.
В ответе будут все геозоны попавшие в эти координаты. Дальше сами выберете наименьшую по площади.

Head of Wialon Local Department
Gurtam
5

Помогите чайнику

Re: Помогите чайнику

deal, спасибо, то что нужно. В моем случае действительно удобней использовать запрос get_zones_by_point.
С ним всё получилось.

6

Помогите чайнику

Re: Помогите чайнику

Добрый день!
Ребята помогите где почитать где взять информацию устал уже выискивать.
Пытаюсь получить все обьекты и их координаты за основу взял ваш  пример   https://sdk.wialon.com/wiki/ru/sidebar/ … les/search

в SDK документации не смог найти. Пытаюсь разобраться сравнивая как делаются запросы  Remote API  но пока без результатно

например не могу найти значения параметра flags   0x00400000    местоположение

В классе Item просто отсутствует да и нет такого метода для извлечения положение объекта.
Помогите как вытащить все объекты и их местоположение  ((((

7

Помогите чайнику

Re: Помогите чайнику

snowkam, этот датафлаг (0x00400000    местоположение) находится в классе Unit: wialon.item.Unit.dataFlag.lastPosition (десятичное значение - 4194304).
Получить положение объекта на js можно при помощи метода у объекта: unit.getPosition()

Head of Wialon Local Department
Gurtam
8

Помогите чайнику

(01/03/2017 15:30:42 отредактировано snowkam)

Re: Помогите чайнику

deal пишет:

Получить положение объекта на js можно при помощи метода у объекта: unit.getPosition()

а я про  java  спрашивал

А есть примерчик, не могу понять как данные загнать не в Item  а в Unit
Где это почитать ????

9

Помогите чайнику

Re: Помогите чайнику

deal пишет:

deal wrote:
Получить положение объекта на js можно при помощи метода у объекта: unit.getPosition()
а я про  java  спрашивал

Тут есть примеры

Mobile Development
Gurtam
10

Помогите чайнику

Re: Помогите чайнику

Спасибо за примеры.

11

Помогите чайнику

Re: Помогите чайнику

10+