Невозможно получить DatasetDefinition для базы геоданных - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь получить определение базы геоданных, используя код ниже. Однако, это не в состоянии получить это. Я не уверен, что пошло не так в коде ниже:

Это то, что я написал в функции c ++:

fgdbError   hr;
wstring     errorText;
Geodatabase geodatabase;
string message;

   if ((hr = OpenGeodatabase(L"D:/User/GEO/GlobalNationDB.gdb", geodatabase)) != S_OK)
{
    message = "An error occurred while opening the geodatabase";
    ErrorInfo::GetErrorDescription(hr, errorText);
}
message = "The geodatabase has been opened";

string Datasetdefs;
hr = geodatabase.GetDatasetDefinition(L"//", L"Feature Dataset", Datasetdefs);
if (S_OK != hr) {
    message = message + "; Error occured when trying to get childDatasets from root";
}
else {
    message = message +  "; Successfully get Child Datasets";
}

CloseGeodatabase(geodatabase);

Ему удается открыть базу геоданных, но когда происходит поиск определения, происходит сбой.

В настоящее время мой вывод - строка:

"База геоданных открыта; при попытке получить childDatasets из корня произошла ошибка"

Я не уверен, что это так, потому что я неверно указываю корневой путь, но я предположил, что когда я назначил переменную 'базу геоданных', он должен был сохранить местоположение для пути GDB. L "//" root Я интерпретировал это как папку geodb, но могу ошибаться.

Каталог gdb также содержит «gdbtable», «gdbtablx», «freelist», «gdbindexes», «FDO_UUID». Поскольку мне дают двоичные файлы, которые я понятия не имею о структуре содержимого этого двоичного файла, я не уверен, есть ли у него наборы классов данных, таблицы и что нет.

Если возможно, сообщите мне, где я поступил неправильно.

Спасибо. :)

1 Ответ

0 голосов
/ 04 апреля 2019

Я просматривал Интернет, чтобы найти решение этой проблемы, и обнаружил следующий код: https://svn.osgeo.org/postgis/spike/pramsey/postgis2fgdb/fgdbtest.cpp

Я считаю, что причина, по которой я не смог его открыть, заключается в том, что существует иерархиятипов, чтобы открыть его, и мне нужно было бы перебрать его, чтобы получить необходимую информацию.Надеюсь, это поможет кому-нибудь в будущем.

...