Запросить список доступных пользователю векторных карт на ГИС-сервере.
function GetMapList(number : integer; buffer : PTMCMAPLIST; length : integer): integer;
Входные параметры:
- number - номер активного подключения к ГИС Серверу (нумерация осуществляется с 1);
- buffer - адрес памяти для размещения списка карт;
- length - размер выделенной области памяти в байтах.
Описание:
Возвращает общий размер считанной записи или 0 - при отсутствии данных или ошибке.
Метод помещает в память по адресу buffer список данных для подключенного пользователя в такой же иерархии, как они были сгруппированы в Администраторе ГИС Сервера. То есть не каждый возвращаемый элемент является алиасом, ссылающимся на карту, а может являться также заголовком группы, что определяется полем TypeLevel – для комментариев (заголовков групп) его значение равно 0.
Перед запросом перечня доступных пользователю данных можно с помощью этого же метода сделать запрос необходимого размера выделяемой памяти для размещения перечня данных. Для этого данный метод вызывается с нулевыми параметрами buffer и length. В этом случае метод возвращает размер необходимого блока памяти в байтах.
type
TMCMAPLISTITEM = packed record // описание элемента дерева проекта
Level : longint; // Уровень вложенности элемента с 1 до MaxLevel
Flags : longint; // флаг редактирования 0 - нет прав редактировать
TypeLevel : longint; // Тип файла MAPFILES, Если это 0 - комментарий
Reserve : longint;
Name : array[0 .. 255] of GtkChar; // Имя элемента (Алиас)
end;
// СПИСОК ДОСТУПНЫХ КАРТ
TMCMAPLIST = packed record
Ident : longint; // Идентификатора записи 0x7F7F7F7F
Length : longint; // Общая длина записи
Count : longint; // Число элементов в списке
MaxLevel : longint; // Максимальный уровень вложенности элементов (дерево)
// Массив элементов списка доступных карт (в количестве Count)
Item : array [0..1] of TMCMAPLISTITEM;
end;
PTMCMAPLIST = ^TMCMAPLIST;
Перед передачей адреса структуры в функцию, необходимо в нее установить следующие значения:
Ident = 0x7F7F7F7F;
Length = sizeof(TMCMAPLIST);
Count = 0;
MaxLevel = 1;