Приветствую!
Использую ГИС Конструктор для Qt Designer x64 (версия 11.10.3), ОС Astra Linux.
При вызове метода mathSheetFromFrame возвращаются неверный результат. Порядок воспроизведения:
1. Создаю замкнутый объект
2. Запрашиваю номенклатуры по этому объекту
4. Получаю результат из трех значений, два из которых повторяются.
Код и результат, привожу ниже:
Результат:
Если открыть, созданную в примере карту и выполнить задачу разграфки, то получим:
Т.е. отсутствует номенклатура "0.L-37-04"
Использую ГИС Конструктор для Qt Designer x64 (версия 11.10.3), ОС Astra Linux.
При вызове метода mathSheetFromFrame возвращаются неверный результат. Порядок воспроизведения:
1. Создаю замкнутый объект
2. Запрашиваю номенклатуры по этому объекту
4. Получаю результат из трех значений, два из которых повторяются.
Код и результат, привожу ниже:
Код |
---|
#include <QString> #include <QDebug> #include "sitapi.h" #include "mapapi.h" #include "mapcreat.h" #include "maptype.h" #include "mathapi.h" //создает карту HMAP createMapForTest(QString* aName, QString* aClassifierName) { CREATESITEUN cs; memset((void*) &cs, 0, sizeof(cs)); cs.Length = sizeof(CREATESITEUN); cs.EllipsoideKind = 9; cs.MapType = 16; cs.Reserve = 0; HMAP hmap = mapCreateSiteUn((const WCHAR*) aName->constData(), (const WCHAR*) aClassifierName->constData(), &cs); if (hmap == 0) { qDebug() << "mapCreateSiteUn error"; } return hmap; } // тест метода получения номенклатуры по рамке int main() { int SCALE = 200000; QString* siteName = new QString("/tmp/testMathFunctions.sitx"); QString* rscName = new QString("/usr/Operator11/operator.rsc"); HMAP hmap = createMapForTest(siteName, rscName); if (hmap != 0) { HOBJ hobj = mapCreateObject(hmap); mapDescribeObject(hobj, 2L); mapAppendPointGeoWGS84(hobj,0.8299040593233037, 0.6894050545377601,0); mapAppendPointGeoWGS84(hobj,0.8435176274888595, 0.6937683776677459,0); mapAppendPointGeoWGS84(hobj,0.8237954069413236, 0.6953391739945409,0); mapAppendPointGeoWGS84(hobj,0.8237954069413236, 0.6894050545377601,0); mapAppendPointGeoWGS84(hobj,0.8299040593233037, 0.6894050545377601,0); mapCommitObject(hobj); int size = 32; LISTREGISTER listreg[size]; memset((void*)&listreg, 0, sizeof(LISTREGISTER)*size); qDebug()<< "Result = " << mathSheetFromFrame(hmap, hobj, SCALE, listreg, size ); for(int i=0; i < size; i++) { QString nom(listreg[i].Nomenclature); if(listreg[i].Length == 0) { break; } qDebug() << i << nom; } mapCloseData(hmap); } else { qDebug() << "createSitx error"; } } |
Код |
---|
Result = 3 1 "0.L-37-10" 2 "0.M-37-34" 3 "0.M-37-34" |
Т.е. отсутствует номенклатура "0.L-37-04"