Я попробовал предложенный метод чтения классификатора и что могу сказать...
В свой уже описанный в соседней ветке код впендюрил:
Код |
---|
HOBJ obj = mapCreateSiteObject( m_descriptor, m_workingLayer);
if( obj != 0)
{
m_objectIsCreated = true;
if( mapRegisterObject( obj, m_objectToSave.m_excode, m_objectToSave.m_local) != 0)
{
static long bufCount = 1024;
long codeBuffer[ 1024] = { 0};
if( g_processCallback != NULL)
{
g_processCallback( 100. * ( ( double)i / ( double)segmCount
+ ( double)j / (segmCount * objects_in_layer)));
}
// вот отсюда добавил предложенное, вроде всё соответствует
long incode = mapGetRscObjectCodeByName( hRsc, codec->fromUnicode( newObjectNameFromFilter).data());//mapGetRscObjectKeyIncode( hRsc, )
if( incode != 0)
{
long codesCount = mapGetRscSemanticObjectCodeList( hRsc, incode, codeBuffer, bufCount);
if( codesCount != 0)
{
for( int h = 0; h < codesCount; h++)
{
if( codeBuffer[ h] == 0) break;
qDebug() << "mapGetRscSemanticObjectCodeList" << codeBuffer[ h];
}
}
}
else
{
//предыдущий вариант работы
}
|
На выходе тоже самое, что и от mapAvailableSemanticList:
mapGetRscSemanticObjectCodeList 133148281143305
mapGetRscSemanticObjectCodeList 133156871108890
mapGetRscSemanticObjectCodeList 133174050978076
mapGetRscSemanticObjectCodeList 472446402668
mapGetRscSemanticObjectCodeList 48546015358089
mapGetRscSemanticObjectCodeList 20101
Хотя количество семантик вернул правильное - 11, для объекта "Подпись 1.5 син"
Я чот опять неправильное сделал?
Спасибо.
С уважением,
Лазарев Александр.