/****** SITAPI.H *************** Belenkov O.V.   ****** 10/05/17 ***

******* SITAPI.H *************** Kruzhkov A.E.   ****** 04/12/07 ***

******* SITAPI.H *************** Konon V.N.      ****** 14/05/15 ***

******* SITAPI.H *************** Derevyagina Zh.A.***** 21/06/16 ***

******* SITAPI.H *************** Борзов А.Ю.      ***** 14/03/14 ***

******* SITAPI.H *************** Tarakanova I.R.  ***** 07/11/14 ***

******* SITAPI.H *************** Savelov A.S.     ***** 22/07/15 ***

******* SITAPI.H *************** Zheleznyakov V.A.***** 17/02/17***

******* SITAPI.H *************** Shabakov D.A.    ***** 29/07/16 ***

*                                                                  *

*              Copyright (c) PANORAMA Group 1991-2017              *

*                      All Rights Reserved                         *

*                                                                  *

********************************************************************

*                                                                  *

*       ОПИСАНИЕ КЛАССА ДОСТУПА К ОБ'ЕКТУ "КАРТА ОБСТАНОВКИ"       *

*        ИНТЕРФЕЙС ДЛЯ ПРОГРАММ НА ЯЗЫКАХ C, PASCAL, BASIC         *

*                                                                  *

*      КАРТА ОБСТАНОВКИ (ПОЛЬЗОВАТЕЛЬСКАЯ) СОСТОИТ ИЗ ОДНОГО       *

*     ЛИСТА,ПРОИЗВОЛЬНЫХ РАЗМЕРОВ, ИМЕЕТ СВОЙ КЛАССИФИКАТОР И      *

*     МОЖЕТ ОТКРЫВАТЬСЯ ПОВЕРХ ДРУГОЙ БАЗОВОЙ (ФОНОВОЙ) КАРТЫ      *

*     МЕСТНОСТИ ЛЮБОГО МАСШТАБА. НАД ОДНОЙ КАРТОЙ МЕСТНОСТИ        *

*     МОЖЕТ ОТОБРАЖАТЬСЯ ПРОИЗВОЛЬНОЕ ЧИСЛО ПОЛЬЗОВАТЕЛЬСКИХ КАРТ. *

*                                                                  *

********************************************************************

*                                                                  *

*    Импортирование функций в Windows:                            *

*                                                                  *

*    // Загрузка библиотеки                                        *

*    HINSTANCE libInst = ::LoadLibrary("gisacces.dll");            *

*                                                                  *

*    // Вызов функции                                              *

*    long int (WINAPI * lpfn)(HMAP,const char*, long int);         *

*    (FARPROC)lpfn = GetProcAddress(libInst, "OpenSiteForMap");    *

*    HSITE hSite = (*lpfn)(hMap,"navigation.sit",0);            *

*                                                                  *

*    // Выгрузка библиотеки                                        *

*    ::FreeLibrary(libInst);                                       *

*                                                                  *

*******************************************************************/

 

#ifndef SITAPI_H

#define SITAPI_H

 

#ifndef MAPGDI_H

  #include "mapgdi.h"    // Параметры функций визуализации

#endif

 

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++

// +++ ОПИСАНИЕ ФУНКЦИЙ ДОСТУПА К ПОЛЬЗОВАТЕЛЬСКОЙ КАРТЕ +++

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

#ifdef __cplusplus

extern "C"

{

#endif

  /*********************************************************

  *                                                        *

  *          ОТКРЫТЬ/ЗАКРЫТЬ ДОСТУП К ДАННЫМ КАРТЫ         *

  *                                                        *

  *********************************************************/

  

  // Открыть пользовательскую карту в заданном районе работ

  // hMap     - идентификатор открытой карты

  // sitename - имя открываемого файла пользовательской карты

  // mode     - режим чтения/записи (GENERIC_READ, GENERIC_WRITE

  //            или 0) GENERIC_READ - все данные только на чтение

  // (добавить в цепочку пользовательских карт (в обстановку))

  // Возвращает идентификатор открытой пользовательской карты

  // transform - признак трансформирования пользовательской карты   

  //             к ранее открытым данным (если проекции разные):

  //             0 - не трансформировать данные (преобразовывать "на лету"),

  //             1 - трансформировать данные при открытии и сохранить карту

  //                 в новой проекции,

  //            -1 - задать вопрос пользователю.

  //            В серверной версии (-1) обрабатывается, как 0.

  // password - пароль доступа к данным из которого формируется 256-битный код

  //            для шифрования данных (при утрате данные не восстанавливаются)

  // size     - длина пароля в байтах !!!

  // Передача пароля необходима, если при создании карты он был указан.

  // Если пароль не передан, а он был указан при создании,

  // то автоматически вызывается диалог scnGetMapPassword из mapscena.dll (gisdlgs.dll)

  // Если выдача сообщений запрещена (mapIsMessageEnable()), то диалог

  // не вызывается, а при отсутствии пароля происходит отказ открытия данных

  // При ошибке возвращает ноль

 

  _MAPIMP HSITE _MAPAPI mapOpenSiteForMapPro(HMAP hMap,           

                                           const WCHAR * sitename,

                                           long int mode,

                                           long int transform,

                                           const WCHAR * password, long int size);

 

  _MAPIMP HSITE _MAPAPI mapOpenSiteForMap(HMAP hMap, const char *sitename,

                                  long int mode);

 

  _MAPIMP HSITE _MAPAPI mapOpenSiteForMapEx(HMAP hMap, const char *sitename,

                                          long int mode, long int transform);

 

  _MAPIMP HSITE _MAPAPI mapOpenSiteForMapUn(HMAP hMap, const WCHAR *sitename,

                                          long int mode);

 

  _MAPIMP HSITE _MAPAPI mapOpenSiteForMapExUn(HMAP hMap, const WCHAR *sitename,

                                            long int mode, long int transform);

 

 

  // Закрыть пользовательскую карту в заданном районе работ

  // hMap - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Если hSite == 0, закрываются все данные обстановки

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapCloseSiteForMap(HMAP hMap, HSITE hSite);

 

  // Закрыть пользовательскую карту в заданном районе работ

  // hMap - идентификатор открытой карты

  // name - имя паспорта пользовательской карты

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapCloseSiteForMapByName(HMAP hMap, const char *name);

 _MAPIMP long int _MAPAPI mapCloseSiteForMapByNameUn(HMAP hMap, const WCHAR *name);

 

  // Удалить пользовательскую карту (все файлы данных)

  // hMap - идентификатор открытой карты

  // number - номер пользовательской карты в цепочке от 1 до числа карт

  // При ошибке возвращает ноль

 

  _MAPIMP int _MAPAPI mapDeleteSite(HMAP hMap, long int number);

 

  // Удалить пользовательскую карту (все файлы данных)

  // name - полное имя файла паспорта карты

  // При ошибке возвращает ноль

 

  _MAPIMP long int _MAPAPI mapDeleteSiteByName(const char * name);

  _MAPIMP long int _MAPAPI mapDeleteSiteByNameUn(const WCHAR *name);

 

  // Удалить все объекты пользовательской карты

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapClearSite(HMAP hMap, HSITE hSite);    

 

  // Скопировать пользовательскую карту с изменением имен файлов

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // newname - новое полное имя паспорта карты

  // Имена файлов данных будут иметь такое же имя, как у карты,

  // но свое расширение

  // Если классификатор расположен с картой, он тоже копируется

  // в новую директорию

  // Для удаления старой копии вызовите mapDeleteSite()

  // При ошибке (новое имя не создано) возвращает ноль

 

  _MAPIMP long int _MAPAPI mapCopySite(HMAP hMap, HSITE hSite,

                               const char * newname);

  _MAPIMP long int _MAPAPI mapCopySiteUn(HMAP hMap, HSITE hSite,

                                       const WCHAR * newname);

 

  // Сохранить текущее состояние карты на диск     

  // hMap - идентификатор основной векторной карты

  // hSite - идентификатор открытой пользовательской карты

  // force - сохранять всегда, если не 0, или только при редактировании

  // При выполнении редактирования карты с отключенным

  // журналом транзакций состояние карты в памяти и

  // на диске может отличаться, в этом случае можно

  // вызвать mapSaveSite

 

  _MAPIMP void _MAPAPI mapSaveSite(HMAP hMap, HSITE hSite, long int force);

 

  // Сортировка отдельной карты документа                         

  // hMap - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // handle  - идентификатор окна (HWND) для получения сообщений или 0

  // flags   - Флажки обработки карты :

  // 0 - сортировать все листы,

  // 1 - только несортированные,

  // 2 - сохранять файлы отката (устанавливается автоматически),

  // 4 - повысить точность хранения,

  // 16 - повысить точность хранения, формат - см

  // 32 - повысить точность хранения, формат - мм

  // 64 - повысить точность хранения, формат - радианы

  // При ошибке возвращает ноль

                       

  _MAPIMP long int _MAPAPI gsMapSorting(HMAP hmap, HSITE hsite,

                                      HMESSAGE handle, long int flags);

 

  // Запросить является ли пользовательская карта временной,  

  // то есть созданной через mapCreateTempSite или mapCreateAndAppendTempSite

  // hMap - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Для временной карты возвращает ненулевое значение

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapIsTempSite(HMAP hMap, HSITE hSite);

 

  // Запросить является ли пользовательская карта ограниченной  

  // по территории (по рамке номенклатурного листа)

  // hMap - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Если карта содержит номенклатурный лист, то функция возвращает

  // ненулевое значение

  // Если территория карты не ограничена (меняется при добавлении

  // или удалении объектов) - возвращает ноль

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapIsSiteLimited(HMAP hMap, HSITE hSite);

 

  // Запросить содержит ли пользовательская карта координаты    

  // в геодезической системе (радианы)

  // hMap - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Если карта хранит координаты в геодезической системе,

  // то функция возвращает ненулевое значение

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapIsSiteRealGeo(HMAP hMap, HSITE hSite);

 

  // Запрос - поддерживается ли пересчет к геодезическим

  // координатам из плоских прямоугольных и обратно

  // hMap     - идентификатор открытой основной карты

  // hSite    - идентификатор открытой пользовательской карты

  // Если нет - возвращает ноль

 

_MAPIMP long int _MAPAPI mapIsSiteGeoSupported(HMAP hMap, HSITE hSite);

 

  // Запросить является ли пользовательская карта морской       

  // (карта создана по классификатору с именем s57navy.rsc)

  // hMap - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Для морской карты возвращает 1

  // Для другой (неморской) карты возвращает 2

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapIsSiteMarine(HMAP hMap, HSITE hSite);

_MAPIMP long int _MAPAPI mapIsSiteSeanutic(HMAP hMap, HSITE hSite);

 

  // Запросить - это карта обстановки?

  // (если карта создана по классификатору с именем operator.rsc)

  // hMap - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Для карты обстановки возвращает 1

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapIsSiteArmy(HMAP hMap, HSITE hSite);

 

  // Запросить - это аэронавигационная карта?

  // (если карта создана по классификатору с именем dfc.rsc)

  // hMap - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Для карты обстановки возвращает 1

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapIsSiteAero(HMAP hMap, HSITE hSite);     

 

  // Запросить открыта ли карта на сервере или локально

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // (для фоновой (основной) карты hSite = hMap)

  // Если карта открыта на сервере возвращает ненулевое значение

 

_MAPIMP long int _MAPAPI mapIsSiteFromServer(HMAP hMap, HSITE hSite);

 

  // Запросить состояние данных для карты, открытой на сервере           // 26/11/16

  // Если представление карты формируется на лету из базы данных,

  // то при открытии карты устанавливается признак "состояние загрузки", равное 1.

  // Признак сбрасывается при вызове функций mapAdjustData или mapAdjustSiteData,

  // если загрузка карты завершена

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetMapStateFlag(HMAP hMap, HSITE hSite);

 

  // Выполнить согласование данных карты в памяти и на диске

  // (при многопользовательском доступе к данным)

  // hmap -  идентификатор открытых данных

  // hSite - идентификатор открытой пользовательской карты

  // (для фоновой (основной) карты hSite = hMap)

  // Если состояние данных в памяти изменилось (по данным

  // с диска) - возвращает ненулевое значение (1), иначе 0

  // Если карта должна быть закрыта - возвращает 2

  // (доступ на ГИС Сервер прекращен!)

  // Если состояние изменилось - необходимо перерисовать

  // изображение карты

  // Опрос состояния целесообразно выполнять периодически

  // в процессе работы приложения

 

_MAPIMP long int _MAPAPI mapAdjustSiteData(HMAP hMap, HSITE hSite);

 

  // Запросить - есть ли карты в состоянии загрузки на сервере         // 26/11/16

  // Проверка выполняется для всех карт в составе "документа" (hMap)

  // Если представление карты формируется на лету из базы данных,

  // то при открытии карты устанавливается признак "состояние загрузки", равное 1.

  // Признак сбрасывается при вызове функции mapAdjustData,

  // если загрузка карты завершена

  // Если есть карты в состоянии загрузки, то возвращает 1

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapCheckMapStateFlag(HMAP hMap);

 

  // Запросить хранится ли карта в одном файле (формат SITX)      

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // (для фоновой (основной) карты hSite = hMap)

  // Если карта в одном файле возвращает ненулевое значение

 

_MAPIMP long int _MAPAPI mapIsSiteSitX(HMAP hMap, HSITE hSite);

 

 

 

 // Установить признак ведения даты и времени обновления для каждого объекта         // 10/05/17

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // flag  - признак ведения даты и времени обновления

  // Признак устанавливается после создания карты до записи объектов

  // Если открытых данных нет возвращает ноль

 

_MAPIMP long int _MAPAPI mapSetObjectTimeFlag(HMAP hMap, HSITE hSite, long int flag);

 

  // Запросить признак ведения даты и времени обновления для каждого объекта         // 10/05/17

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Если открытых данных нет или признак не установлен - возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetObjectTimeFlag(HMAP hMap, HSITE hSite);

 

  // Установить признак ведения уникального идентификатора GUID для объектов карты       // 24/09/16

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // flag  - признак ведения GUID для объектов карты

  // Признак устанавливается после создания карты до записи объектов

  // Если признак установлен, то каждому объекту карты при создании автоматически

  // присваивается семантика с кодом 31799, содержащая уникальную комбинацию

  // из 32 шестнадцатеричных символов от 0 до F (GUID)

  // Если открытых данных нет возвращает ноль

 

_MAPIMP long int _MAPAPI mapSetAutoObjectGUID(HMAP hMap, HSITE hSite, long int flag);

 

  // Запросить признак ведения уникального идентификатора GUID для объектов карты

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Если открытых данных нет или признак не установлен - возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetAutoObjectGUID(HMAP hMap, HSITE hSite);

 

  // Запросить количество открытых пользовательских карт

  // hMap - идентификатор открытой карты

  // При ошибке возвращает ноль

 

  _MAPIMP long int _MAPAPI mapGetSiteCount(HMAP hMap);

 

  // Определить номер пользовательской карты в цепочке

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // по ее идентификатору

  // При ошибке возвращает ноль

 

  _MAPIMP long int _MAPAPI mapGetSiteNumber(HMAP hMap,HSITE hSite);

 

  // Определить имя файла паспорта пользовательской карты

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // по ее идентификатору

  // При ошибке возвращает пустую строку

 

  _MAPIMP const char * _MAPAPI mapGetSiteFileName(HMAP hMap,HSITE hSite);

 

  // size - размер строки в байтах

  // При ошибке возвращает 0

 

  _MAPIMP long int _MAPAPI mapGetSiteFileNameEx(HMAP hMap, HSITE hSite,

                                              char *name, long int size);

 

  _MAPIMP long int _MAPAPI mapGetSiteFileNameUn(HMAP hMap, HSITE hSite,

                                              WCHAR *name, long int size);

 

  // Запросить имена файлов данных листа карты для контроля        // 18/04/16

  // целостности данных

  // hMap  - идентификатор открытой карты (документа)

  // hSite - идентификатор открытой пользовательской карты

  // list   - номер листа карты с 1 до числа листов

  // type   - тип листа карты (1 - файл заголовков, 2 - файл метрики,

  //                           3 - файл семантики, 4 - файл графики)

  // Кроме указанных файлов карта имеет паспорт карты и цифровой классификатор RSC

  // Файл SITX содержит все данные (кроме RSC) в одном файле

  // name   - адрес буфера для записи имени файла

  // size   - размер буфера для записи имени файла

  // Если запрошенный тип файла должен входить в состав карты (в паспорте карты

  // отмечено, что такие данные есть в листе), то возвращает 1,

  // если таких данных нет, то возвращает -1

  // Файлы заголовков и метрики присутствуют всегда

  // При ошибке возвращает 0

             

_MAPIMP long int _MAPAPI mapGetMapFilesName(HMAP hMap, HSITE hSite, long int list,

                                            long int type, WCHAR * name, long int size);

 

  // Запросить длину файлов листа карты в байтах                        // 05/08/16

  // hMap  - идентификатор открытой карты (документа)

  // hSite - идентификатор открытой пользовательской карты

  // list  - номер листа карты с 1 до числа листов

  // head  - указатель на поле для записи размера индексного файла (может равняться нулю)

  // data  - указатель на поле для записи размера файла метрики (может равняться нулю)

  // semn  - указатель на поле для записи размера файла семантики (может равняться нулю)

  // draw  - указатель на поле для записи размера файла графических

  //         параметров графических объектов (может равняться нулю)

  // При экспорте в SXF размер файла SXF примерно будет равен сумме размеров всех файлов листа карты

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSheetFilesLength(HMAP hMap, HSITE hSite, long int list,

                                                unsigned long int * head,

                                                unsigned long int * data,

                                                unsigned long int * semn,

                                                unsigned long int * draw);

 

 

  // Определить путь к папке \LOG пользовательской карты

  // по ее идентификатору

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // При ошибке возвращает пустую строку

 

  _MAPIMP const char* _MAPAPI mapGetLogPath(HMAP hMap, HSITE hSite);

 

  // pathsize - размер буфера в байтах

  // При ошибке возвращает 0

 

  _MAPIMP long int _MAPAPI mapGetLogPathUn(HMAP hMap, HSITE hSite, WCHAR *path,  long int pathsize);

 

  // Определить идентификатор открытой пользовательской карты

  // по ее номеру в цепочке

  // hMap   - идентификатор открытой карты

  // number - номер пользовательской карты в цепочке

  // Если number == 0, возвращается идентификатор фоновой

  // (базовой) карты, равный hMap (он может применяться вместо HSITE)!

  // При ошибке возвращает ноль

 

  _MAPIMP HSITE _MAPAPI mapGetSiteIdent(HMAP hMap,long int number);

 

  // Определить идентификатор открытой пользовательской карты

  // для заданного объекта

  // hMap - идентификатор открытой карты

  // name - имя файла паспорта пользовательской карты

  // При ошибке возвращает ноль

 

  _MAPIMP HSITE _MAPAPI mapGetObjectSiteIdent(HMAP hMap,HOBJ hObj);

 

  // Запросить номер состояния пользовательской карты

  // по ее идентификатору

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // (для фоновой (основной) карты hSite = hMap)

  // Номер состояния меняется при любой операции редактирования

  // карты (увеличивается на 1)

  // При ошибке возвращает ноль

 

  _MAPIMP long int _MAPAPI mapGetSiteMode(HMAP hMap,HSITE hSite);

 

  // Запросить - установлено ли шифрование данных?          

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // (для фоновой (основной) карты hSite = hMap)

 

_MAPIMP long int _MAPAPI mapGetSiteCodeFlag(HMAP hMap,HSITE hSite);

 

  // Запросить - зашифрована ли карта (формат SITX)                   

  // name - имя карты (путь к файлу)

  // Если нет - возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSiteCodeFlagByName(const WCHAR * name);

 

  // Запросить - могут ли объекты карты копироваться на другие карты или экспортироваться

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Если нет - возвращает ноль                                       

 

  _MAPIMP long int _MAPAPI mapGetSiteCopyFlag(HMAP hMap,HSITE hSite);

 

  // Запросить - запрещено ли показывать параметры паспорта

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Если нет - возвращает ноль                                       

 

_MAPIMP long int _MAPAPI mapGetSiteHidePassportFlag(HMAP hMap,HSITE hSite);

 

  // Запросить - может ли карта выводиться на печать

  // Для карт, открытых на ГИС Сервере, может устанавливаться

  // запрет вывода изображения карты на печать

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Если нет - возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetPrintFlag(HMAP hMap,HSITE hSite);

 

  // Запросить - отражает ли карта содержимое таблицы базы данных                   // 05/04/17

  // или набора данных

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Если карта не отражает данные из базы данных - возвращает ноль

 

  _MAPIMP long int _MAPAPI mapGetDBMapFlag(HMAP hMap, HSITE hSite);

 

  // Запросить - может ли карта редактироваться

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Если нет - возвращает ноль

 

  _MAPIMP long int _MAPAPI mapGetSiteEditFlag(HMAP hMap,HSITE hSite);

 

  // Установить флаг редактирования карты (0 - не редактировать)

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // flag  - признак возможности редактирования

  // Возвращает новое значение флага

 

  _MAPIMP long int _MAPAPI mapSetSiteEditFlag(HMAP hMap, HSITE hSite, long int flag); 

 

  // Запросить - можно ли изменить признак редактирования карты                 // 22/04/16

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Если нет - возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSiteChangeEditFlag(HMAP hMap, HSITE hSite);

 

  // Запросить флаг масштабируемости объектов карты относительно заданного масштаба  // 23/10/14

  // Если признак не установлен, то масштабирование выполняется относительно

  // базового масштаба карты, установленного в паспорте

  // Заданный масштаб устанавливается программно (например, в библиотеках IMLAPI)

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Если нет - возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetScalingToLevelFlag(HMAP hMap, HSITE hSite);

 

  // Установить флаг масштабируемости объектов карты относительно заданного масштаба

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // flag  - признак возможности редактирования

  // Возвращает новое значение флага

 

_MAPIMP long int _MAPAPI mapSetScalingToLevelFlag(HMAP hMap, HSITE hSite, long int flag);

 

  // Запросить степень прозрачности карты

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Возвращает значение от 0 (карта не видна) до 100 (карта не прозрачная)

 

_MAPIMP long int _MAPAPI mapGetSiteTransparent(HMAP hMap,HSITE hSite);

 

  // Установить степень прозрачности карты (от 0 до 100)

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // transparent - степень прозрачности карты от 0 (карта не видна)

  // до 100 (карта не прозрачная)

  // Возвращает новое значение флага

 

_MAPIMP long int _MAPAPI mapSetSiteTransparent(HMAP hMap, HSITE hSite, long int transparent); 

 

 

  // Запросить флаг подсветки подписей

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Возвращает значение флага

 

_MAPIMP long int _MAPAPI mapGetSiteBackLightText(HMAP hMap, HSITE hSite);       // 21/06/16

 

  // Установить флаг подсветки подписей

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // flag  - признак подсветки:

  //         0 - подсветка отключена (подписи отображаются в соответствии с параметрами);

  //         1 - подсветка включена (все подписи отображаются с белым контуром),

  //             использовать при отображении карты поверх растров

  // Возвращает новое значение флага

 

_MAPIMP long int _MAPAPI mapSetSiteBackLightText(HMAP hMap, HSITE hSite, long int flag);

 

  // Запросить - могут ли на карте выбираться объекты   

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Если нет - возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSiteInquiryFlag(HMAP hMap,HSITE hSite);

 

  // Установить флаг разрешения выбора объектов на карте (0 - не выбирать)

  // Влияет на работу функции mapWhatObject

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // flag  - признак возможности выбора объектов в функциях типа mapWhatObject

  // Возвращает новое значение флага

 

_MAPIMP long int _MAPAPI mapSetSiteInquiryFlag(HMAP hMap, HSITE hSite, long int flag);

 

  // Запросить - отображается ли карта

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // Если нет - возвращает ноль

 

  _MAPIMP long int _MAPAPI mapGetSiteViewFlag(HMAP hMap,HSITE hSite);

  

  // Установить флаг отображения карты (0 - не отображать)

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты(для основной карты равен hMap)

  // flag  - флаг отображения карты

  // Возвращает новое значение флага

 

  _MAPIMP long int _MAPAPI mapSetSiteViewFlag(HMAP hMap, HSITE hSite, long int flag);

 

  // Установить номер объекта, который временно (до переоткрытия карты

  // или до восстановления отображения) не будет виден на карте

  // Функция применяется при редактировании отдельного (единственного) объекта

  // в интерактивном режиме

  // info - идентификатор скрываемого объекта

 

_MAPIMP long int _MAPAPI mapHideSiteObject(HOBJ info);

 

  // Восстановить отображение объекта (после mapHideSiteObject)

  // Функция обнуляет номер скрываемого объекта и номер листа

  // info - идентификатор восстанавливаемого объекта

 

_MAPIMP void _MAPAPI mapUnhideSiteObject(HOBJ info);

 

  // Восстановить отображение объекта (после mapHideSiteObject)

  // Функция обнуляет номер скрываемого объекта и номер листа

  // hMap  - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты (для основной карты равен hMap)

 

_MAPIMP void _MAPAPI mapClearHideSiteObject(HMAP hMap, HSITE hSite);

 

  // Запросить номер скрываемого объекта и номер листа на карте        // 15/06/16

  // hMap   - идентификатор открытой карты

  // hSite  - идентификатор открытой пользовательской карты (для основной карты равен hMap)

  // number - указатель на поле для записи номера объекта

  // list   - указатель на поле для записи номера листа

  // При ошибке возвращает 0

 

_MAPIMP long int _MAPAPI mapGetHideSiteObject(HMAP hMap, HSITE hSite, long int * number, long int * list);

 

  // Установить порядок отображения карты  

  // hMap  - идентификатор открытой карты

  // number - номер пользовательской карты в цепочке

  // order  - флаг(0 - под основной картой, 1 - над основной картой)

  // При ошибке возвращает 0

 

  _MAPIMP long int _MAPAPI mapSetSiteViewOrder(HMAP hMap, long int number,

                                       long int order);

 

  // Запросить порядок отображения карты   

  // hMap  - идентификатор открытой карты

  // number - номер пользовательской карты в цепочке

  // Dозвращает флаг(0 - под основной картой, 1 - над основной картой)

  // При ошибке возвращает 0

 

  _MAPIMP long int _MAPAPI mapGetSiteViewOrder(HMAP hMap, long int number);

 

  // Поменять очередность отображения карт (sit) в цепочке 

  //   oldNumber - номер файла в цепочке

  //   newNumber - устанавливаемый номер файла в цепочке

  //  При ошибке возвращает 0

 

_MAPIMP long int _MAPAPI mapChangeOrderSiteShow(HMAP hMap, long int oldNumber,

                                                           long int newNumber);

 

  // Запросить значения масштаба нижней и верхней границ видимости карты

  // hMap  - идентификатор открытой карты

  // number - номер пользовательской карты в цепочке(если number == 0, базовая карта)

  // По адресу bottomScale записывается знаменатель масштаба нижней границы видимости карты

  // По адресу topScale записывается знаменатель масштаба верхней границы видимости карты

  // При ошибке возвращает 0

 

 _MAPIMP long int _MAPAPI mapGetSiteRangeScaleVisible(HMAP hMap, long int number,

                                                     long int *bottomScale,

                                                     long int *topScale);

 

  // Установить значения масштаба нижней и верхней границ видимости карты

  // hMap  - идентификатор открытой карты

  // number - номер пользовательской карты в цепочке(если number == 0, базовая карта)

  // bottomScale   - знаменатель масштаба нижней границы видимости карты

  // topScale   - знаменатель масштаба верхней границы видимости карты

  //              bottomScale <= topScale, иначе возвращает 0

  // При ошибке возвращает 0

 

 _MAPIMP long int _MAPAPI mapSetSiteRangeScaleVisible(HMAP hMap, long int number,

                                                     long int bottomScale,

                                                     long int topScale);

 

  // Запросить длину описания паспорта карты в виде записи

  // hMap  - идентификатор открытой основной карты

  // hSite - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetMapPassportRecordLength(HMAP hMap, HSITE hSite);

 

  // Запросить описание паспорта карты в виде записи

  // (для передачи в другой процесс,на другой компьютер ...)

  // Передается описание только первого листа карты

  // (у пользовательской карты он всегда один)

  // Размер буфера должен быть не менее, чем указано

  // в mapGetMapPassportRecordLength()

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // buffer - указатель на запись для описания паспорта карты

  // size   - размер записи

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetMapPassportRecord(HMAP hMap, HSITE hSite,

                                                 char *buffer, long int size);

 

  // Создать карту по записи паспорта карты

  // Запись создается при вызове mapGetMapPassportRecord()

  // hMap  - идентификатор открытой основной карты

  // mapname - имя файла паспорта (*.map или *.sit) !

  // rscname - имя файла классификатора (*.rsc) !

  // Если hMap = 0, возвращает идентификатор

  // открытой карты HMAP (см. mapCreateMap() в mapapi.h)

  // При ошибке возвращает ноль

 

 _MAPIMP HSITE _MAPAPI mapPutMapPassportRecord(HMAP hMap, const char *mapname,

                                              const char *rscname,

                                              char *buffer, long int size);

_MAPIMP HSITE _MAPAPI mapPutMapPassportRecordUn(HMAP hMap, const WCHAR *mapname,

                                                const WCHAR *rscname, char *buffer,

                                                long int size);

 

 // Запросить объект "Рамка листа"

 // hmap  - идентификатор открытых данных

 // hSite - идентификатор открытой пользовательской карты

 // list  - номер листа (c 1)

 // info  - идентификатор объекта карты в памяти

 // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSiteListFrameObject(HMAP hmap, HSITE hsite,

                                                   long int list, HOBJ info);

 

  // Cоздать пустой объект пользовательской карты (обстановки)

  // (создание подобъекта - см. редактирование метрики объекта)

  // По умолчанию метрика 2-ух мерная

  // hMap  - идентификатор открытой основной карты

  // hSite - идентификатор открытой пользовательской карты

  //         в которой будет расположен создаваемый объект

  // text  - признак метрики с текстом (объекты типа "подпись")

  // kind  - формат метрики

  // После вызова функций типа What...() и Seek...() все параметры

  // полученного объекта могут измениться (text,kind и т.п.)

  // Для каждого полученного и больше не используемого

  // идентификатора HOBJ необходим вызов функции FreeObject()

  // При ошибке возвращает ноль

 

  _MAPIMP HOBJ _MAPAPI mapCreateSiteObject(HMAP hMap,HSITE hSite,

                                   long int kind = IDDOUBLE2,

                                   long int text = 0);

 

  // Определить идентификатор открытой документа

  // для заданного объекта

  // При ошибке возвращает ноль

 

 _MAPIMP HMAP _MAPAPI mapGetObjectDocIdent(HOBJ hObj);      

 

  // Определить идентификатор открытой пользовательской карты

  // по имени файла паспорта

  // hMap  - идентификатор открытой основной карты

  // hObj  - идентификатор объекта пользовательской карты

  // При ошибке возвращает ноль

 

  _MAPIMP HSITE _MAPAPI mapGetSiteIdentByName(HMAP hMap, const char *name);

  _MAPIMP HSITE _MAPAPI mapGetSiteIdentByNameUn(HMAP hMap, const WCHAR *name);

 

  // Запросить имя листа по его номеру (number)

  // hMap  - идентификатор открытых данных

  // hSite - идентификатор открытой пользовательской карты

  // list  - номер листа карты

  // name  - адрес буфера для результата запроса

  // size  - размер буфера в байтах

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSiteSheetNameUn(HMAP hMap, HSITE hSite, long int list,

                                               WCHAR *name, long int size);

 

_MAPIMP long int _MAPAPI mapGetSiteSheetName(HMAP hMap, HSITE hSite, long int list,

                                             char *name, long int size);

 

  // Запросить номенклатуру листа по его номеру                 // 19/01/16

  // Номенклатура листа применяется для поиска в функции mapSeekObject

  // hMap  - идентификатор открытых данных

  // hSite - идентификатор открытой пользовательской карты

  // list  - номер листа карты

  // name  - адрес буфера для результата запроса

  // size  - размер буфера в байтах

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSiteNomenclature(HMAP hMap, HSITE hSite, long int list,

                                                char *name, long int size);

_MAPIMP long int _MAPAPI mapGetSiteListNameEx(HMAP hMap, HSITE hSite, long int list,

                                              char *name, long int size);   

_MAPIMP long int _MAPAPI mapGetSiteNomenclatureUn(HMAP hMap, HSITE hSite, int list,

                                                  WCHAR *name, long int size);

_MAPIMP long int _MAPAPI mapGetSiteListNameUn(HMAP hMap, HSITE hSite, int list,

                                              WCHAR *name, long int size); 

 

  // Запросить номенклатуру листа по его номеру

  // hMap  - идентификатор открытых данных

  // hSite - идентификатор открытой пользовательской карты

  // list  - номер листа карты

  // При ошибке возвращает пустую строку

 

_MAPIMP const char* _MAPAPI mapGetSiteListName(HMAP hMap, HSITE hSite, int list = 1);

  

  // Определить идентификатор открытой пользовательской карты  

  // по имени листа карты (номенклатуре листа !)

  // hMap - идентификатор открытой карты

  // name - номенклатура листа карты

  // list - поле для размещения номера листа (если лист найден в многолистовой карте)

  // При ошибке возвращает ноль

 

_MAPIMP HSITE _MAPAPI mapGetSiteIdentByNomenclature(HMAP hMap, const char * name, long int * list);

_MAPIMP HSITE _MAPAPI mapGetSiteIdentBySheetName(HMAP hMap, const char *name, long int *list);

_MAPIMP HSITE _MAPAPI mapGetSiteIdentByNomenclatureUn(HMAP hMap, const WCHAR * name, long int * list);

 

  // Определить идентификатор открытой пользовательской карты

  // по имени листа карты (которое получено в mapGetSiteSheetNameUn)

  // hMap - идентификатор открытой карты

  // name - имя листа карты

  // list - поле для размещения номера листа

  // При ошибке возвращает ноль

 

_MAPIMP HSITE _MAPAPI mapGetSiteIdentBySheetNameUn(HMAP hMap, const WCHAR *name, long int *list);

 

  // Запросить активную пользовательскую карту             

  // (устанавливается приложением по своему усмотрению)

  // hMap - идентификатор открытой карты

  // При ошибке возвращает ноль

 

HSITE _MAPAPI mapGetActiveSite(HMAP hMap);

 

  // Установить активную пользовательскую карту

  // (устанавливается приложением по своему усмотрению)

  // hMap - идентификатор открытой карты

  // hSite - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

long int _MAPAPI mapSetActiveSite(HMAP hMap,HSITE hSite);

 

  // Перенести объект на другую карту (пересчитать координаты и

  // заменить ссылку в объекте на карту)

  // При переносе объекта выполняется перекодировка объекта

  // для нового классификатора, если код не найден -

  // он устанавливается в ноль, прежнее значение

  // сохраняется в семантике (код 32800).

  // (для замены вызывается mapRegisterObject())

  // Метрика преобразуется в соответствии с типом карты

  // hSite - идентификатор открытой пользовательской карты

  // hObj  - идентификатор объекта пользовательской карты

  // hMap  - идентификатор открытой основной карты

  // Объект на исходной карте при этом не удаляется,

  // для записи объекта в новой карте необходимо вызвать mapCommitObject

  // При ошибке возвращает ноль

 

  _MAPIMP long int _MAPAPI mapSetObjectMap(HOBJ info, HSITE hSite);

  long int _MAPAPI mapChangeObjectMap(HOBJ hObj, HMAP hMap, HSITE hSite);

 

  // Очистить содержание объекта и разместить его на заданной карте

  // hObj  - идентификатор объекта пользовательской карты

  // hMap  - идентификатор открытой основной карты

  // hSite - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapClearSiteObject(HOBJ info, HMAP hMap, HSITE hSite); 

 

  // Обновить размеры пользовательской карты и габариты района

  // Если параметр dfarme равен 0, пересчитывает только

  // габариты района (mapGetPictureSize,...Width,...Height - могут

  // вернуть другие значения)

  // После вызова этой функции необходимо согласовать параметры

  // скроллинга подобно масштабированию карты

  // Данная функция необходима при редактировании карты типа Site,

  // открытой в качестве основной карты (mapCreateSite), когда

  // габариты карты меняются. Заранее могут быть заданы расширенные

  // габариты (сразу после создания или позже).

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // dframe - координаты прямоугольной области района 

  // place  - система координат (PP_PLANE, PP_GEO, PP_PICTURE)

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapSetSiteBorder(HMAP hMap, HSITE hSite,

                                          DFRAME * dframe, long int place);

 

  // Запросить габариты пользовательской карты в системе координат документа

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // list   - номер листа для многолистовой карты или 0

  // dframe - координаты прямоугольной области района

  // place  - система координат (PP_PLANE, PP_GEO, PP_PICTURE)

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSiteBorderEx(HMAP hMap, HSITE hSite, long int list,

                                            DFRAME * dframe, long int place);

_MAPIMP long int _MAPAPI mapGetSiteBorder(HMAP hMap, HSITE hSite,  

                                          DFRAME * dframe, long int place);

 

  // Запросить габариты пользовательской карты в системе координат карты в метрах

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // dframe - координаты прямоугольной области района

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSiteMapBorder(HMAP hMap, HSITE hSite, DFRAME *dframe);

 

  // Запросить габариты объекта "Рамка листа" (если рамки нет -                         // 05/03/17

  // заполняются по габаритам из паспорта)

  // hmap  - идентификатор открытых данных

  // hSite  - идентификатор открытой пользовательской карты

  // list  - номер листа

  // frame - указатель на габариты листа в метрах

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSiteListFrame(HMAP hMap, HSITE hSite, long int list, DFRAME *frame);

 

  // Заменить файл классификатора и перекодировать карту          

  // Поддерживается только для карт, размещенных локально и

  // доступных на запись

  // hMap    - идентификатор открытой основной карты

  // hSite   - идентификатор открытой пользовательской карты

  // rscname - имя нового классификатора

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapChangeSiteRsc(HMAP hMap, HSITE hSite, const WCHAR * rscname);

 

 

 

 

 

 

  /*********************************************************

  *                                                        *

  * ФУНКЦИИ МОНИТОРИНГА ИЗМЕНЕНИЙ КАРТЫ НА СЕРВЕРЕ         *

  *                                                        *

  *********************************************************/

 

  // Запросить список изменившихся на ГИС Сервере объектов и

  // обновить описание объектов в памяти

  // Возвращает идентификатор списка объектов

  // После обработки списка объектов он должен быть удален функцией

  // mapFreeChangedObjectList

  // hMap        - идентификатор открытой основной карты

  // hSite       - идентификатор открытой пользовательской карты

  // maxcount    - максимальное число измененных объектов, которое может быть в списке,

  //               если изменилось больше объектов, то список не формируется,

  //               а карта обновляется с ГИС Сервера полностью (обычно равен 1000)

  //               mapGetChangedObjectCount в этом случае возвращает "-1"

  // skipaction  - код транзакции, который не должен обрабатываться на ГИС Сервере

  //               при заполнении списка изменившихся объектов

  // checkaction - номер транзакции, с которой должен формироваться список изменившихся

  //               объектов. Это может быть значение, которое вернула функция

  //               mapGetChangedObjectAction или 0. Ноль означает формирование

  //               списка для текущего состояния (крайней транзакции, запомненной

  //               в предыдущем вызове обновления). Но вызов mapAdjust тоже обновляет

  //               состояние карты и номер последней транзакции в памяти карты.

  // При ошибке возвращает ноль

 

_MAPIMP HANDLE _MAPAPI mapGetChangedObjectListAndUpdate(HMAP hMap, HSITE hSite,

                                                        long int maxcount,

                                                        long int skipaction,

                                                        long int checkaction = 0);

 

  // Запросить число объектов в списке

  // Число изменившихся объектов может быть нулевым

  // Если число изменившихся объектов больше предельного значения maxcount,

  // заданого в функции mapGetChangedObjectListAndUpdate, то возвращается

  // значение -1 и карта в памяти обновляется полностью

  // Дополнительную информацию можно получить из журнала транзакций

  // функциями из logapi.h

 

_MAPIMP long int _MAPAPI mapGetChangedObjectCount(HANDLE hObjlist);

 

  // Запросить номер последней транзакции, по которой заполнен список объектов

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetChangedObjectAction(HANDLE hObjlist);

 

  // Запросить номер последней транзакции в журнале, в момент формирования списка   // 25/04/14

  // Номер последней транзакции может быть больше номера обработанной транзакции,

  // если список слишком большой

  // В этом случае нужно запросить следующую порцию обновлений

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetChangedObjectTotalAction(HANDLE hObjlist);

 

  // Запросить описание изменившегося объекта

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetChangedObject(HANDLE hObjlist, long int number, HMAP hMap, HSITE hSite, HOBJ info);

 

  // Запросить описание изменений объекта

  // Возвращает признак изменений объекта:

  // 1 - обновлена метрика, 2 - обновлена семантика

  // 3 - обновлена метрика и семантика,

  // 4 - объект создан, 8 - объект удален

  // Нулевое значение может означать изменение кода объекта,

  // границ видимости, масштабируемости

 

_MAPIMP long int _MAPAPI mapGetChangedObjectState(HANDLE hObjlist, long int number);

 

  // Запросить код вида объекта, который был до обновления

  // Возвращает внутренний код объекта в классификаторе

  // У графических объектов код равен нулю

 

_MAPIMP long int _MAPAPI mapGetChangedObjectCode(HANDLE hObjlist, long int number);

 

  // Запросить уникальный номер объекта в листе, который был до обновления

  // В штатных ситуациях номер объекта не меняется при редактировании карты

  // Возвращает идентификационный номер объекта (mapObjectKey)

 

_MAPIMP long int _MAPAPI mapGetChangedObjectKey(HANDLE hObjlist, long int number);

 

  // Освободить ресурсы, занятые списком объектов, созданным

  // функцией mapGetChangedObjectListAndUpdate

 

_MAPIMP void _MAPAPI mapFreeChangedObjectList(HANDLE hObjlist);

 

  // Запросить дату и время по Гринвичу обновления карты             // 13/07/16

  // Если возвращаются нулевые значения, то карта после создания не редактировалась

  // hMap    - идентификатор открытой основной карты

  // hSite   - идентификатор открытой пользовательской карты

  // list    - номер листа карты

  // date    - поле для записи даты в виде числа формата YYYYMMDD по Гринвичу

  // time    - поле для записи числа секунд с 0 часов

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSiteDateAndTime(HMAP hMap, HSITE hSite, long int list,

                                               long int * date, long int * time);

 

  /*********************************************************

  *                                                        *

  * ФУНКЦИИ ХРАНЕНИЯ ДОКУМЕНТОВ НА СЕРВЕРЕ С КАРТОЙ        *

  * ПРЕДНАЗНАЧЕНЫ ДЛЯ КОЛЛЕКТИВНОГО ДОСТУПА К РАЗЛИЧНЫМ    *

  * ФАЙЛАМ, ССЫЛКИ НА КОТОРЫЕ, СОХРАНЯЮТСЯ В СЕМАНТИКЕ     *

  * ОБЪЕКТОВ КАРТЫ. ПРИ УСЛОВИИ, ЧТО КАРТЫ РАЗМЕЩЕНЫ НА    *

  * ГИС СЕРВЕРЕ.                                           *

  *                                                        *

  *********************************************************/

 

  // Удалить документ (произвольный файл) на сервере        

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // alias  - алиас документа на сервере (может храниться в семантике

  //          объекта карты, начинается со строки "HOST#")

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapDeleteSiteDocumentUn(HMAP hMap, HSITE hSite,

                                                 const WCHAR * alias);

 

  // Считать документ на сервере                             

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // alias  - алиас документа на сервере (может храниться в семантике

  //          объекта карты, начинается со строки "HOST#")

  // name   - полный путь к считанному документу, строка заполняется

  //          автоматически при считывании документа, имя документа и

  //          дата редактирования устанавливаются такими, какими они были

  //          при записи в mapSaveSiteDocument.

  // Например: HOST#WorkServer#ALIAS#Моя_Карта#DOC#MyFolder#schema.png 

  // size   - размер буфера для записи пути (не менее 260 символов)

  // При успешном выполнении возвращает имя считанного файла документа в поле name

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapReadSiteDocumentUn(HMAP hMap, HSITE hSite,

                                               const WCHAR * alias,

                                               WCHAR * name, int size);

 

 // Считать информацию о документе на сервере                

 // alias - алиас документа на сервере

 // time  - время обновления файла в хранилище

 // size  - размер файла документа

 // При успешном выполнении возвращает размер исходного файла и время его обновления

 // в хранилище

 // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapReadSiteDocumentInfoUn(HMAP hMap, HSITE hSite,

                                                   const WCHAR * alias,

                                                   SYSTEMTIME * time,

                                                   __int64 * size);

 

  // Сохранить документ на сервере                           

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // name   - полный путь к сохраняемому документу (один файл любого размера)

  // alias  - алиас документа на сервере (может храниться в семантике

  //          объекта карты, начинается со строки "HOST#"),

  //          строка формируется сервером и заполняется при сохранении документа

  // size   - размер буфера для записи алиаса (не менее 260 символов)

  // При успешном выполнении возвращает алиас документа на сервере

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapSaveSiteDocumentUn(HMAP hMap, HSITE hSite,

                                               const WCHAR * name,

                                               WCHAR * alias, int size);

 

  // Запросить путь к кэшу документа на клиенте                  

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // alias  - алиас документа на сервере (может храниться в семантике

  //          объекта карты, начинается со строки "HOST#")

  // name   - полный путь к документу

  // size   - размер буфера для записи пути (не менее 260 символов)

  // При успешном выполнении возвращает имя кэша файла документа в поле name

  // Операция чтения не выполняется, файл может отсутствовать

  // При успешном выполнении возвращает ненулевое значение,

  // если файл имеется в кэш - возвращает положительное значение, иначе - отрицательное

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSiteDocumentNameUn(HMAP hMap, HSITE hSite,

                                                  const WCHAR * alias,

                                                  WCHAR * name, int size);

 

  // Запросить - можно ли сохранить документ с картой         

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // Если карта размещена на сервере и может редактироваться,

  // то в ней есть хранилище документов

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapIsSiteDocumentStorage(HMAP hMap, HSITE hSite);

 

 

  /*********************************************************

  *                                                        *

  *   ФУНКЦИИ ОТОБРАЖЕНИЯ И ПЕЧАТИ ПОЛЬЗОВАТЕЛЬСКОЙ КАРТЫ  *

  *  ПАРАМЕТРЫ КОНТЕКСТА ПОДГОТОВЛЕНЫ (HDC) И УСТАНОВЛЕНО  *

  *  СМЕЩЕНИЕ НА ОБЛАСТЬ ВЫВОДА В ОКНЕ ::SetViewportOrgEx()*

  *                                                        *

  *********************************************************/

 

  // Отобразить образец вида объекта по номеру записи

  // в классификаторе объектов (incode)

  // hdc   - идентификатор контекста устройства вывода,

  // rect  - координаты фрагмента карты (Draw)

  // в изображении (Picture).

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // hDC    - идентификатор контекста устройства вывода

  // rect   - область прорисовки

  // Используется в диалогах выбора вида объекта

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapPaintExampleSiteObject(HMAP hMap, HSITE hSite,

                                                   HDC hdc, RECT *rect,

                                                   long int incode);

 

  // Отобразить образец вида объекта по номеру записи              

  // в классификаторе объектов (incode)

  // hdc   - идентификатор контекста устройства вывода,

  // rect  - координаты фрагмента карты (Draw)

  // в изображении (Picture).

  // hSite - идентификатор открытой пользовательской карты

  // factor - коэффициент масштабируемости изображения 50, 100, 200...

  // Используется в диалогах выбора вида объекта

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapPaintExampleSiteObjectEx(HMAP hMap, HSITE hSite,

                                                     HDC hdc, RECT *rect,

                                                     long int incode,

                                                     long int factor);

 

  /*********************************************************

  *                                                        *

  * ФУНКЦИИ УПРАВЛЕНИЯ ОТОБРАЖЕНИЕМ ПОЛЬЗОВАТЕЛЬСКОЙ КАРТЫ *

  *                                                        *

  *********************************************************/

 

  // Запросить состав отображаемых объектов пользовательской карты

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // (для фоновой карты hSite = hMap) 

  // select - идентификатор контекста поиска/отображения

  // в который будут помещены текущие условия отображения

  // см. mapCreateMapSelectContext(...)

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSiteViewSelect(HMAP hMap,HSITE hSite,

                                        HSELECT select);

 

  // Установить состав отображаемых объектов

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // (для фоновой карты hSite = hMap)

  // select - идентификатор контекста поиска/отображения

 

 _MAPIMP void _MAPAPI mapSetSiteViewSelect(HMAP hMap,HSITE hSite,

                                    HSELECT select);

 

  // Запросить яркость карты (от -16 до +16)

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // (для фоновой карты hSite = hMap)

 

 _MAPIMP long int _MAPAPI mapGetSiteBright(HMAP hMap, HSITE hSite);

 

  // Установить яркость карты (от -16 до +16)

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // (для фоновой карты hSite = hMap)

 

 _MAPIMP long int _MAPAPI mapSetSiteBright(HMAP hMap, HSITE hSite, long int bright);

 

  // Запросить контрастность  (от -16 до +16)

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // (для фоновой карты hSite = hMap)

 

 _MAPIMP long int _MAPAPI mapGetSiteContrast(HMAP hMap, HSITE hSite);

 

  // Установить контрастность (от -16 до +16)

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // (для фоновой карты hSite = hMap)

 

 _MAPIMP long int _MAPAPI mapSetSiteContrast(HMAP hMap, HSITE hSite, long int contrast);

 

  // Запросить число цветов в текущей палитре карты

  // Обычно 16 или 32

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSiteColorsCount(HMAP hMap, HSITE hSite);

 

  // Запросить текущую палитру карты (с учетом яркости/контрастности)

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // colors - указатель на структуру COLORREF первого цвета в палитре

  // count  - количество цветов (не более 256)

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSitePalette(HMAP hMap, HSITE hSite,            

                                     COLORREF * colors, long int count);

 

  // Запросить текущую палитру карты (без учета яркости/контрастности)

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // colors - указатель на структуру COLORREF первого цвета в палитре

  // count  - количество цветов (не более 256)

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSiteColors(HMAP hMap, HSITE hSite,

                                    COLORREF * colors, long int count);

 

  // Установить текущую палитру карты

  // Если colors равно 0, устанавливается палитра из классификатора

  // (палитра классификатора не меняется, изменения будут временными)

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // colors - указатель на структуру COLORREF первого цвета в палитре

  // count  - количество цветов (не более 256)

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapSetSiteColors(HMAP hMap, HSITE hSite,

                                    COLORREF * colors, long int count);

 

  // Установить текущую палитру в карте из классификатора             

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // number - номер палитры в класификаторе

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapSetSitePaletteByNumber(HMAP hMap, HSITE hSite,

                                                   long int number);

                                        

  // Запросить номер текущей палитры в карте                           

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSitePaletteNumber(HMAP hMap, HSITE hSite);

                                          

  // Запросить число палитр в классификаторе карты                    

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSitePaletteCount(HMAP hMap, HSITE hSite);

  

  /*********************************************************

  *                                                        *

  *      ФУНКЦИИ ПОИСКА ОБ'ЕКТОВ ПОЛЬЗОВАТЕЛЬСКОЙ КАРТЫ    *

  *                                                        *

  *     ПОИСК МОЖЕТ ВЫПОЛНЯТЬСЯ В СИСТЕМАХ КООРДИНАТ :     *

  *       ИЗОБРАЖЕНИЯ (Picture)  - в пикселах,             *

  *       КАРТЫ,ИЛИ РАЙОНА (Map) - в дискретах,            *

  *       В ПРЯМОУГОЛЬНОЙ НА                               *

  *       МЕСТНОСТИ (Plane)      - в метрах,               *

  *       В ГЕОДЕЗИЧЕСКОЙ НА                               *

  *       МЕСТНОСТИ (Geo)        - в радианах.             *

  *                                                        *

  *********************************************************/

 

  // Запросить условия поиска активных объектов по пользовательской карте

  // (для фоновой hSite = hMap)                        // 02/02/06

  // Активные объекты - доступны для интерактивного выбора (оператором)

  // Выбор выполняется функцией mapWhatActiveObject()

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // hSelect - идентификатор контекста поиска/отображения

  //          в который будут помещены текущие условия поиска

  //          см. mapCreateMapSelectContext(...)

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSiteActiveSelect(HMAP hMap,HSITE hSite,

                                                HSELECT hSelect);

 

  // Установить условия поиска активных объектов для пользовательской карты

  // (для фоновой hSite = hMap)

  // Активные объекты - доступны для интерактивного выбора (оператором)

  // Выбор выполняется функцией mapWhatActiveObject()

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // hSelect - идентификатор контекста поиска,

  //          который содержит устанавливаемые условия поиска

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapSetSiteActiveSelect(HMAP hMap,HSITE hSite,

                                                HSELECT hSelect);

 

  // Запросить условия поиска объектов по пользовательской карте

  // (для фоновой hSite = hMap)

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // hSelect - идентификатор контекста поиска/отображения

  //          в который будут помещены текущие условия поиска

  //          см. mapCreateMapSelectContext(...)

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSiteSeekSelect(HMAP hMap,HSITE hSite,

                                        HSELECT hSelect);

 

  // Установить условия поиска объектов для пользовательской карты

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // (для фоновой (основной) карты hSite = hMap)

  // hSelect - идентификатор контекста поиска,

  // который содержит устанавливаемые условия поиска

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapSetSiteSeekSelect(HMAP hMap,HSITE hSite,

                                        HSELECT hSelect);

 

  // Поиск объекта по уникальному номеру на карте

  // hMap   - идентификатор открытой основной карты

  // info     - идентификатор существующего объекта,

  // созданного функцией CreateObject() или CreateSiteObject(),

  // в котором будет размещен результат поиска.

  // hSite - идентификатор открытой пользовательской карты

  // key   - идентификатор объекта на карте

  // При ошибке возвращает ноль

 

 _MAPIMP HOBJ _MAPAPI mapSeekSiteObject(HMAP hMap, HSITE hSite,

                                       HOBJ info, long int key);

 

  // Поиск объектов по заданным условиям среди всех объектов

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // info     - идентификатор существующего объекта,

  // созданного функцией mapCreateObject() или mapCreateSiteObject(),

  // в котором будет размещен результат поиска,

  // hSelect - условия поиска объекта,

  // flag - порядок поиска объектов (WO_FIRST, WO_NEXT...)

  // skip - число найденных объектов, которые нужно пропустить перед выдачей результата

  // Если объект не найден - возвращает ноль

 

 _MAPIMP HOBJ _MAPAPI mapSeekSiteSelectObjectEx(HMAP hMap, HSITE hSite,             // 23/01/17

                                             HOBJ info, HSELECT select,

                                             long int flag, long int skip);

 

 _MAPIMP HOBJ _MAPAPI mapSeekSiteSelectObject(HMAP hMap,HSITE hSite,

                                       HOBJ info,HSELECT hSelect,

                                       long int flag);

 

  // Поиск ближайшего объекта по заданным условиям среди всех объектов 

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты в которой ищется объект,

  // info   - идентификатор существующего объекта,

  // созданного функцией mapCreateObject() или mapCreateSiteObject(),

  // в котором будет размещен результат поиска,

  // point  - координаты точки в метрах в системе карты; среди всех

  // подходящих объектов ищется ближайший к заданной точке.

  // target   - координаты ближайшей виртуальной точки на контуре объекта

  //            в метрах документа;

  // hSelect - условия поиска объекта,

  // flag     - дополнительные условия поиска объектов: WO_CANCEL,

  //            WO_VISUAL; флажки типа WO_FIRST, WO_NEXT не учитываются

  // Если объект не найден - возвращает ноль

 

 _MAPIMP HOBJ _MAPAPI mapSeekSiteSelectNearestObjectEx(HMAP hMap, HSITE hSite,

                                                      HOBJ info,

                                                      DOUBLEPOINT *point,

                                                      DOUBLEPOINT *target,

                                                      HSELECT hSelect, int flag);

 _MAPIMP HOBJ _MAPAPI mapSeekSiteSelectNearestObject(HMAP hMap,HSITE hSite,

                                                   HOBJ info,HSELECT hSelect,

                                                   DOUBLEPOINT * point); 

 

  // Запросить число объектов, удовлетворяющих условиям поиска

  // для функции mapSeekSiteSelectObject (выполняет внутренний перебор объектов)

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // - условия поиска объекта

  // При ошибке или отсутствии объектов возвращает ноль

 

 _MAPIMP long int _MAPAPI mapSeekSiteSelectCount(HMAP hMap, HSITE hSite,

                                                HSELECT hSelect);

 

  // Запросить число объектов, удовлетворяющих условиям поиска в заданном листе

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // hSelect - условия поиска объекта

  // list    - номер листа для многолистовой карты, с 1

  // При ошибке или отсутствии объектов возвращает ноль

 

_MAPIMP long int _MAPAPI mapSeekSiteSelectCountForList(HMAP hMap,HSITE hSite,

                                                       HSELECT hSelect, long int list);

 

  // Поиск объектов по заданным условиям среди отображаемых объектов

  // (пересечение заданных условий с условиями отображения)

  // hMap     - идентификатор открытой основной карты

  // hSite    - идентификатор открытой пользовательской карты

  // info     - идентификатор существующего объекта,

  // созданного функцией mapCreateObject() или mapCreateSiteObject(),

  // в котором будет размещен результат поиска,

  // hSelect - условия поиска объекта,

  // flag - порядок поиска объектов (WO_FIRST, WO_NEXT...)

  // Если объект не найден - возвращает ноль

 

 _MAPIMP HOBJ _MAPAPI mapSeekSiteViewObject(HMAP hMap, HSITE hSite, HOBJ info,

                                           HSELECT hSelect, long int flag);

 

  // Запросить число объектов, удовлетворяющих условиям среди отображаемых объектов

  // для функции mapSeekSiteViewObject (выполняет внутренний перебор объектов)

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // hSelect - условия поиска объекта

  // При ошибке или отсутствии объектов возвращает ноль

 

 _MAPIMP long int _MAPAPI mapSeekSiteViewCount(HMAP hMap, HSITE hSite,

                                              HSELECT hSelect);

 

  /************************************************************************

  *                                                                         *

  *   ФУНКЦИИ ЗАПРОСА ИНФОРМАЦИИ О СИСТЕМЕ КООРДИНАТ ПОЛЬЗОВАТЕЛЬСКОЙ КАРТЫ *

  *                                                                         *

  **************************************************************************/

 

  // Запросить базовый масштаб карты

  // hMap   - идентификатор открытой основной карты

  // hSite - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSiteScale(HMAP hMap,HSITE hSite);

 

 // Изменить базовый масштаб пользовательской карты     

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // При отображении в базовом масштабе пользовательской карты

  // размер условных знаков на карте будет соответствовать их размеру

  // в классификаторе RSC

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapSetSiteScale(HMAP hMap,HSITE hSite, long int scale);

 

  // Запросить/установить главное название карты (листа)

  // hMap   - идентификатор открытой основной карты

  // hSite - идентификатор открытой пользовательской карты

  // При ошибке возвращает пустую строку

 

 _MAPIMP const char * _MAPAPI mapGetSiteName(HMAP hMap,HSITE hSite);

 _MAPIMP const WCHAR* _MAPAPI mapGetSiteNameEx(HMAP hMap, HSITE hSite);

 _MAPIMP long int _MAPAPI mapSetSiteNameEx(HMAP hMap, HSITE hSite, const WCHAR * name);

 

  // Запросить главное название карты (листа)

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты 

  // size   - размер строки для размещения результата в байтах

  // При ошибке возвращает 0

 

_MAPIMP long int _MAPAPI mapGetSiteNameUn(HMAP hMap, HSITE hSite,

                                          WCHAR *name, long int size);

  

  // Запросить тип карты (см. maptype.h)

  // hMap   - идентификатор открытой основной карты

  // hSite - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSiteType(HMAP hMap,HSITE hSite);

 

  // Запросить прямоугольные координаты габаритов карты

  // в метрах (система координат PLANE)

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // X - снизу вверх, Y - слева направо

  // т.1 - нижний левый угол,

  // т.2 - верхний правый

 

 _MAPIMP double _MAPAPI mapGetSiteX1(HMAP hMap,HSITE hSite);

 _MAPIMP double _MAPAPI mapGetSiteY1(HMAP hMap,HSITE hSite);

 _MAPIMP double _MAPAPI mapGetSiteX2(HMAP hMap,HSITE hSite);

 _MAPIMP double _MAPAPI mapGetSiteY2(HMAP hMap,HSITE hSite);

 

  // Запросить количество объектов в пользовательской карте

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSiteObjectCount(HMAP hMap,HSITE hSite);

 

  // Запросить количество объектов в пользовательской карте, исключая удаленные

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSiteRealObjectCount(HMAP hMap, HSITE hSite);

 

  // Запросить идентификатор нового объекта, который будет создан на карте следующим

  // Идентификатор созданного объекта может быть запрошен функцией mapObjectKey

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // list   - номер листа (для совместимости с многолистовыми картами)

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSiteNewObjectKey(HMAP hMap, HSITE hSite, int list = 1);    

 

  // Запросить общее число листов на карте

  // hMap   - идентификатор открытой основной карты (данных)

  // hSite  - идентификатор открытой пользовательской карты (может быть равен hMap

  //          для доступа к основной карте)

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSiteListCount(HMAP hmap,HSITE hSite); 

 

  // Удалить указанный лист карты

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // list - номер листа (с 1)

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapDeleteSiteList(HMAP hMap, HSITE hSite, long int list);   // 17/07/16        

 

  // Запросить количество объектов в листе

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты (может быть равен hMap

  //          для доступа к основной карте)

  // number - номер листа карты (для пользовательской карты обычно равен 1)

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSiteObjectCountInList(HMAP hMap, HSITE hSite,

                                                     long int number = 1);

 

  // Запросить паспортные данные векторной карты

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // Структуры MAPREGISTEREX, LISTREGISTER, SHEETNAMES описаны в mapcreat.h

  // sheetnumber - номер листа карты (c 1)

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSiteInfoEx(HMAP hMap,HSITE hSite,

                                    MAPREGISTEREX * mapreg,

                                    LISTREGISTER * listreg,

                                    long int sheetnumber);

 

_MAPIMP long int _MAPAPI mapGetSiteInfoPro(HMAP hMap, HSITE hSite, 

                                           MAPREGISTEREX *mapreg,

                                           LISTREGISTER *listreg,

                                           SHEETNAMES * sheetnames,

                                           long int sheetnumber);

 

 

  // Обновить паспортные данные векторной карты            

  // При смене параметров проекции карта

  // будет трансформирована в соответствии

  // с новыми параметрами проекции из MAPREGISTEREX,

  // если параметр transform не равен нулю

  // Для листа карты можно изменить название, номенклатуру и метаданные

  // (LISTREGISTEREX), координаты рамки (если территория карты

  // ограничена рамкой) пересчитываются автоматически.

  // Время выполнения функции соответствует времени выполнения

  // трансформировании карты (при смене параметров проекции)

  // При выполнении трансформирования посылается сообщение

  // WM_PROGRESSBAR (maptype.h) окну (mapSetHandleForMessage)

  // Структуры MAPREGISTER и LISTREGISTER описаны в mapcreat.h

  // hMap  - идентификатор открытых данных

  // hSite - идентификатор открытой пользовательской карты

  // sheetnumber - номер листа карты (c 1)

  // type - тип локального преобразования координат (см. TRANSFORMTYPE в mapcreat.h) или 0

  // parm - параметры локального преобразования координат или 0 

  // transform   - признак пересчета координат при смене параметров

  //               0 - не пересчитывать, 1 - пересчитать координаты объектов

  // Если при обновлении параметров проекции выполнялось

  // трансформирование карты - возвращает отрицательное значение,

  // иначе - положительное.

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapUpdateSiteInfo(HMAP hMap, HSITE hSite,

                                           MAPREGISTEREX * mapreg,

                                           LISTREGISTER * listreg,

                                           SHEETNAMES * sheetnames,

                                           const WCHAR * mainname,

                                           long int list,

                                           DATUMPARAM * datum,

                                           ELLIPSOIDPARAM * ellparm,

                                           long int type,

                                           LOCALTRANSFORM * parm,    // 10/09/16

                                           long int transform);

 

 _MAPIMP long int _MAPAPI mapUpdateSiteInfoEx(HMAP hMap, HSITE hSite,

                                             MAPREGISTEREX * map,

                                             LISTREGISTER * sheet,

                                             long int sheetnumber,

                                             DATUMPARAM * datum,

                                             ELLIPSOIDPARAM * ellparm,

                                             long int transform);

 

_MAPIMP long int _MAPAPI mapUpdateSiteInfoPro(HMAP hMap, HSITE hSite,     

                                             MAPREGISTEREX *map,

                                             LISTREGISTER *sheet,

                                             SHEETNAMES * sheetnames,

                                             const WCHAR * mainname,

                                             long int sheetnumber,

                                             DATUMPARAM *datum,

                                             ELLIPSOIDPARAM *ellparm,

                                             long int transform);    

 

  // Установить параметры Datum для карты

  // Может выполняться или до записи объектов на карту или

  // в другой момент - для карты хранящей геодезические координаты объектов

  // hMap  - идентификатор открытых данных

  // hSite - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapSetSiteDatum(HMAP hmap, HSITE hSite, DATUMPARAM * parm);

 

  // Запросить параметры Datum для карты

  // hMap  - идентификатор открытых данных

  // hSite - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSiteDatum(HMAP hmap, HSITE hSite, DATUMPARAM * parm);

 

  // Установить параметры эллипсоида для карты

  // Может выполняться или до записи объектов на карту или

  // в другой момент - для карты хранящей геодезические координаты объектов

  // hMap  - идентификатор открытых данных

  // hSite - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapSetSiteEllipsoidParameters(HMAP hMap, HSITE hSite,

                                                       ELLIPSOIDPARAM * parm);

 

  // Запросить параметры эллипсоида для карты

  // hMap  - идентификатор открытых данных

  // hSite - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSiteEllipsoidParameters(HMAP hMap, HSITE hSite,

                                                       ELLIPSOIDPARAM * parm);

 

  // Запросить тип локального преобразования системы координат

  // hMap  - идентификатор открытых данных

  // hSite - идентификатор открытой пользовательской карты

  // При ошибке или отсутствии преобразования возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSiteLocalTransformationType(HMAP hMap, HSITE hSite);

 

  // Запросить адрес параметров локального преобразования системы координат

  // hMap  - идентификатор открытых данных

  // hSite - идентификатор открытой пользовательской карты

  // parm - параметры локального преобразования координат (см. mapcreat.h)

  // Возвращает тип локального преобразования системы координат 

  // При ошибке или отсутствии преобразования возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSiteLocalTransformationParm(HMAP hMap, HSITE hSite, LOCALTRANSFORM * parm);

 

  // Установить параметры локального преобразования системы координат

  // hMap  - идентификатор открытых данных

  // hSite - идентификатор открытой пользовательской карты

  // type  - тип локального преобразования координат (см. TRANSFORMTYPE в mapcreat.h) или 0

  // parm - параметры локального преобразования координат (см. mapcreat.h)

  // При ошибке или отсутствии преобразования возвращает ноль

 

_MAPIMP long int _MAPAPI mapSetLocalTransformation(HMAP hMap, HSITE hSite,

                                                   long int type,

                                                   LOCALTRANSFORM * parm);

 

  // Запрос и установка кода EPSG системы координат           

  // hMap  - идентификатор открытого документа

  // hSite - идентификатор открытой пользовательской карты в документе

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetEPSGCode(HMAP hMap, HSITE hSite);

 _MAPIMP long int _MAPAPI mapSetEPSGCode(HMAP hMap, HSITE hSite, long int code);

 

 // Запрос идентификатора системы координат      

 // hMap   - идентификатор открытого документа

 // hSite  - идентификатор открытой пользовательской карты в документе

 // ident - строка длиной не менее 64 символов для размещения идентификатора

 // size  - длина строки

 // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetCRSIdent(HMAP hMap, HSITE hSite,

                                        char *ident, long int size);

_MAPIMP long int _MAPAPI mapGetCRSIdentUn(HMAP hMap, HSITE hSite,

                                          WCHAR *ident, long int size);

 

 // Установка идентификатора системы координат      

 // hMap   - идентификатор открытого документа

 // hSite  - идентификатор открытой пользовательской карты в документе

 // hMap  - идентификатор открытых данных

 // hSite - идентификатор открытой пользовательской карты

 // ident - строка со значением идентификатора не более 64 символов

 // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapSetCRSIdent(HMAP hMap, HSITE hSite, const char *   ident);

_MAPIMP long int _MAPAPI mapSetCRSIdentUn(HMAP hMap, HSITE hSite, const WCHAR * ident);  

 

  // Запрос и установка идентификатора набора данных листа карты

  // hMap   - идентификатор открытого документа

  // hSite  - идентификатор открытой пользовательской карты в документе

  // list   - номер листа карты с 1 или 0 (запрос/установка идентикатора набора листов)

  // Для пользовательской (однолистовой карты) list равен 1

  // ident - строка со значением идентификатора не более 32 символов,

  //         обычно 32 шестнадцатеричных символа GUID и замыкающий ноль

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetDataIdent(HMAP hMap, HSITE hSite, long int list,

                                        char *ident, long int size);

_MAPIMP long int _MAPAPI mapSetDataIdent(HMAP hMap, HSITE hSite,  long int list,

                                         const char *ident);

 

 // Запросить/Установить гриф секретности карты                   // 12/06/15

 // hMap  - идентификатор открытых данных

 // hSite - идентификатор открытой пользовательской карты

 // code  - код степени секретности данных:

 // 1 - открытая информация (unclassified), 2 - информация с ограниченным доступом (restricted),

 // 3 - информация для служебного пользования (confidential),

 // 4 - секретная информация (secret), 5 - совершенно секретная информация (topsecret)

 // При ошибке или отсутствии значения возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSiteSecurityCode(HMAP hMap, HSITE hSite);

_MAPIMP long int _MAPAPI mapSetSiteSecurityCode(HMAP hMap, HSITE hSite, long int code);

 

  // Запросить сведения о реально имеющихся объектах на карте  

  // (для фоновой hSite = hMap)

  // hMap   - идентификатор открытого документа

  // hSite  - идентификатор открытой пользовательской карты в документе

  // select - идентификатор контекста поиска

  // в который будут помещены условия, соответствующие имеющимся объектам

  // (слои, объекты, локализации - доступ см. в seekapi.h)

  // см. mapCreateMapSelectContext(...)

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSiteUsedSelect(HMAP hMap,HSITE hSite,

                                        HSELECT select);

 

  // Запросить установлены ли сведения об имеющихся объектах                    // 23/06/15

  // hMap   - идентификатор открытого документа

  // hSite  - идентификатор открытой пользовательской карты в документе

  // Если по условиям поиска все объекты выбираются без исключений -

  // возвращает ноль, иначе - ненулевое значение

 

_MAPIMP long int _MAPAPI mapIsUsedSelectActive(HMAP hMap, HSITE hSite);

 

  // Трансформировать векторную карту в заданную систему координат    // 18/06/15

  // hMap   - идентификатор открытого документа

  // hSite  - идентификатор открытой пользовательской карты в документе

  // mapname       - имя создаваемой карты

  // mapreg        - адрес структуры, описанной в mapcreat.h

  // ellparam      - параметры эллипсоида (необязательный параметр)

  // datum         - параметры DATUM для карты (необязательный параметр)

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapTransformationMap(HMAP hMap, HSITE hSite,

                                              const WCHAR    * mapname,

                                              MAPREGISTEREX  * mapregex,

                                              DATUMPARAM     * datumex,

                                              ELLIPSOIDPARAM * ellparamex); 

                                               

  /*********************************************************

  *                                                        *

  *       ФУНКЦИИ ЗАПРОСА ИНФОРМАЦИИ О СЛОЯХ КАРТЫ         *

  *                                                        *

  *********************************************************/

 

  // Запросить число слоев на карте

  // hMap   - идентификатор открытой основной карты

  // hSite - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapGetSiteLayerCount(HMAP hMap,HSITE hSite);

 

  // Запросить название слоя по его номеру

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // number - номер слоя

  // Номер первого слоя 0

  // При ошибке возвращает пустую строку

 

 _MAPIMP const char * _MAPAPI mapGetSiteLayerName(HMAP hMap,HSITE hSite,

                                           long int number);

 

  // namesize - размер буфера для возвращаемой строки в байтах

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSiteLayerNameUn(HMAP hMap, HSITE hSite,

                                               long int number,

                                               WCHAR *name, long int namesize);

 

  /*********************************************************

  *                                                        *

  * ФУНКЦИИ ЗАПРОСА ИНФОРМАЦИИ ИЗ КЛАССИФИКАТОРА ОБ'ЕКТОВ  *

  *                                                        *

  *********************************************************/

 

  // Запросить число объектов описанных в классификаторе

  // hMap   - идентификатор открытой основной карты

  // hSite - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

  _MAPIMP long int _MAPAPI mapSiteRscObjectCount(HMAP hMap,HSITE hSite);

 

  // Запросить число объектов описанных в классификаторе

  // в заданном слое

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // layer  - номер слоя

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapSiteRscObjectCountInLayer(HMAP hMap, HSITE hSite,

                                                      long int layer);

 

  // Запросить название объекта по порядковому номеру

  // в заданном слое

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // layer  - номер слоя

  // number - номер объекта в слое

  // При ошибке возвращает ноль или пустую строку

 

 _MAPIMP const char* _MAPAPI mapSiteRscObjectNameInLayer(HMAP hMap, HSITE hSite,

                                                        long int layer,

                                                        long int number);

 

  // namesize - размер буфера для возвращаемой строки в байтах

  // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapSiteRscObjectNameInLayerUn(HMAP hMap, HSITE hSite,

                                                       long int layer, long int number,

                                                       WCHAR *name, long int namesize);

 

  // Запросить классификационный код объекта

  // по порядковому номеру в заданном слое

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // layer  - номер слоя

  // number - номер объекта в слое

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapSiteRscObjectExcodeInLayer(HMAP hMap, HSITE hSite,

                                                      long int layer, long int number);

 

  // Запросить код локализации объекта

  // по порядковому номеру в заданном слое

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // layer  - номер слоя

  // number - номер объекта в слое

  // При ошибке возвращает ноль (ноль допустим)

 

 _MAPIMP long int _MAPAPI mapSiteRscObjectLocalInLayer(HMAP hMap, HSITE hSite,

                                                      long int layer, long int number);

 

  // Запросить внутренний код (индекс) объекта

  // по порядковому номеру в заданном слое

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // layer  - номер слоя

  // number - номер объекта в слое

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapSiteRscObjectCodeInLayer(HMAP hMap, HSITE hSite,

                                                     long int layer, long int number);

 

  // Запросить внутренний код (индекс) объекта

  // по внешнему коду и локализации

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // excode - внешний код объекта

  // local  - локализация объекта

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapSiteRscObjectCode(HMAP hMap, HSITE hSite,

                                              long int excode, long int local);

 

 // ************************************************************

 //                                                            *

 //         РЕДАКТИРОВАНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ОБ'ЕКТА           *

 // (доступны все функции редактирования объекта базовой карты)*

 //                                                            *

 // ************************************************************

 

 // Запросить (найти) последовательный номер объекта

 // hMap   - идентификатор открытой основной карты

 // hSite  - идентификатор открытой пользовательской карты

 // key    - уникальный идентификатор объекта

 // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapGetSiteObjectNumberByKey(HMAP hMap, HSITE hSite,

                                              long int key);

 

 // Запросить уникальный идентификатор объекта по последовательному номеру объекта

 // hMap   - идентификатор открытой основной карты

 // hSite  - идентификатор открытой пользовательской карты

 // number - последовательный номер объекта

 // list   - номер листа (для пользовательской карты равен 1)

 // При ошибке возвращает ноль                                     

 

_MAPIMP long int _MAPAPI mapGetSiteObjectKeyByNumber(HMAP hMap, HSITE hSite,

                                                     long int number, long int list = 1);

 

 // Удалить объект карты по его последовательному номеру

 // hMap   - идентификатор открытой основной карты

 // hSite  - идентификатор открытой пользовательской карты

 // object - последовательный номер объекта

 // Для отмены удаления применяются mapUndeleteObjectByNumber и

 // mapUndeleteObject

 // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapDeleteSiteObjectNumber(HMAP hMap, HSITE hSite,

                                            long int object);

_MAPIMP long int _MAPAPI mapDeleteSiteObjectByNumber(HMAP hMap, HSITE hSite,

                                              long int object);

 

 // Восстановить копию объекта по дате и времени  

 // выполнения транзакции

 // hMap  - идентификатор открытой карты

 // hSite - идентификатор открытой пользовательской карты

 // info -  идентификатор существующего объекта,

 //         созданного функцией CreateObject() или CreateSiteObject() и

 //         прочитанного функцией mapReadObjectByNumber или mapReadObjectByKey,

 //         в котором будет размещен результат восстановления

 // date - дата в формате "YYYYMMDD"

 // time - время в формате "число секунд от 00:00:00"

 //        (по Гринвичу - GetSystemTime, in Coordinated Universal Time (UTC))

 // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapRestoreBackObject(HMAP  hMap, HSITE hSite, HOBJ info,

                                              long int date, long int time);

  

 

/*********************************************************

 *                                                        *

 *    СОЗДАНИЕ КОНТЕКСТА ПОИСКА/ОТОБРАЖЕНИЯ               *

 *                                                        *

 *********************************************************/

 

  // Создать контекст (описание условий) поиска/отображения

  // объектов карты

  // В состав условий отбора объектов входят : слой,

  // локализация, диапазон номеров объектов, характеристики

  // (семантика) объекта, область расположения (метрика) объекта

  // В созданном контексте доступны все объекты карты без исключений

  // Запрашивается минимум 10 Кб памти,

  // если заданы условия поиска по метрике и семантике - до 300 Кб

  // Каждый созданный контекст должен быть удален, когда

  // он больше не используется

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

 _MAPIMP HSELECT _MAPAPI mapCreateSiteSelectContext(HMAP hMap,HSITE hSite);

 

  // Связать контекст условий поиска с другой картой

  // Все условия поиска автоматически сбрасываются

  // hMap   - идентификатор открытой основной карты

  // hSite  - идентификатор открытой пользовательской карты

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapSetSelectContextSite(HSELECT hSelect, HMAP hMap,

                                                 HSITE hSite);

 

  /*********************************************************

  *                                                        *

  *       ФУНКЦИИ СОЗДАНИЯ ЗАРАМОЧНОГО ОФОРМЛЕНИЯ          *

  *                                                        *

  *********************************************************/

 

  // Добавить зарамочное оформление в пользовательскую карту

  // hmap - идентификатор основной векторной карты

  // hsite - идентификатор пользовательской карты

  // frmname - полное имя файла шаблона зарамочного оформления (*.frm)

  // frame - габариты внутреннего контура зарамочного оформления в метрах

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapAddMarginalRepresentationSite(HMAP hmap, HSITE hsite,

                                                    const char *frmname,

                                                    DFRAME *frame);

 

 // Добавить зарамочное оформление в пользовательскую карту

 // hmap - идентификатор основной векторной карты

 // hsite - идентификатор пользовательской карты

 // frmname - полное имя файла шаблона зарамочного оформления (*.frm)

 // frame - габариты внутреннего контура зарамочного оформления в метрах

 // angle - угол поворота (если есть)

 // center - центр поворота (если есть угол)

 // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapAddMarginalRepresentationSiteEx(HMAP hmap, HSITE hsite,

                                                            const char *frmname,

                                                            DFRAME *frame, double angle,

                                                            DOUBLEPOINT *center);

 

_MAPIMP long int _MAPAPI mapAddMarginalRepresentationSiteUn(HMAP hmap, HSITE hsite,

                                                            const WCHAR *frmname,

                                                            DFRAME *frame, double angle,

                                                            DOUBLEPOINT *center);

 

  // Нанести линию заданного кода на пользовательскую карту

  // hmap - идентификатор открытой векторной карты

  // hsite - идентификатор пользовательской карты

  // excode - код линии

  // x1,y1,x2,y2 - координаты первой и второй точек в метрах

  // angle - угол поворота (если есть)

  // center - центр поворота (если есть угол)

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapCreateLineSite(HMAP hmap, HSITE hsite,

                                     long int excode,

                                     double x1,double y1,

                                     double x2,double y2,

                                     double angle, DOUBLEPOINT *center);

 

  // Создать рамку для зарамочного оформления на пользовательской карте

  // hmap - идентификатор открытой векторной карты

  // hsite - идентификатор пользовательской карты

  // framecode - код внутренней рамки

  // fillcode - код заполнения

  // linecode - код внешней рамки

  // delta - расстояние от внутренней до внешней рамки а м

  // frame - габариты внутренней рамки в м

  // angle - угол поворота (если есть)

  // center - центр поворота (если есть угол)

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapCreateFrameFillSite(HMAP hmap, HSITE hsite,

                                                long int framecode,

                                                long int fillcode,

                                                long int linecode,

                                                double delta, DFRAME *frame,

                                                double angle, DOUBLEPOINT *center);

 

  // Нанести текст заданного кода на пользовательскую карту

  // hmap - идентификатор открытой векторной карты

  // hsite - идентификатор пользовательской карты

  // excode - код текста подписи

  // text - текст подписи

  // x1,x2,y1,y2 - координаты первой и второй точек в метрах

  // wide - выравнивание по горизонтали

  //      - UNIA_LEFT  - по левому краю

  //      - UNIA_CENTER - по центру

  //      - UNIA_RIGHT - по правому краю

  // vert - наличие выравнивания по вертикали (0 или 1)

  // angle - угол поворота (если есть)

  // center - центр поворота (если есть угол)

  // При ошибке возвращает ноль

 

 _MAPIMP long int _MAPAPI mapCreateTitleSite(HMAP hmap, HSITE hsite,

                                            long int excode,

                                            const char *text,

                                            double x1, double y1,

                                            double x2, double y2,

                                            long int wide, long int vert,

                                            double angle, DOUBLEPOINT *center);

 

_MAPIMP long int _MAPAPI mapCreateTitleSiteUn(HMAP hmap, HSITE hsite,

                                              long int excode,

                                              const WCHAR *text,

                                              double x1, double y1,

                                              double x2, double y2,

                                              long int wide, long int vert,

                                              double angle, DOUBLEPOINT *center);

 

 // Замена буквы 'я' на спецсимвол перед тем как разобрать строку

 // функцией sscanf

 // string - строка

 // len - длина строки

 // simbol - спецсимвол (если == 0 - то заменяет 'я' на '^')

 // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapPreSscanf(char *string, int len, char simbol);

 

 // Замена спецсимвола на 'я' после разбора строки функцией sscanf

 // string - строка

 // len - длина строки

 // simbol - спецсимвол (если == 0 - то заменяет '^' на 'я')

 // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapPostSscanf(char *string, int len, char simbol);

 

// Функция создания легенды карты

 // hmap      - идентификатор открытого документа

 // hsite     - идентификатор открытой пользовательской карты

 // outname   - полное имя файла выходной карты-легенды

 // desc      - параметры легенды (фон, подпись, контур; описана в mapgdi.h)

 // hselect   - контекст отбора слоев\объектов карты для формирования легенды (необязательный параметр, может быть равен нулю)

 // error     - код ошибки при построении легенды (необязательный параметр, может быть равен нулю, коды в maperr.rh)

 // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI  mapCreateLegend(HMAP hmap, HSITE hsite, const WCHAR * outname,                                   

                                          LEGENDESC * desc, HSELECT  hselect, int * error);

 

 // Функция подготовки легенды карты

 // При необходимости создания изображения нестандартного размера (отличного от 16x16, 24x24 и 32x32)

 // необходимо указать размер в параметре imgsize

 // hmap      - идентификатор открытой векторной карты

 // hsite     - идентификатор открытой пользовательской карты

 // hselect   - контекст отбора слоев карты для формирования легенды (необязательный параметр)

 // xmlname   - имя выходного xml-файла

 // imgpath   - путь к изображениям формата png

 // frsc      - флаг отбора объектов (1 - по всему классификатору; 0 - по hselect)

 // imgsize   - нестандартный размер изображения (сторона квадрата)

 // transparentColor - цвет прозрачного фона, если параметр не задан то фон непрозрачный белый

 // Если равен нулю, то будут созданы только изображения размеров 16x16, 24x24 и 32x32)

 // Максимальный размер изображения 1024x1024

 // При ошибке возвращает 0

 

_MAPIMP long int _MAPAPI mapCreateLegendFromXML(HMAP hmap, HSITE hsite,

                                                HSELECT  hselect,

                                                const WCHAR * xmlname,

                                                const WCHAR * imgpath,

                                                long int frsc,

                                                long int imgsize);         // 22/07/15 Савелов);

_MAPIMP long int _MAPAPI  mapCreateLegendFromXMLEx(HMAP hmap, HSITE hsite,

                                                 HSELECT  hselect,

                                                 const WCHAR * xmlname,

                                                 const WCHAR * imgpath,

                                                 long int   frsc,

                                                 long int imgsize,

                                                 long int transparentColor);

 

 

  // Сконвертировать значение строки, убрав спецсимволы XML ('\"', '?', '>', '<', '&', '\''

  // semval - входная строка в кодировке ANSI

  // outval - выходная строка в кодировке ANSI (&quot; и т.д.)

  // outsize - размер выходной строки

  // При ошибке возвращает 0

 

_MAPIMP long int _MAPAPI ConvertStrintgToXmlString(const char* semval, char* outval, int outsize);

 

  // Сконвертировать значение строки, заменив спецсимволы JSON ('\"', '\n', '\r', '\v', '\\', '\t')

  // Заменяет '\"' на '\'', а остальные спецсимволы на пробелы

  // inval  - обрабатываемая строка в кодировке UTF16, заканчивающаяся символом конца строки

 

_MAPIMP void _MAPAPI ConvertStringToJsonString(char* inval);

_MAPIMP void _MAPAPI ConvertStringToJsonStringUn(WCHAR* inval);

 

 

 // Сконвертировать значение строки, восстановив спецсимволы XML

  // text - входная строка

  // outtext - выходная строка

  // size - размер выходной строки

  // При ошибке возвращает 0

 

_MAPIMP long int _MAPAPI ConvertFromXmlToString(const char* text, char* outtext, int size);

_MAPIMP long int _MAPAPI ConvertFromXmlToStringUn(const WCHAR* text, WCHAR* outtext, int size); 

 

#ifdef __cplusplus

}       // extern "C"

#endif

 

#endif  // SITAPI_H

 

Дата последней корректировки     11.07.2017 г.