TMapGisServer.GetMapList

 

TMapGisServer

Top

Запросить список доступных пользователю векторных карт на ГИС-сервере.

 

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;