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

Дмитрий Шабаков (Все сообщения пользователя)

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

Страницы: Пред. 1 ... 7 8 9 10 11 12 13 14 15 16 17 ... 34 След.
Импортирование растра из Ozi Explorer, Импортирование растра по двум точкам из Ozi Explorer
 
[QUOTE]В своей программе я использую отображение рамки растра, использую функцию mapGetTotalBorder. Рамка растра получилась намного больше, чем сам растр (рисунок прилагаю). Как посмотреть рамку в ГИС Карте? Я знаю, что ее можно изменить, а как посмотреть?
[/QUOTE]

Из файла справки:
[QUOTE]Рамка растра - контур произвольной формы, ограничивающий изображение растровой карты.
Изображение растра, не вошедшее в область, образованную рамкой, не отображается.
[/QUOTE]
Чтобы посмотреть рамку, установленную в растр, необходимо:
В диалоге [B]Список растров[/B] (Вид\Список растров ) выбрать растр.
Затем нажать на кнопку [B]Свойства[/B] и в контекстном меню выбрать пункт [B]Показать рамку.[/B]
Импортирование растра из Ozi Explorer, Импортирование растра по двум точкам из Ozi Explorer
 
[QUOTE]И еще вопрос: можно ли сделать импортирование из урезанного файла, который бы содержал ТОЛЬКО точки и проекцию.
Ведь все остальные данные, которые есть в map-файле для нас, в данном случае, лишние.
Например:

Map Projection,Mercator
MMPXY,1,0,0
MMPXY,2,1102,677
MMPLL,1, 30.364867, 59.988392
MMPLL,2, 30.374302, 59.985465 ание из файла следующего вида:

Смысл в том, чтобы пользователю было максимально просто ввести эти данные вручную.
[/QUOTE]
Реализовать можно всё.
Но... программа должна понимать, какой файл и какой версии пользователь пытается открыть.
Для этого в текстовый файл и прописывается "шапка" с разнообразной информацией.
Например, помимо версии структуры в файл привязки записывается название соответствующего графического файла (третья строка).
Обрабатываемый файл должен соответствовать установленной структуре. В противном случае начнутся разночтения...

Данное предложение реализовано не будет.
Импортирование растра из Ozi Explorer, Импортирование растра по двум точкам из Ozi Explorer
 
Выслал письмо на личную почту.
Привязка растра по одной точке, загрузка изображения в формат RSW, GISToolKit Active C#
 
Здравствуйте!

Объявление функции rswgSetCurrentRasterDialog в файле rswgtapi.h:
[CODE] //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//  Сервисные диалоги редактора растра
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++­++++++++++++++

#ifndef GISLIB
//==========================================================­==============
//  Диалог "Текущий растр" редактора растра
// hMap            - идентификатор документа
// parm            - указатель на структуру типа TASKPARMEX (см. maptype.h)
// rswFileName     - имя файла текущего растра (заполняется функцией)
// sizeRswFileName - размер буфера rswFileName в байтах
// point           - координаты левой верхней точки формы (пиксели экрана)
//
//    При ошибке возвращает ноль
//==========================================================­==============
_RSWGIMP long int _RSWGAPI rswgSetCurrentRasterDialog(HMAP hMap, TASKPARMEX* parm,
                                              WCHAR* rswFileName,
                                              int sizeRswFileName,
                                              POINT* point);
[/CODE]
Перед функцией rswgSetCurrentRasterDialog  стоит директива условной компиляции #ifndef GISLIB.
GISLIB объявляется при сборке библиотек для Gis ToolKit.
Таким образом, функция rswgSetCurrentRasterDialog намеренно исключена из сборки для Gis ToolKit.
привязка растра по двум точкам, как автоматически привязать растр по двум точкам
 
Без пересчета геодезических координат можно попробовать файл привязки TAB (MapInfo), или MAP (OziExplorer).
Формат TAB может быть интересен тем, что в  MapInfo в файле MapInfo.prj хорошо документированы применяемые системы координат.
Для OziExplorer я такой информации не встречал.
Импортирование растра из Ozi Explorer, Импортирование растра по двум точкам из Ozi Explorer
 
Здравствуйте, Андрей!

В функцию анализа файла привязки OZI добавил СК "Долгота / Широта (Mercator WGS84)", EPSG 3857.
Ссылку на архив с обновленной библиотекой выслал на почту. Библиотеку скопируйте в папку с установленной программой.
Если все сработает, добавлю изменения в ГИС.
Привязка растра по одной точке, загрузка изображения в формат RSW, GISToolKit Active C#
 
Здравствуйте!
[QUOTE]Хотела бы уточнить в функциях MAPAPI нашла функции по привязке растра по двум точкам, есть ли функция привязки по одной точке?[/QUOTE]
RSTAPI.H:[CODE] // Установить привязку растра в районе работ(в метрах)
 // hMap       - идентификатор открытой векторной карты
 // number     - номер файла в цепочке
 // location   - координаты юго-западного угла растра(в метрах)
 // При ошибке возвращает 0

_MAPIMP long int _MAPAPI mapSetRstLocation(HMAP hMap, long int number, DOUBLEPOINT *location);
[/CODE]
[QUOTE]И еще для того чтобы вызвать диалог загрузки изображения в формат RSW использую функцию LoadImageToRstEx, но она позволяет загружать только BMP,PCX,TIFF, GeoTIFF. Не нашла функцию которая бы загружала все графические форматы к примеру еще JPEG, PNG ? Видела отдельные функции для JPEG.[/QUOTE]
RSWGTAPI.H, gisrswg.dll:[CODE] //========================================================================
// Диалог загрузки графического изображения в растровую карту(RSW)
// Обрабатываются файлы следующих форматов: BMP, JPEG, PCX, TIFF, GeoTIFF, PNG, GIF
//    В качестве файлов привязки растрового изображения могут применяться следующие данные:
//    - Файл настроек (*.ini),
//    - Файл настроек Фотоплан (*.tpf),
//    - Файл настроек Талка (*.pln),
//    - Файл настроек MapInfo (*.tab),
//    - Файл настроек (world file)(*.tfw;*.jgw;*.bpw;*.pcw;*.j2w;*.sdw;*.nfw;*.wld)
//    - Файл OziExplorer (*.map)
//
//    hmap - карта,содержащая векторные(растровые, матричные) данные;
//    lpszsource - указатель на имя исходного файла
//    sizesource - размер памяти, выделенной по указателю lpszsource (не менее 260 байт)
//    lpsztarget - указатель на имя выходного файла
//    sizetarget - размер памяти, выделенной по указателю lpsztarget (не менее 260 байт)
//    fileLocType- тип применяемого файла привязки растрового изображения
//                 fileLocType может принимать следующие значения:
//                 120 - (*.ini), 121 - Фотоплан (*.tpf), 122 - Талка (*.pln),
//                 123 - world file(*.tfw;*.jgw;*.bpw;*.pcw;*.j2w;*.sdw;*.nfw;*.wld),
//                 124 - MapInfo (*.tab), 125 - OziExplorer (*.map).
//    parm       - параметры прикладной задачи. Структура TASKPARM описана в MAPTYPE.H
//
//    При ошибке возвращает ноль
//==========================================================­==============
_RSWGIMP long int _RSWGAPI DialogLoadImageToRsw(HMAP hmap,
                                            char* lpszsource, long int sizesource,
                                            char* lpsztarget, long int sizetarget,
                                            long int fileLocType, TASKPARM *parm);

_RSWGIMP long int _RSWGAPI DialogLoadImageToRswUn(HMAP hmap,
                                            WCHAR* lpszsource, long int sizesource,
                                            WCHAR* lpsztarget, long int sizetarget,
                                            long int fileLocType, TASKPARM *parm);

[/CODE]
привязка растра по двум точкам, как автоматически привязать растр по двум точкам
 
[URL=http://gis-lab.info/qa/tfw.html]Формат файла географической регистрации (world-файл)[/URL]
Delphi XE5 . Установить прозрачность растра.
 
[CODE]
 // Установить прозрачный цвет растра (для 16-,24-,32-битных растров)
 //  hMap   - идентификатор открытой векторной карты
 //  number - номер файла в цепочке
 //  color  - значение прозрачного цвета в формате RGB (от 0 до 0x00FFFFFF)
 // При установке IMGC_TRANSPARENT (0xFFFFFFFF) прозрачный цвет не используется
 // При ошибке возвращает IMGC_TRANSPARENT

_MAPIMP COLORREF _MAPAPI mapSetRstTransparentColor(HMAP hMap, long int number, COLORREF color);
[/CODE]

Функция mapSetRstTransparentColor применяется только для 16-,24-,32-битных растров.
Для 16- и 256-цветных растров (4 и 8 бит соответственно) используются функции:
[CODE]// Установить видимость цвета (для 16- и 256-цветных растров)
 //  hMap   - идентификатор открытой векторной карты
 //  number - номер файла в цепочке
 //  index  - индекс цвета в палитре растра(начиная с 0)
 //  value: 1 - включить отображение цвета с данным индексом
 //         0 - отключить отображение цвета с данным индексом
 //  Сохранение видимости цветов в INI-файле (не заносится в заголовк файла растра)
 //  При ошибке возвращает 0

_MAPIMP long int _MAPAPI mapSetVisibilityColor(HMAP hMap, long int number,
long int index, long int value);

 // Установить видимость цвета (для 16- и 256-цветных растров)
 //  hMap   - идентификатор открытой векторной карты
 //  number - номер файла в цепочке
 //  index  - индекс цвета в палитре растра(начиная с 0)
 //  value: 1 - включить отображение цвета с данным индексом
 //         0 - отключить отображение цвета с данным индексом
 //  Сохранение видимости цветов в заголовке файла растра(а также в INI-файле)
 //  При ошибке возвращает 0

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

_MAPIMP long int _MAPAPI mapGetRstElementSize(HMAP hMap, long int number);
[/CODE]
Ваш растр создан с какой характеристикой? 4, 8, 16, или 24 бит на пиксель?
delphi xe5. Не работает преобразование растра.
 
В функции LoadBmpToRstByPlace в качестве разрешения растра устанавливается значение по умолчанию - 20000 т./м, что соответствует 508 т./д.
Очевидно, что это значение не соответствует загружаемому изображению.
Размер элемента (пикселя) растра рассчитывается по формуле:  MeterInElement = Scale / Precision ;
MeterInElement - размер элемента (пикселя) растра в метрах,
Scale          - масштаб,
Precision      -  разрешения растра ( т./м).

Для импорта растра предлагаю использовать функцию picexLoadBmpToRstAndCompress:
[CODE]
//==========================================================­==============
// Загрузка растровых данных из файла BMP в файл RSW
//    BmpName - имя BMP-файла;
//    RstName - имя RSW-файла;
//    meterInElementX - размер в метрах элемента по X
//    meterInElementY - размер в метрах элемента по Y
//    point     - точка привязки растра (в метрах)
//                (положение юго-западного угла растра в районе)
//    Handle - HWND диалога визуального сопровождения процесса обработки.
//    compression - флаг сжатия изображения
//              0 - сжатие к блокам изображения применяться не будет
//              1 - блоки д.б. сжаты по методу LZW
//              2 - блоки д.б. сжаты по методу JPEG (справедливо для 24 битных растров)
//    При ошибке возвращает ноль
//
//    Диалогу визуального сопровождения процесса обработки посылаются
//    сообщения:
//    -  (WM_PROGRESSBAR) Извещение об изменении состояния процесса
//       WPARAM - текущее состояние процесса в процентах (0% - 100%)
//       Если функция-отклик возвращает WM_PROGRESSBAR, то процесс завершается.
//
//    -  (WM_ERROR) Извещение об ошибке
//       LPARAM - указатель на структуру ERRORINFORMATION
//       Структура ERRORINFORMATION описана в picexprm.h,
//       WM_PROGRESSBAR и WM_ERROR - в maptype.h
//==========================================================­==============
_PICIMP long int _PICAPI picexLoadBmpToRstAndCompress(HMESSAGE Handle,
const char * BmpName,
const char * RstName,
double* meterInElementX,
double* meterInElementY,
DOUBLEPOINT *point,
int compression);

_PICIMP long int _PICAPI picexLoadBmpToRstAndCompressUn(HMESSAGE Handle,
const WCHAR *BmpName,
const WCHAR *RstName,
double* meterInElementX,
double* meterInElementY,
DOUBLEPOINT *point,
int compression);
[/CODE]

Точка привязки растра point:
DOUBLEPOINT point;
point.x =  x_min;
point.y =  y_min;

// height - высота изображения в элементах (пикселях)
// width  - ширина изображения в элементах (пикселях)

// размер элемента (пикселя) растра в метрах  по X и Y
double meterInElementX = (x_max - x_min)/height;
double meterInElementY, = (y_max - y_min)/width;

// вызов функции
picexLoadBmpToRstAndCompress(0, BmpName, RstName, &meterInElementX, &meterInElementY, &point, 0);
Страницы: Пред. 1 ... 7 8 9 10 11 12 13 14 15 16 17 ... 34 След.



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

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