Topic: Получение координат юнита через Remote API в Wialon Pro
Возможно плохо искал, но нигде в доках по API не нашёл способ получить координаты объектов. Где искать пример?
New account creation is currently unavailable. Existing members can continue reading and joining discussions.
Возможно плохо искал, но нигде в доках по 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 реализована эта функция?