1

Массовая замена иконки POI

Topic: Массовая замена иконки POI

Коллеги, кто-нибудь сталкивался с задачей массовой замены иконки POI?

Имеется более 1000 POI, без иконки. Необходимо, чтобы в каждой из них была одна и та же иконка (не из библиотеки Wialon).
Ранее данную задачу решал подключением 1-й иконки к POI, с последующим экспортом в файл, его редактированием локально и импортом обратно.
Однако теперь такая схема не подходит, т.к. судя по всему изменился принцип хранения файлов на стороне Wialon.

www.intelstol.ru - Контролировать просто!
2

Массовая замена иконки POI

(edited by deal 12/02/2015 15:58:05)

Re: Массовая замена иконки POI

Добрый день!
На данный момент с импотром/экспортом изображений в poi действительно есть нюансы связанные переходом на файл-сервер.
В связи с этим есть другой путь добиться желаемого результата (чтобы у многих poi была одинаковая иконка, но не дублировалась).

Нужно воспользоваться нашим приложением Disketta.
1. Запустить приложение пользователем, у которого есть права на управление файлами (Download and view list files, Upload and delete files) в интересующем ресурсе.
2. В проиложении сверху нажать Resource и в списке выбрать нужный ресурс. (В него загрузим произвольную иконку, которая будет использоваться во многих poi.)
3. После выбора нужного ресурса в списке снизу нужно войти в папку Public.
4. В этой папке кнопкой справа сверху нужно создать вложенную папку poi и войти в неё.
5. Второй кнопкой справа сверху загрузить в эту папку интересующую иконку (png).

Таким образом мы как бы создали собственную библиотеку иконок.
Теперь эту иконку нужно применить к нужным poi.
Предположим id нашего ресурса, куда мы загрузили иконку 555.
И предположим, что в этом ресурсе ко всем poi нужно применить эту иконку.
И допустим имя файла загруженной иконки marker.png.
Для этого нужно будет выполнить скрипт в консоли браузера на сайте мониторинга следующего содержания:

var res = wialon.core.Session.getInstance().getItem(555);
var pois = res.getPois();
var poiIds = [];
var errors = 0;

for (var p in pois) {
      poiIds.push(p);
}

res.getPoisData(poiIds, function(code, data) {
      if (code || !data || !data.length) {
            console.log("no pois");
            return;
      }

      wialon.core.Remote.getInstance().startBatch("poi update");
      for (var i = 0; i < data.length; i++) {
             var poi = data[i];
             poi.libId = 555;
             poi.path = "poi/marker.png";
             res.updatePoi(poi, function(code) {
                    if (code)
                           errors++;
             });
      }
      wialon.core.Remote.getInstance().finishBatch(function(code) {
             console.log("finished");
             console.log("total: " + poiIds.length + ", errors: " + errors);
      }, "poi update");
});

Теперь при изменении этой одной иконки (загрузке новой с таким же именем) - у всех poi, к которым она применена она изменится.

Head of Wialon Local Department
Gurtam
3

Массовая замена иконки POI

(edited by yurius 12/02/2015 16:23:41)

Re: Массовая замена иконки POI

deal , благодарю!
Все получилось!
cool

www.intelstol.ru - Контролировать просто!
4

Массовая замена иконки POI

(edited by geremy85 26/02/2015 09:34:01)

Re: Массовая замена иконки POI

Добрый день. У меня возник вопрос. Это обязательно должен быть хостер или может обычный пользователь поменять иконки? У меня такая же проблема. Список с 700 точки poi и нужно поставить всем одну иконку. Просто я делал импорт poi из другой программы поэтому автоматом не смог присвоить им иконки

С уважением, Олжас.
5

Массовая замена иконки POI

Re: Массовая замена иконки POI

Здравствуйте, geremy85
Для вышеуказанной операции необходим доступ к SDK. Если у вас его нет, обратитесь к компании, предоставляющей вам услуги мониторинга.

6

Массовая замена иконки POI

Re: Массовая замена иконки POI

Для решения проблемы массовой замены иконок можно использовать новое приложение Icon Library

7

Массовая замена иконки POI

Re: Массовая замена иконки POI

shmi wrote:

Для решения проблемы массовой замены иконок можно использовать новое приложение Icon Library

А как получить доступ к этому приложению? У меня нет этого приложения в списке.

С уважением, Олжас.
8

Массовая замена иконки POI

Re: Массовая замена иконки POI

geremy85 wrote:

А как получить доступ к этому приложению? У меня нет этого приложения в списке.

При наличии прав, добавлять приложения можно из CMS Manager'a, подробности в документации