Аналитика
http://www.geosystema.net/forum/

FAQ для опытных пользователей (секреты)
http://www.geosystema.net/forum/viewtopic.php?f=1&t=9
Страница 7 из 9

Автор:  Bondarets Alexander [ 16 авг 2012 14:29 ]
Заголовок сообщения:  Re: FAQ для опытных пользователей (секреты)

Цитата:
Хм. На мой взгляд устройство вывода ни при чём.
Подпись, очевидно, представляет собой векторный объект со своим "размахом", который не зависит от размера шрифта.
При редактировании пользователь как раз может менять этот "размах", а текст подгоняется программой автоматически. Возможно текст представлен в виде path. В общем, текст не привязан к устройству вывода, он такой же векторный объект как нарисованная пользователем линия или условный знак.


Нет, не верно. Прав был Дмитрий Федоров. Инфа о разрешении устройства вывода необходима для правильного отображения подписей и расчета масштаба отображения карты. В Digitals для этого даже предусмотрена настройка Диагональ экрана, так как Windows часто возвращает неточные значения разрешения для устройств вывода.

Размах подписи в пикселях расчитывается для текущего масштаба отображения и текущего контекста вывода через, уже упоминавшуюся, API функцию GetTextExtentPoint32. Предварительно определяется высота текста для данного масштаба отображения и в контекст выбирается нужный GDI фонт.

Подписи не векторные - используется уже устаревший графический движок GDI.

Автор:  Колобок [ 16 авг 2012 18:07 ]
Заголовок сообщения:  Re: FAQ для опытных пользователей (секреты)

Bondarets Alexander писал(а):
Подписи не векторные - используется уже устаревший графический движок GDI.

Ясно. Я в аналогичной задаче перегонял текст в path и далее масштабировал уже его.

Автор:  Колобок [ 16 авг 2012 18:16 ]
Заголовок сообщения:  Re: FAQ для опытных пользователей (секреты)

Dmitriy Fedorov писал(а):
Насколько я понимаю, дигиталом вы не пользовались, а просто решаете задачу какого-то специфического экспорта из формата DMF.
Верно. Я программист, а Digitals есть под рукой только чтобы посмотреть как в нём то и сё.
Цитата:
Не гарантирую на 100% (а разработчики пока молчат :) ), но подход видимо следующий: вычислить размах подписи в пунктах с помощью, скажем, GetTextExtentPoint32 и перевести в мм. Получившийся размах и будет размахом в метрах по принципу в 1мм = 1м.
Спасибо большое и даже огромное!

Автор:  Bondarets Alexander [ 28 фев 2013 17:09 ]
Заголовок сообщения:  Re: FAQ для опытных пользователей (секреты)

Создание датума для местной СК без связующих точек

Предположим у вас имеются такие параметры местной СК:

X = 5500000
Y = 10000
Осевой меридиан = 27 гр
Местная СК основана на СК63

Итак, что же у нас есть. Очевидно, что

X - это FalseNorth
Y - это FalseEast

если система основана на СК63, значит используется эллипсоид Красовского и ширина зоны 3 гр. Составляем датум:

[Какая-то-там-местная-СК]
a=6378245
f=298.3
Scale=1.0
FalseEast=-10000
FalseNorth=-5500000
PrimeMeridian=25.5
ZoneSize=3
Helmert=25.0 -141 -78.5 0.0 -0.35 -0.736 0.0


Как мы помним, в Digitals преобразование координат идет от общего знаменателя - WGS84. При этом выполняются следующие действия:

1. Применяются коэф. Хельмерта (параметр Helmert) для перехода на эллипсоид Красовского (если переход происходит из СК на этом же эллипсоиде, то данный этап опускается).

2. Находятся прямоугольные координаты точки в декартовой системе координат, где осевой меридиан (PrimeMeridian + ZoneSize/2) задает ось X, а экватор ось Y.

3. К полученным координатам прибавляется FalseEast и FalseNorth.

На выходе получаем координаты в местной СК.

Автор:  Bondarets Alexander [ 10 июл 2013 14:20 ]
Заголовок сообщения:  Re: FAQ для опытных пользователей (секреты)

Локальная коррекция сетки

ЦМР>Локальная коррекция сетки давняя команда, но мало кто ее использует. А между тем функция очень полезна при редактировании регулярной сетки, построенной автоматическим способом.

Как известно, автоматические алгоритмы построения модели рельефа по стереоснимкам часто допускают ошибки на участках с деревьями, кустами, небольшими зданиями. Такие ошибки выражаются в локальных искажениях сетки в виде выступов. Тут и пригодится команда ЦМР>Локальная коррекция сетки, позволяющая корректировать высоту группы точек.

Достаточно в режиме стереосбора в центре выступа навестись на правильную высоту, зарегистрировать точечный объект и выполнить указанную команду. Высота точек ЦМР вокруг зарегистрированного пикета будет скорректирована методом квадратичной интерполяции.

Данная функция требует помеченный опорный объект с правильной высотой (пикет) и помеченную сетку ЦМР для которой выполняется коррекция. Если сетку не помечать, будет найден первый объект в карте с типом слоя Сетка ЦМР.

Чтобы собранный опорный объект оставался помеченный после завершения сбора, включите Сервис>Настройки>Сбор>Помечать собранный объект.

Радиус локальной коррекции сетки задается в метрах в Сервис>Настройки>Главная>Константы>LocalDEMDistance. Если указано значение 0, тогда радиус рассчитывается как удвоенный шаг сетки ЦМР.

В прикрепленном файле пример ЦМР и слой Коррекция ЦМР, содержащий скрипт
Код:
%Events.OnCollect
$N=@EventObject
@Map.SelectObject $N
ЦМР | Локальная коррекция сетки
@Map.DeleteObject $N
Скрипт запускается по окончанию сбора объекта в слое Коррекция ЦМР, выполняет локальную коррекцию в данном месте и удаляет опорный объект.

Вложения:
Комментарий к файлу: Пример скрипта для локальной коррекции ЦМР
LocalDEMCorrection.dmf [58.33 Кб]
Скачиваний: 1061

Автор:  Sergey45 [ 13 дек 2013 20:49 ]
Заголовок сообщения:  Re: FAQ для опытных пользователей (секреты)

Добрый день. У меня возникла следующая проблема. Есть файл .dmf, много слоев. При предварительном просмотре картинка корректная , все слои на местах. При печати некоторые слои печатаются в другом масштабе, значительно крупнее. Пробовал на плотере и разных принтерах. картина одинаковая. Где можно посмотреть, что исправить? Спасибо за ответ.

Автор:  Bondarets Alexander [ 16 дек 2013 16:41 ]
Заголовок сообщения:  Re: FAQ для опытных пользователей (секреты)

Трудно сказать, в чем причина. Возможно в карте имеются объекты, вставленные в другом масштабе. Можете приложить или отправить почтой DMF с фрагментом вашей карты?

Автор:  _Visco_ [ 16 дек 2013 16:45 ]
Заголовок сообщения:  Re: FAQ для опытных пользователей (секреты)

Ребята поравте все таки сортировку в XML по полям, в окнах выбора юр. и физ. лиц, она там не работает.

Автор:  Bohdan29 [ 30 янв 2014 18:08 ]
Заголовок сообщения:  Re: Чтение DMF-файлов

Sergey Oleynik писал(а):
Кто может дать или подсказать где взять описание формата файла DMF?

Последнее описание можно взять здесь:
http://www.vingeo.com/update/rus/DMF.doc

Имейте в виду, что это описание применимо только для версии формата без сжатия (в сигнатуре файла нет символа "C").
Отключить сжатие можно в настройках Ged Сервис|Настройки|Запись.

Исходный Delphi-текст процедуры загрузки DMF файлов http://www.geosystema.net/samples/LoadDMF.pas

Чи не могли б ви детальніше роз'яснити суть параметра MinService, який є в заголовках списку шарів і списку параметрів. В описі читаю:
Цитата:
MinService - Integer - Номер первого служебного элемента в списке слоев имеющий отрицательное значение (-10), служебные слои нумеруются от MinService до 0.

А нижче:
Цитата:
Непосредственно за заголовком следуют элементы списка слоев в количестве Count-MinService.

В мене у всіх дмф файлах MinService = 1. Але кількість шарів в списку завжди більша за (Count-1) і дорівнює Count + 4 службові шари (з індексами -3, -2, -1, 0).

Я написав на основі вашого прикладу свою процедуру завантаження файлів DMF і встановив MinService = -3 - для списку шарів і MinService = -10 - для списку параметрів. Таким чином зчитую коректно, але це видається мені костилем і хотілося б знати що і на основі чого повертає функція з вашого прикладу GetMinLayer, яка встановлює значення MinService.

Автор:  Dmitriy Fedorov [ 30 янв 2014 18:51 ]
Заголовок сообщения:  Re: FAQ для опытных пользователей (секреты)

Bohdan29 писал(а):
написав на основі вашого прикладу свою процедуру завантаження файлів DMF і встановив MinService = -3 - для списку шарів і MinService = -10 - для списку параметрів.

Если вы запускали Digitals и заглядывали в Менеджер параметров или слоев, то именно столько служебных слоев/параметров там и содержится и их число не менялось уже долгое время, так что можете вполне положиться на эти значения. Хотя все равно странно, что в ваших файлах MinService=1, мне такие не попадались.

Автор:  klaid [ 30 янв 2014 21:35 ]
Заголовок сообщения:  Re: FAQ для опытных пользователей (секреты)

Доброго..,!!
Як додати в XMLNormal.dmf в "Код адміністративно -територіальних утворень" випадаючий список щоб вибравши відповідний КОАТУУ адреса (Такато сільська рада) автоматично вписувалась в графу адреса. І при виборі комунальної форми власності автоматично прописувався власник і ЕРДПОУ (сільська рада і її код, адреса та ін...) і Інфо про власника

Дякую

П.С. Основне питання - це як додати випадаючий список (так як в категорії земель, або в цільовому) в будь якому полі вводу

Автор:  Bohdan29 [ 31 янв 2014 01:16 ]
Заголовок сообщения:  Re: FAQ для опытных пользователей (секреты)

Dmitriy Fedorov писал(а):
Если вы запускали Digitals и заглядывали в Менеджер параметров или слоев, то именно столько служебных слоев/параметров там и содержится и их число не менялось уже долгое время, так что можете вполне положиться на эти значения. Хотя все равно странно, что в ваших файлах MinService=1, мне такие не попадались.
Дякую. В мене до вас ще одне запитання. Заголовок списку шарів успішно зчитується у таку структуру (взято з прикладу - і структуру, і спосіб зчитування):
Код:
  TDMFLayerHeader=packed record
    Size:integer;
    Status:integer;
    Count:integer;
    MinService:integer;
    Reserve:Byte;
    Empty:integer;
  end;
Поле Count показує актуальну кількість шарів (не службових), а MinService - чомусь завжди 1. До того ж список полів цієї структури відрізняється від списку в описі файла (не та послідовність і кількість). Те саме зчитується за допомогою цього коду: viewtopic.php?p=13296#13296
Я до чого це все веду: між тим прикладом завантаження DMF-файлу і описом його структури є розбіжності. Чи можливо таке, що опис неточний чи неповний? І якщо так, то чи можна розраховувати на оновлений опис формату DMF-файла? Наперед вдячний за відповідь.

Автор:  Dmitriy Fedorov [ 31 янв 2014 12:59 ]
Заголовок сообщения:  Re: FAQ для опытных пользователей (секреты)

Bohdan29 писал(а):
Заголовок списку шарів успішно зчитується у таку структуру... Поле Count показує актуальну кількість шарів (не службових)... список полів цієї структури відрізняється від списку в описі файла...

То, что успешно считывается - не удивительно. И в коде и в описании размер структуры 5*Integer + 1*Byte. И что Count верный, тоже понятно - в обоих случаях он является третьим Integer.
Оба примера далеки от состояния "бери и пользуйся", к тому же второй базируется на первом (отталкивается от тех же структур). Советую сделать как в описании и проанализировать прочитанное.
Bohdan29 писал(а):
Чи можливо таке, що опис неточний чи неповний?

Думаю, что точный в достаточной степени. Но однозначно не полный, например, нет никаких сведений об описании таких объектов как таблицы. Тем не менее, эти сведения есть в примерах кода. А на обновленное описание я бы сильно не рассчитывал.

Автор:  Bohdan29 [ 01 фев 2014 14:01 ]
Заголовок сообщения:  Re: FAQ для опытных пользователей (секреты)

Dmitriy Fedorov писал(а):
То, что успешно считывается - не удивительно. И в коде и в описании размер структуры 5*Integer + 1*Byte. И что Count верный, тоже понятно - в обоих случаях он является третьим Integer.
Пробачте, але де тут розмір структури одинаковий? Ось що в описі (скрін з файла DMF.doc):
Изображение

Тут 4*Integer + 1*Byte - розмір структури 17 байт, відсутнє поле Empty, а поле Count - друге в списку. На практиці ж розмір структури 21 байт. Тому я й написав про неточний опис.
Щодо неповноти опису таблиць і іншого, то я з вами згідний - на прикладі можна розібратись. Я на прикладі майже розібрався і з тим заголовком списку шарів, але тут мова вже не про неповноту опису, а про його помилку. І, можливо, саме через цю помилку я не можу зчитати правильного значення поля MinService - про що, власне, і було моє перше питання.

Автор:  Dmitriy Fedorov [ 01 фев 2014 16:27 ]
Заголовок сообщения:  Re: FAQ для опытных пользователей (секреты)

Bohdan29 писал(а):
Пробачте, але де тут розмір структури одинаковий? Ось що в описі (скрін з файла DMF.doc):

Похоже, описание все-таки отличается. Скачайте дистрибутив, в папке Doc найдете другой вариант.

Страница 7 из 9 Часовой пояс: UTC + 2 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/