Тема: Получение координат юнита через Remote API в Wialon Pro
Возможно плохо искал, но нигде в доках по API не нашёл способ получить координаты объектов. Где искать пример?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Возможно плохо искал, но нигде в доках по API не нашёл способ получить координаты объектов. Где искать пример?
kest
Есть запросы на поиск элементов, в которых можно искать объекты и указать флаг, соответствующий последнему местоположению.
Пример:
http://sdk.wialon.com/wiki/ru/pro/remot … les/search
Также есть отдельные запросы на загрузку и получение сообщений за любой интервал.
большое спасибо за ответ, тогда ещё пара вопросов, если можно:
- можно ли в PRO версии получить координаты по адресу (обратное действие возможно, а данное в документации описано только для Hosting и Kit)
- делаю core/login, получаю в ответ сессию, но следующий ajax запрос (в данном случае получение адресов по координатам) возвращает error=1. Пробовал в параметры передать дополнительно ssid - это не меняет дело. В случае необходимости могу выложить JS код этого всего, но суть простая - два аякс-запроса, второй выполняется в коллбеке первого, то есть когда сессия уже открыта
по геокодингу: в данным момент такой функционал не реализован, но мы добавим эту возможность в следующем релизе
по поводу ошибки: по описанию все ок, поэтому выкладывайте код будем разбираться
Для начала - небольшой враппер для обращения к SDK:
function WialonApi(callback) {
var self = this;
self.session = undefined;
this.serverUrl = 'http://server:8026/ajax.html?';
this.request = function(method, params, callback) {
var url = 'svc='+method+'¶ms={';
jQuery.each(params, function(k, v) {
url+= '"'+k+'":'+v+',';
});
url = url.slice(0, -1)+'}';
if (self.session) {
url = 'ssid='+self.session+'&' + url;
}
url = self.serverUrl + url;
jQuery.post(url, {}, function(data) {
if (callback) {
callback(data);
}
}, 'json');
};
self.request('core/login', {user:'"wialon"', password:'"*******"'}, function(data) {
self.session = data.ssid;
console.log('Wialon login', data);
if (callback) {
callback(data);
}
});
}
WialonApi.prototype = {
getLocations: function(params, callback) {
this.request('gis/get_locations', params, callback);
},
getAccountData: function(params, callback) {
this.request('core/get_account_data', params, callback);
}
}
Далее вызов этого враппера на странице. Пробовал и получение адресов, и эту фичу, для проверки просто:
var wialonApi = new WialonApi(function(){
wialonApi.getAccountData({type:2}, function(data) {
console.log('wialonApi.getAccountData', data);
});
});
В итоге, в консоли видим:
Wialon login > Object {uid: 383, eid: 56, ssid: "9f2720e1baaf2d0a71cbcc1002001d0c", pi: 2, tm: 1383054658…}
WialonApi.getAccountData Object {error: 4}
Если во враппере убрать добавление ssid параметра в строку запроса - {error: 1}
Где я туплю?
Если во враппере убрать добавление ssid параметра в строку запроса - {error: 1}
Сессия должна указываться практически во всех запросах, исключения логин и все запросы из группы "другие запросы" (см. документацию).
К сожалению ничего сказать по присланному вами не могу, т.к. вы не прислали саомго главного, это параметры которые вы подаете в getAccountData, т.к. ошибка 4 возвращается если их формат неверный. Например, есьб два похожих запроса core/get_account_data и account/get_account_data. возможно вы их перепутали и подаете не те параметры. Если все же вы имеете ввиду core/get_account_data, и вы ввели нужные параметры, то ошибка 4 может возвращаться если у пользователя нет учетной записи.
Используется именно core/get_account_data. Если вам нужно было увидеть генерируемые URLы - вот они:
Request URL:http://server:8026/ajax.html?svc=core/login¶ms={%22user%22:%22wialon%22,%22password%22:%22*********%22}
svc:core/login
params:{"user":"wialon","password":"*********"}
Request URL:http://server:8026/ajax.html?ssid=69d57502d8da9cd9202e394bb08fd7e2&svc=core/get_account_data¶ms={%22type%22:2}
ssid:69d57502d8da9cd9202e394bb08fd7e2
svc:core/get_account_data
params:{"type":2}
При этом первое выполняется, а второе сразу после него - нет
Если все же вы имеете ввиду core/get_account_data, и вы ввели нужные параметры, то ошибка 4 может возвращаться если у пользователя нет учетной записи.
да, вы не перпутали запросы , значение 2 входит в диапазон допустимых
так в итоге что криво может быть из представленного?
Вероятнее всего у пользователя под которым вы логинитесь нет учетной записи, т.е он не является создателем учетной записи или создатель данного пользователя не является создателем учетной записи.
по геокодингу: в данным момент такой функционал не реализован, но мы добавим эту возможность в следующем релизе
Подскажите в Wialon PRO 1401 реализована эта функция?