Имеется ГИС Конструктор Free для Qt Designer x64 (версия 11, Qt 4, для платформы "x64", ОС Astra Linux Special Edition, релиз "Смоленск" версия 1.4...), классификатор operator.rsc
Код |
---|
// Версия библиотеки MapAccess
// (если применяется "mapacces.h" и т.п.)
#define MAPACCESSVERSION 20160418
// Версия интерфейса MAPAPI и ядра библиотеки
#define MAPAPIVERSION 0x0111302 |
На инструментальной машине следующий код:
Код |
---|
HOBJ hObj = mapCreateSiteObject(hMap, userMap, IDDOUBLE2, 0);
if(hObj == 0) {
LOG_WARN("Couldn't create object");
return hObj;
}
//поиск описания объекта (очаг пожара) в классификаторе и перенос его в объект
long int rc = mapRegisterObject(hObj, 750010080, LOCAL_VECTOR);
if(rc == 0) {
LOG_WARN("Couldn't register object");
}
//указать координаты объекта
rc = mapAppendPointPlane(hObj, x, y);
if(rc == 0) {
LOG_WARN("Couldn't append point to the object");
}
//поменять цвет
rc = mapAppendSemanticLong(hObj, 31002, RGB(color.red(), color.green(), color.blue()));
if(rc == 0) {
LOG_WARN("Couldn't append semmantic to the object");
}
rc = mapCommitObject(hObj);
if(rc == 0) {
LOG_WARN("Couldn't commit object");
}
return hObj; |
выполняется без проблем и рисует на карте (в данном случае) "очаг пожара". Если данный код выполняется на целевой системе, то векторный объект из operator.rsc рисуется в виде мелкой чёрной точки, площадный или линейный в виде тонкой чёрной линии. Обычные же, например, линейные объекты, созданные c помощью mapRegisterDrawObject, рисуются верно.
На целевой системе установку ГИС конструктора не делаю, а просто рядом c исполняемым файлом кладу ещё: libmapcomponents.so, libqdmapacces.so, libqdobjnet.so и сам operator.rsc.