Проверил в версии 15.1.4.15 (текущей установленной) - замыкание контуров происходит в масштабах 1:25000 и крупнее. Возможно, это связано с превышением габаритов области вывода. При выводе в масштабе 1:50000 такого не происходит. В масштабе 1:10000 замыкаются все линии из Вашего примера. В масштабе 1:25000 замыкаются линии, находящиеся ниже середины листа.
Есть альтернативный способ сохранения в PDF: 1. Установить драйвер PDF-принтера: http://download.pdfforge.org/download/pdfcreator/PDFCreator-stable 2. В ГИС Панорама: Файл - Печать 3. Выбрать принтер PDFCreator, режим Векторный, формат страницы A0, разбить постранично. 4. Выбрать область печати по объекту. 5. Нажать кнопку "Печать" и выбрать имя файла PDF.
Когда я выбрал область печати, то увидел, что в масштабе 1:10000 область печати занимает более ТЫСЯЧИ листов формата A0 - это перебор!
[QUOTE]Андрей Николаевич написал: при экспорте матрицы в формат tif с параметрами по умолчанию, результат получается с округлением до метра.[/QUOTE]
В старой версии программы при экспорте 32-битной матрицы высот (с хранением значений высот с точностью в 1 миллиметр) матрица TIF всегда сохранялась с записью высот в вещественном формате 32 бита (FLOAT32). После обращения пользователя, программное обеспечение которого не поддерживало формат FLOAT32, экспорт матрицы в TIF был доработан - добавлена возможность выбора формата записи высот в TIF: BYTE, INT16, INT32, FLOAT32, FLOAT64. При выборе форматов INT16 и INT32 значения высот округляются до целых метров (в большую сторону). На странице помощи подробное описание: https://help.gisserver.ru/v15/russian/panorama/index.html?savemtwastiff.html Для сохранения точности значений до миллиметров необходимо выбрать формат высоты "Вещественное число размером 32 бит" (FLOAT32).
Привожу пример рабочей функции для варианта 2 (маленькая окружность одного цвета):[CODE]// -------------------------------------------------------------- // Инициализация точечного описания // -------------------------------------------------------------- int TUserViewItem::InitPointDraw() { struct MARKCHAIN { MARKCHAIN() { memset(this, 0, sizeof(MARKCHAIN)); }
Если функция IMG_MARK, то и структура должна быть IMGMARK[CODE]typedef struct IMGMARK // (137) ТОЧЕЧНЫЙ РАСТРОВЫЙ ОБ'ЕКТ { // (size = 16 + 128 = 144) unsigned int Color ; // Цвет знака unsigned int Size ; // Размер в микронах (для печати) unsigned int PosV ; // Точка привязки знака PosV,PosH < Size unsigned int PosH ; // (для IMGSQUAREMARK - шаг сетки >= Size unsigned char Bits[128]; // Растровое изображение 32x32 с верхнего угла } IMGMARK;[/CODE]IMGMARK parm; ... mapAppendDraw(objectId, IMG_MARK, (char*)&parm);
Вариант 2: [CODE]// Выделить буфер с запасом (4 Кбайт) char* buffer = new ...
IMGMULTIMARK* parm = (IMGMULTIMARK*)buffer; // Структура переменной длины ... // Заполнить параметры
IMGMARKCHAIN* chain = (IMGMARKCHAIN*)(parm + 1); chain->Color = ... // Заполнить параметры для первого цвета
chain++; chain->Color = ... // Заполнить параметры для второго цвета
[QUOTE]Андрей Ильин написал: так то оно так, да вот когда объект один, то это 2 клика, а когда разных видов объектов очень много, то они превращаются в 50% экономии.[/QUOTE] 1. Объединение диалогов нецелесообразно - диалог "Выбор семантики" вызывается и в других диалогах. 2. Доработка диалога "Выбор семантики" возможна (несколько позднее).