1

Идентификатор POI в маршруте (Remote API)

Тема: Идентификатор POI в маршруте (Remote API)

Добрый день!

Возникла проблема при работе с Remote API Wilon hosting.

При получении списка маршрутов с POI, в массиве не содержится ID элемента POI, что затрудняет его идентификацию.

Пример запроса:
$comand = 'core_search_items';
$param = "{'spec': {'itemsType': 'avl_route', 'propName': 'sys_name', 'propValueMask': '*', 'sortType': 'sys_name', 'propType': 'propitemname'},'force': 1, 'flags': 769, 'from': 0, 'to': 0}";

Ответ:
...
[items]
    [0] => Array
...
            [rpts] => Array
                (
                    [0] => Array
                        (
                            [n] => NAME
                            [f] => 1
                            [u] => 0 // всегда = 0, согласно документации: * ID объекта, 0 - если контрольная точка не из числа объектов*/
                            [y] =>
                            [x] =>
                            [r] =>
                        )

Для моего проекта чтобы идентифицировать используемый POI, в связи с тем, что наименование не уникально, мне необходимо выполнять поиск по координатам. Однако в связи с тем, что POI переместили, а хуже того, еще и переименовали, возвращаются старые координаты POI, и старое название, заданные на момент добавления его в маршрут.

Техподдержка ответила что это нормальное поведение, т.к. POI не относится к числу объектов.

Прошу доработать, чтобы возвращался в массиве уникальный идентификатор POI.

2

Идентификатор POI в маршруте (Remote API)

Re: Идентификатор POI в маршруте (Remote API)

gre, если удалить POI и создать новую, она будет создана с id удаленной POI.
У POI нет уникального идентификатора.

Maksim
Wialon Platform QA
Gurtam
3

Идентификатор POI в маршруте (Remote API)

Re: Идентификатор POI в маршруте (Remote API)

mast пишет:

У POI нет уникального идентификатора.

Я это понимаю, что так реализовано.

Я подробнее опишу задачу:
1. Есть список автобусных остановок в виде POI в количестве более 1000 штук, которые периодически переименовывают и передвигают
2. Есть около 100 маршрутов городского транспорта с указанными в них выбранными остановками из списка POI
3. Есть сайт и мобильное приложение, работающие через RemoteAPI, на котором должна всегда отображаться актуальная информация о маршрутах и остановках

Проблема в том, что после того, как переименовали остановку и её немного подвинули, связь остановки с маршрутом теряется. А использовать данные остановки из маршрута не актуально.
Каждый раз менять маршруты, перевыбирая заново остановку, просто невозможно.

Прошу подсказать как лучше в таком поступить? Либо все же прошу сделать уникальный идентификатор POI в системе, и сделать его привязку к маршруту, чтобы можно было как-то привязать.

4

Идентификатор POI в маршруте (Remote API)

Re: Идентификатор POI в маршруте (Remote API)

1. В созданном маршруте всегда сохраняется копия того, из чего мы создаем контрольную точку (POI/геозона). Восстановить обратную связь невозможно. Потому id и не подставляется в маршруты.
2. Поскольку вы создаете приложение, вы можете к имени контрольной точки приписывать id той POI/геозоны, из которой точка была создана. При отображении пользователю прячьте id.
3. Вам нужно реализовать автоматическое перепостроение маршрута каждый раз, когда какая-либо из его POI-точек передвинута/переименована. Отслеживайте события этих POI и запускайте перепостроение для всех маршрутов, идущих через измененную POI.

Maksim
Wialon Platform QA
Gurtam