Цитата |
---|
Дарья Лунченко написал: Здравствуйте. Карта одна и та же. Она одна и является основной соответственно. Конечно же selSaveSelect я делаю перед закрытием карты, а selRestoreSelect после открытия Панорамы. В итоге все равно контекст условий поиска/отображения не сохраняется? |
Условия поиска объектов не сохраняются между сеансами специально.
Было много проблем с пользователями, которые забывали об установленных ранее условиях поиска (например, по номеру объекта), выбирали некоторый слой и не могли его найти.
Для сохранения сложных условий есть именованные Макеты условий поиска.
Их можно заранее набрать и установить их отображение (список имен) в меню поиска или выбирать при необходимости в закладке Макеты.
Можно сохранять условия поиска в свой файл макетов (в формате XML) и восстанавливать.
Код |
---|
// Сформировать запись для сохранения условий поиска в формате XML // 23/03/16
// select - контекст условий поиска
// name - имя модели (условий поиска) или ноль
// Возвращает идентификатор записи формата XML в памяти
// Для получения указателя на запись применяются функция mapGetSelectRecordXMLPoint
// Для удаления записи в памяти применяются функция mapFreeSelectRecordXML
// При ошибке возвращает ноль
_MAPIMP HANDLE _MAPAPI mapGetSelectRecordXML(HSELECT select, const WCHAR * name); // 12/06/17
// Получить указатель на запись XML для сохранения условий поиска в формате XML // 23/03/16
// select - контекст условий поиска
// record - идентификатор записи формата XML в памяти
// size - поле для получения длины записи
// name - имя модели (условий поиска) или ноль
// Возвращает указатель на запись XML в кодировке UTF-8
// Для удаления записи в памяти применяются функция mapFreeSelectRecordXML
// При ошибке возвращает ноль
_MAPIMP const char * _MAPAPI mapGetSelectRecordXMLPoint(HSELECT select, HANDLE record, long int * size);
// Удалить запись в памяти, созданную функцией mapGetSelectRecordXML // 23/03/16
// select - контекст условий поиска
// record - идентификатор записи формата XML в памяти
_MAPIMP void _MAPAPI mapFreeSelectRecordXML(HSELECT select, HANDLE record);
// Заполнить условия поиска из записи XML // 23/03/16
// select - контекст условий поиска
// buffer - адрес записи
// length - длина записи в памяти
// При ошибке возвращает ноль
_MAPIMP long int _MAPAPI mapPutSelectRecordXML(HSELECT select, const char * buffer, long int length); |
Функции возвращают текст в кодировке UTF-8, который содержит узел <model> .... <\model>
с условиями поиска. Вы можете его сохранить в свой XML.
Код |
---|
ПРИМЕР ЗАПИСИ МОДЕЛИ УСЛОВИЙ ОТБОРА ОБЪЕКТОВ
<model name="DialogsState">
<sheets>
<item>N-37-001</item>
<item>N-37-002</item>
<item>N-37-003</item>
</sheets>
<locals>line,polygon,dot,vector,title,mixed</locals>
<segments>Vegetation,Relief,Soil,Hydrography</segments>
<objects mode="0">S0031410000,L00323100001,S0051112000,S00511412001,V0051111000,P0053221000,T00910400001,C009217500023</objects>
<keys>123456,987654</keys>
<semantics condition="or">
<item>9,equal,Ногинск</item>
<item>4,moreequal,199.5</item>
<item>55,pass</item>
<item>33,any</item>
</semantics>
<measures condition="and">
<item type="length">MORE,50.5,LESSEQUAL,100</item>
<item type="square">MOREEQUAL,1999.5</item>
<item type="height">EQUAL,77</item>
</measures>
</model> |