1

Создание маршрута JavaScript API (createRoute)

Тема: Создание маршрута JavaScript API (createRoute)

Здравствуйте.
Есть задача разработать программу, посредством которой можно будет с легкостью создавать маршрут из группы геозон.
В документации JavaScript API есть класс и метод создания маршрута но к сожалению примеры отсутствуют.

В документации к API есть пример по созданию геозоны.

ссылка на пример
https://sdk.wialon.com/playground/demo/create_zone

function saveCircle(){ // create circle geofence using entered data
    var res = $("#res").val(), name = $("#n").val(); // get parameters from corresponding fields
    // simple validation, exit if invalid
    if(!res){ msg("Select resource"); return;} // resource validation 
    if(!name){ msg("Enter name"); return;} // name validation
    if(!circle_zone){ msg("Create circle"); return;} // circle on map validation

    var Q = circle_zone.getLatLng(); // get circle center
    var R = parseInt(circle_zone.getRadius(), 10);  // get circle radius (must be int)

    // construct object using entered data
    var obj = { n: name, //geofence name
        t: 3, // type (3 - circle)
        f: 0, // flags
        w: R, // radius
        c: 2566914048, // color
        p: [{x: Q.lng, y: Q.lat, r: R}] // points (for circle, center coords and radius)
    };

    var resource = wialon.core.Session.getInstance().getItem(res); // get resource by id
    resource.createZone(obj, // create geofence
        function(code, data){ // create geofence callback
            if(code){ msg(wialon.core.Errors.getErrorText(code)); return; } // exit if error code
            msg("<b>'"+data.n+"'</b> geofence created successfully"); // print create succeed message
        });

    $('#r').attr('disabled', 'disabled');
    // delete geofence
    map.removeLayer(circle_zone);
    circle_zone = null;
}

resource.createZone(obj, // create geofence
        function(code, data){ // create geofence callback
            if(code){ msg(wialon.core.Errors.getErrorText(code)); return; } // exit if error code
            msg("<b>'"+data.n+"'</b> geofence created successfully"); // print create succeed message
        });

Подскажите пожалуйста где объявляется функция createZone.

Как я понимаю она должна являться методом класса но в API документации не могу ее найти.
https://sdk.wialon.com/api/index.html#wialon.item.Item

Разобравшись с этим примером хочу по аналогии приступить к созданию маршрута.
В документации обнаружил класс

Class Session 

и у него есть метод

createRoute(User creator, String name, Integer dataFlags, Function callback?)

Буду признателен любой информации и советам.

2

Создание маршрута JavaScript API (createRoute)

Re: Создание маршрута JavaScript API (createRoute)

Bludun пишет:

Как я понимаю она должна являться методом класса но в API документации не могу ее найти.

В SDK есть набор сущностей, для которых автоматически создаются методы get/update/delete, геозоны — одна из них и, к сожалению, документация для этих методов не генерируется.

Формат данных можно посмотреть — https://sdk.wialon.com/wiki/en/sidebar/ … _zone_data

Для создания маршрута нужно сначала вызвать этот createRoute, передать туда имя создателя, имя маршрута, флаги.

Затем у возвращённого в callback объекта будут методы из Route — https://sdk.wialon.com/api/index.html#wialon.item.Route

И нужно будет сделать updateConfig, updateCheckPoints, чтобы донастроить маршрут и задать ему точки.

3

Создание маршрута JavaScript API (createRoute)

(06/09/2017 18:32:58 отредактировано Bludun)

Re: Создание маршрута JavaScript API (createRoute)

createRoute(User creator, String name, Integer dataFlags, Function callback?)

Parameters:
creator- user-creator, either current user nor one of its descendants

name -route name

dataFlags-which flags initially to return

callback (optional; default: null) - callback function that is called after remote call: callback(code, obj), where zero code is success and obj is a new Route object, important: obj is not loaded into session

В этой функции первый параметр не строковый. Возможно для создания маршрута необходимо использовать другую функцию?

Далее неверный код на который получаю ошибку "Invalid service"
 

    var sess = wialon.core.Session.getInstance(); // get instance of current Session
    var user = sess.getCurrUser(); // get current User
.......
            sess.createRoute(user,"asda",1, function (code) { // logout callback
            if (code) msg(wialon.core.Errors.getErrorText(code)); // logout failed, print error
            else msg("111111111111"); // logout suceed
        });

1. getCurrUser() возвращает тип object
2. В функцию createRoute надо передать тип user (как я понимаю объект класса user)
Думается мне, что я делаю что то не то.

Буду признателен парочки строк кода с вызовом этой функции.