На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Dmitry_ (Все сообщения пользователя)

Поиск  Пользователи  Правила  Войти
Форум » Пользователи » Dmitry_
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 29 След.
Как понять какой функцией конвертировать растр tif
 
Добрый день!

Функция picexLoadGdalFileToRswUn - это упрощенный вариант работы диалога "Импорт растров из форматов IMG, Tiff (GeoTiff)..." ("Импорт растров и матриц" -> "Растры GDAL").
Возможности программно при помощи параметров API-функции установить флаг "Гистограмма->По соответствующему каналу" нет.
Вызов API-функцией диалога "Импорт растров из форматов IMG, Tiff (GeoTiff)..." поможет в решении задачи?
Как понять какой функцией конвертировать растр tif
 
Здравствуйте!

Вы не написали, чем отличаются исходные файлы TIFF старой и новой партий.

Причин м.б. множество.
Например, поступили многоканальные снимки, в которых количество каналов больше 3-х.
Классический растр RSW поддерживает отображение 3-х каналов - R(красный), G(зеленый), B(синий).
Если в многоканальном файле TIFF не указано как интерпретировать каналы, какой из каналов соответствует красному, зеленому или синему,
то программа по своему усмотрению использует каналы файла TIFF.

Предлагаю для таких растров TIFF использовать функцию picexGetAccessToGraphicFileUn.
Отличие её от указанных Вами в том, что после импорта растров есть возможность поменять номера отображаемых каналов.
В данном случае на диске создается файл  RSW, который содержит ссылку на открываемый файл Tiff(GeoTiff).
Копирование изображения TIFF в файл  RSW не выполняется.

Такие растры прямого доступа к TIFF можно определить после открытия функцией mapRstIsAccessTiff:[CODE] // Запросить тип растра
 // hMap   - идентификатор открытой векторной карты
 // number - номер файла в цепочке
 // Возвращает: 0 - обычный растр
 //             1 - растр-пустышка с прямым доступом к файлу TIFF

_MAPIMP long int _MAPAPI mapRstIsAccessTiff(HMAP hMap, long int number);
[/CODE]
Изменение номеров отображаемых каналов осуществляется следующими функциями:[CODE] // Запросить количество каналов TIFF-растра с номером number
 // hMap   - идентификатор открытой векторной карты
 // number - номер файла в цепочке

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

 // Запросить номер канала TIFF-растра с номером  number, отображаемого красным
 // hMap   - идентификатор открытой векторной карты
 // number - номер файла в цепочке

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

 // Запросить номер канала TIFF-растра с номером  number, отображаемого зеленым
 // hMap   - идентификатор открытой векторной карты
 // number - номер файла в цепочке

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

 // Запросить номер канала TIFF-растра с номером  number, отображаемого синим
 // hMap   - идентификатор открытой векторной карты
 // number - номер файла в цепочке

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

 // Установить номер канала TIFF-растра с номером  number, отображаемого красным
 // (если установить -1, то такой канал не используется)
 // hMap   - идентификатор открытой векторной карты
 // number - номер файла в цепочке

_MAPIMP long int _MAPAPI mapSetRstRedBand_Tiff(HMAP hMap, long int number, int redband);

 // Установить номер канала TIFF-растра с номером  number, отображаемого зеленым
 // (если установить -1, то такой канал не используется)
 // hMap   - идентификатор открытой векторной карты
 // number - номер файла в цепочке

_MAPIMP long int _MAPAPI mapSetRstGreenBand_Tiff(HMAP hMap, long int number, int greenband);

 // Установить номер канала TIFF-растра с номером  number, отображаемого синим
 // (если установить -1, то такой канал не используется)
 // hMap   - идентификатор открытой векторной карты
 // number - номер файла в цепочке

_MAPIMP long int _MAPAPI mapSetRstBlueBand_Tiff(HMAP hMap, long int number, int blueband);
[/CODE]
Поворот и сдвиг растров.
 
[QUOTE]Добрый день!
Можно подробнее описать как  одновременно сдвинуть несколько растров, к примеру, подвинуть один растр от одной точки до другой и при этом сдвинуть все растры на карте.  На яндекс картах имеется сдвиг относительно реального положения карты. Тем более когда работаешь в УСК. Хотелось б сдвинув один растр подвинуть и остальные на определенное расстояние.[/QUOTE]
Добрый день!

Для одновременного сдвига нескольких растров предлагаю воспользоваться режимом "Изменение привязки растров".

Способ запуска режима "Изменение привязки растров":
[LIST=1]
[*]В диалоге "Список растров" (Вид\Список растров) необходимо установить указатель на строку Растры.
[*]Нажать на кнопку "Свойства" и в контекстном меню выбрать пункт "Изменение привязки на dX, dY".
[/LIST][IMG WIDTH=825 HEIGHT=545]https://b.radikal.ru/b06/2101/07/c68676db6b17.png[/IMG]

Режим предназначен для изменения привязки растров, открытых в документе, на величину dX, dY.
Растры без привязки в обработке не участвуют.
В диалоге для наглядности отображены координаты привязки первого в цепочке растра.

[IMG WIDTH=830 HEIGHT=545]https://b.radikal.ru/b13/2101/28/dac181437129.png[/IMG]
Конвертация растров в RSW
 
[QUOTE]Добрый день!
Возможно ли сделать процедуру конвертации нескольких растров в RSW многопоточной (хотя бы geotiff)? По растру на ядро?[/QUOTE]
Добрый день!

Мы планомерно переводим затяжные процессы на многопоточную реализацию.

В настоящий момент, для ускорения конвертирования растров из формата GeoTIFF предлагаю следующий вариант:
в диалоге импорта растровых данных установите галочку «Не копировать исходное изображение в RSW файл».
В данном случае на диске создается файл  RSW, который содержит ссылку на открываемый файл GeoTiff и
сформированное обзорное изображение. Загрузка основного изображения в файл  RSW не выполняется.

[IMG WIDTH=860 HEIGHT=743]https://c.radikal.ru/c25/2012/19/7389141cdd98.png[/IMG]
GIS Designer v.13.1.1.41 Free. Видимость растра, Есть ли возможность с помощью API GisDesigner-а включать/отключать видимость добавленных растров?
 
[QUOTE]Здравствуйте!
Вопрос по следующей функции:[TABLE][TR][TH]Код[/TH][/TR][TR][TD]_MAPIMP long int _MAPAPI mapSetRstTransparent(HMAP hMap, long int number, long int transparent); [/TD][/TR][/TABLE]При задании параметра transparent от 1 до 100 функция отрабатывает и меняет степень видимости растра на карте.
При задании transparent = 0 видимость не меняется (растр не скрывается), так должно быть?
Спасибо!
[/QUOTE]
При помощи слайдов проиллюстрирую работу функции mapSetRstTransparent в диалоге "Управление палитрой" ГИС Панорама.
На скриншоте 3 при значении прозрачности 5-10 (цена деления 5 единиц) изображение растра уже неразличимо.
На скриншоте 4 при сдвиге ползунка в крайнее левое положение изображение растра полностью отсутствует.

[IMG WIDTH=960 HEIGHT=575]https://c.radikal.ru/c40/2012/d6/462d5e86a737.png[/IMG]

[IMG WIDTH=960 HEIGHT=581]https://a.radikal.ru/a17/2012/2f/e28aac8eec21.png[/IMG]

[IMG WIDTH=960 HEIGHT=579]https://d.radikal.ru/d23/2012/8d/c5976c0e3596.png[/IMG]

[IMG WIDTH=960 HEIGHT=583]https://d.radikal.ru/d15/2012/78/bda510ef028e.png[/IMG]
GIS Designer v.13.1.1.41 Free. Видимость растра, Есть ли возможность с помощью API GisDesigner-а включать/отключать видимость добавленных растров?
 
[QUOTE]И еще пока не совсем понял, [B]степень видимости[/B] и [B]прозрачность[/B] это один и тот же параметр отображения растров и матриц?[/QUOTE]
Добрый день!

За эффекты "степень видимости" и "прозрачность" растра отвечает один параметр в ядре.  [CODE] // Установить степень видимости растра
 // hMap   - идентификатор открытых данных
 // number - номер файла в цепочке
 // view = 0 - не виден
 // view = 1 - полная видимость
 // view = 2 - насыщенная
 // view = 3 - полупрозрачная
 // view = 4 - средняя
 // view = 5 - прозрачная
 // При ошибке возвращает ноль
_MAPIMP  long int _MAPAPI mapSetRstView(HMAP hMap,long int number,
                                       long int view);

_MAPIMP long int _MAPAPI mapSetRstTransparent(HMAP hMap, long int number,
                                             long int transparent);
[/CODE]Значения флага view соответствуют следующим значениям флага transparent:[CODE] // view transparent описание
 // 1 100 полная видимость
 // 2 80 насыщенная
 // 3 62 полупрозрачная
 // 4 37 средняя
 // 5 20 прозрачная
[/CODE]Для отключения отображения растра применяйте функцию mapSetRstView с нулем.
Ошибка компиляции при сборке примеров из SDK12
 
Здравствуйте, Анатолий!
По ссылке находится архив с недостающими файлами для сборки примера из SDK:
[URL=http://public.gisinfo.ru/shabakov/sdk12_add.zip]http://public.gisinfo.ru/shabakov/sdk12_add.zip[/URL]
picexLoadGdalFileToRsw
 
[QUOTE][URL=http://www.gisweb.ru/forum/user/15768/]Дмитрий Т[/URL] написал:
Здравствуйте!
Вопрос по функции picexLoadGdalFileToRsw. Я пытаюсь с помощью нее получить файл растра rsw из файла изображения png.
Предаю в нее:
double meterInPixelX  = 10000;
double meterInPixelY  = 10000;
DOUBLEPOINT SWpoint;
SWpoint.X = 5.1521e+06;
SWpoint.Y = 6.81197e+06;

picexLoadGdalFileToRswUn(0, 0,imgName,rstName,&meterInPixelX, &meterInPixelY,&SWpoint,0,0,0);
Функция возвращает не 0.

Файл растра формируется, но параметры привязки (meterInPixelX, meterInPixelY,SWpoint) игнорируются. Т.е. вне зависимости от того, что будет в параметрах meterInPixelX, meterInPixelY, SWpoint, растр всегда одинаковый. Так должно быть?  
[/QUOTE]

Здравствуйте!

Для передачи привязки и размеров элемента в выходной файл RSW вместо picexLoadGdalFileToRswUn предлагаю воспользоваться функцией picexLoadGdalFileToRswExUn.[CODE]_PICIMP long int _PICAPI picexLoadGdalFileToRswExUn(HMESSAGE handle, TASKPARM* parm,
                                                   const WCHAR  * inputname,
                                                   const WCHAR  * rstname,
                                                   double* meterInPixelX,
                                                   double* meterInPixelY,
                                                   DOUBLEPOINT *point,
                                                   long int compression,
                                                   long int flagMessage,
                                                   long int flagWorkLog,
                                                   long int flagIgnoreGeoTiff);
[/CODE]Доступ к исходному графическому файлу в Функциях picexLoadGdalFileToRswUn и picexLoadGdalFileToRswExUn осуществляется при помощи методов библиотеки GDAL.
Внутри графических файлов, или в текстовых файлах настройки, находящихся рядом, могут содержаться привязка, размеры элемента и параметры системы координат.
В функции picexLoadGdalFileToRswExUn добавлен дополнительный параметр flagIgnoreGeoTiff.
Параметр flagIgnoreGeoTiff предназначен для игнорирования параметров привязки, размеров элемента и системы координат, определенных библиотекой GDAL.
При вызове функции picexLoadGdalFileToRswExUn в качестве параметра flagIgnoreGeoTiff передайте 1.
В этом случае параметры привязки будут браться из входных параметров функции:
                                                   double* meterInPixelX,
                                                   double* meterInPixelY,
                                                   DOUBLEPOINT *point.




Возможен другой вариант передачи параметров привязки в выходной растр RSW.
После импорта графического файла и получения растра RSW воспользуйтесь функциями:[CODE] // Установить привязку растра в районе работ(в метрах)
 // hMap       - идентификатор открытых данных
 // number     - номер файла в цепочке
 // location   - координаты юго-западного угла растра(в метрах)
 // При ошибке возвращает 0

_MAPIMP long int _MAPAPI mapSetRstLocation(HMAP hMap, long int number, DOUBLEPOINT *location);

 // Установка параметров растра
 // hMap            - идентификатор открытых данных
 // scale           - знаменатель масштаба
 // precision       - разрешение (точек на метр)
 // meterinelementX - количества метров на элемент  ПО ОСИ X
 // meterinelementY - количества метров на элемент  ПО ОСИ Y
 // meterinelementX и meterinelementY могут отличаться
 // Важно!!!
 // Для правильного отображения растров в 10-ой и более ранних версиях необходимо:
 //                         meterinelementX = scale / precision;
 // Если условие не выполняется, то meterinelementX и meterinelementY игнорируются и рассчитываются по формуле.

_MAPIMP long int _MAPAPI mapSetRstParameters(HMAP hMap, long int number,
                                            double scale, double precision,
                                            double meterinelementX,
                                            double meterinelementY);
[/CODE]
Сохранение векторной карты в изображение c помощью LoadMapToPicture (C#)
 
Алексей, уточните, для какой платформы разрабатываете приложение - для x32, или x64?

В объявлении LoadMapToPicture у Вас неточность при описании параметров функции:
[QUOTE]Метод LoadMapToPicture импортируется из библиотеки gispicex.dll
       [DllImport(GisLibrary3, CharSet = CharSet.Ansi)]
       public static extern int LoadMapToPicture(int map, int handle, ref DFrame dframe, int bitcount, int scale, int resolution, IntPtr filename, int handleMainWin);[/QUOTE]

Обратите внимание на объявление функции LoadMapToPicture в файле MAPPICEX.H из состава  GIS ToolKit Active 12-ой версии:
[CODE]_PICIMP long int _PICAPI LoadMapToPicture(HMAP map,HMESSAGE handle,
                                DFRAME * dframe, long bitcount,
                                long scale, long resolution,
                                const char* filename,
                                HMESSAGE handleMainWin);
[/CODE]
Параметр функции map имеет тип HMAP (maptype.h):[CODE]#if defined(_M_X64) || defined(BUILD_DLL64)

typedef __int64   HMAP;    // ИДЕНТИФИКАТОР ОТКРЫТОЙ ВЕКТОРНОЙ КАРТЫ
                          // (УКАЗАТЕЛЬ НА TMapAccess)

#else

typedef long int  HMAP;    // ИДЕНТИФИКАТОР ОТКРЫТОЙ ВЕКТОРНОЙ КАРТЫ
                          // (УКАЗАТЕЛЬ НА TMapAccess)
#endif
[/CODE]Параметры функции handle и handleMainWin имеют тип HMESSAGE (mapsyst.h):[CODE] #define HMESSAGE HWND
[/CODE]Для платформы x64 переменные типа HMAP и HWND не поместятся в int.
Не вызывается диалог выбора семантики из списка, внутри rscShowStatisticObject
 
Здравствуйте, Евгений!

[QUOTE]Здравствуйте!

Использую GisToolKitFree64. Разработка на Windows 10 x64.

Проблема: при вызове диалога с информацией об объекте, с помощью функции rscShowStatisticObject из gisu64rsctools.dll, при правке полей семантики все работает нормально, если это текстовое поле вызывается форма редактирование текста, числовое редактируется прям в ячейке, а вот при попытке править поле выбора значения из списка, вываливается ошибка: "Ошибка при вызове диалога - ???"(см рисунок). В чем может быть проблема?[/QUOTE]
Проверка работы диалога "Выбор значения семантики из списка" выполнялась на тестовом примере Findobj из состава GIS ToolKit версия 12 (\GisTool12_7_2\Example\Builder\Findobj\) под управлением ОС Windows 10.
Приложение Findobj собрано в Embarcadero XE5 для платформы x64.
Применялись библиотеки GIS ToolKit версия 12 для платформы "x64" от 30.07.2019.

Диалог "Выбор значения семантики из списка" вызывается корректно.
Результат вызова диалога "Выбор значения семантики из списка" на скриншоте:
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 29 След.



© КБ Панорама, 1991-2021

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности