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

Александр Савелов (Все сообщения пользователя)

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

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 53 След.
Работа с картами в формате S57 в ГИС Конструкторе (Astra Linux Смоленск)
 
Здравствуйте!

Уточните, пожалуйста, Вы использует стандартную или Free-версию?
Пошаговое создание карты MAP из SXF и RSC, Пошаговое создание карты из исходников
 
Здравствуйте!

Различные функции одного семейства (например, ImportFromAnySxf) отличаются составом параметров.
Перед объявлением набора функций приведено описаний всех возможных параметров. Например (vecexapi.h):
[CODE] // Загрузить (импортировать) карту из файла SXF, TXF или DIR с
// использованием Select с преобразованием топокарты к зоне документа
// Файлы SXF и TXF могут хранить координаты в метрах, радианах или градусах
// hmap    - идентификатор открытой карты (рекомендуется указывать
//           для определения текущей зоны топокарты) или 0;
// sxfname - имя загружаемого файла типа SXF, TXF или DIR;
// rscname - имя файла классификатора, с которым загружается карта,
//           имя классификатора можно запросить из SXF (TXF) функцией GetRscNameFromSxf
//           или из карты; для файла DIR может быть 0;
// mapname - имя создаваемой карты (обычно совпадает с именем SXF (TXF))
//           или ноль или указатель на пустую строку (буфер размером MAX_PATH
//           c нулевым байтом равным нулю) или указатель на папку для размещения
//           карты. Если имя карты не задано или задана только папка, то карта
//           создается с именем SXF (TXF) и расширением ".sit". Если namemap
//           указывает на буфер достаточной длины (size), то в буфер записывается
//           имя созданной карты;
//           Для файла DIR тип общей карты - MPT (проект данных, включающий все
//           открытые карты из DIR) или MAP (многолистовая карта);
// size    - длина буфера, на который указывает переменная namemap, или 0. Обычно длина
//           равна MAX_PATH_LONG (1024);
// handle  - идентификатор окна диалога, которому посылаются уведомительные
//           сообщения (HWND для Windows, CALLBACK-Функция для Linux);
// select  - фильтр загружаемых объектов и слоев, если необходима выборочная
//           обработка данных;
// frscfromsxf - значение флажка "разрешить использование
//               имени классификатора, указанного в файле sxf"
// typesit - тип создаваемых карт в проекте MPT при импорте DIR (1- SIT; -1- SITX)
// password - пароль для создания защищенного хранилища карты (SITX)
// psize    - длина пароля в байтах
// transform - признак необходимости трансформировать загружаемую карту в систему координат hmap
//             (если hmap и transform не равно 0)
// hevent    - адрес функции обратного вызова для записи в протокол ошибок выполнения программы
// eventparam - первый параметр функции обратного вызова
// Для добавления открытой карты в документ необходимо вызвать функцию
// mapAppendData(hmap, namemap). Если mapname содержит имя карты типа MAP и
// она содержит хотя бы один лист, то при импорте данных выполняется создание
// нового листа в карте MAP. В этом случае функция mapAppendData не должна вызываться.
// При ошибке возвращает ноль


_VECIMP long int _VECAPI ImportFromAnySxfProEx(HMAP hmap, const WCHAR * namesxf,
                                           const WCHAR * namersc,  WCHAR * namemap, long int size,
                                           HMESSAGE handle, HSELECT select, long int frscfromsxf,
                                           long int typesit, const WCHAR * password, long int psize,
                                           long int transform, EVENTLOG hevent, void * eventparam);


_VECIMP long int _VECAPI ImportFromAnySxfProM(HMAP hmap, const WCHAR * namesxf,
                                           const WCHAR * namersc,  WCHAR * namemap, long int size,
                                           HMESSAGE handle, HSELECT select, long int frscfromsxf,
                                           long int typesit, const WCHAR * password, long int psize,
                                           long int transform);


_VECIMP long int _VECAPI ImportFromAnySxfPro(HMAP hmap, const WCHAR * namesxf,
                                           const WCHAR * namersc, WCHAR * namemap,
                                           long int size, HMESSAGE handle,
                                           HSELECT select, long int frscfromsxf,
                                           long int typesit,
                                           const WCHAR * password, long int psize);[/CODE]Так в функции ImportFromAnySxfProEx добавлены параметры hevent и eventparam:
[CODE] // hevent - адрес функции обратного вызова для записи в протокол ошибок выполнения программы
// eventparam - первый параметр функции обратного вызова
[/CODE]Если у Вас есть сомнения в том, необходимо ли использовать те или иные параметры, могу предложить начать с использования функции ImportFromAnySxfPro.
Проблема с открытием больших карт, GisDesigner, limits.conf
 
Здравствуйте!

Проверьте, пожалуйста, применился ли расширенный лимит на число открытых файлов для Вашего приложения.
Для примера привожу команды для процесса operator.exe:
[CODE]astra@astra:~$ pgrep operator.exe
21930
astra@astra:~$ cat /proc/21930/limits
Limit                     Soft Limit           Hard Limit           Units    
Max cpu time              unlimited            unlimited            seconds  
Max file size             unlimited            unlimited            bytes    
Max data size             unlimited            unlimited            bytes    
Max stack size            8388608              unlimited            bytes    
Max core file size        0                    unlimited            bytes    
Max resident set          unlimited            unlimited            bytes    
Max processes             31319                31319                processes
Max open files            1024                 1048576              files    
Max locked memory         65536                65536                bytes    
Max address space         unlimited            unlimited            bytes    
Max file locks            unlimited            unlimited            locks    
Max pending signals       31319                31319                signals  
Max msgqueue size         819200               819200               bytes    
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us        
astra@astra:~$ [/CODE]
ГИС Оператор. Прикладные задачи. Отображение изображений поверх карты
 
Здравствуйте!

На данный момент в интерфейсе PANAPI (классы TPanTask и TPanAction) отсутствует возможность отрисовки поверх карты с помощью Qt.

Для отрисовки собственных изображений на карте необходимо использовать специальные виды объектов.
Более подробно об этом можно посмотреть в данной ветке форума:
[URL=http://gisweb.ru/forum/messages/forum7/topic8968/message67026/8968-dobavlenie-na-kartu-sobstvennykh-izobrazheniy#message67026]http://gisweb.ru/forum/messages/forum7/topic8968/message67026/8968-dobavlenie-na-kartu-sobstvennykh-izobrazheniy#message67026[/URL]
Создание, пересоздание, модификация векторных карт.
 
Здравствуйте!

[QUOTE]Алексей Рылякин написал:
Может речь идет о том...Например карта 5000*5000 пикселов и что бы мне отобразить грубо говоря середину карты в окне 400*400, то надо этим методом установить угол в точку с координатами((5000/2-400/2), (5000/2-400/2)).Т.е. мы указываем не левый верхний угол всей карты(основной 5000*5000), а только того куска , который необходимо?[/QUOTE]
Да, по сути это корректное описание.
Создание, пересоздание, модификация векторных карт.
 
Здравствуйте!

[QUOTE]Алексей Рылякин написал:
Страница 46 и 49 опечатка в методе void GeMaptLeftTop(int left, int top) , Get.[/QUOTE]
Спасибо - исправим.
[QUOTE]Алексей Рылякин написал:
Приведите пример пожалуйста ибо описание этих методов не дает полного представления[/QUOTE]
Метод QDMapView::SetMapLeftTop() служит для установки положения левого верхнего угла карты в окне.
Это чаще всего необходимо из-за того, что при крупном масштабе отображения карта может занимать большой размер (например, 4000х4000 пикселей), в то время как текущий размер окна просмотра может быть 600х600 пикселей.

Наглядно это можно посмотреть в примере findbycoord из состава инсталляции.  Для этого после запуска примера необходимо выбрать пункт меню "Переход"->"В точку" - и карта сместится в заранее определенное положение.
Данное поведение реализовано в данном примере в функции MainForm1::FindByPoint_activated() с помощью функции QDMapView::SetMapLeftTop().
Карты sit для панорамы для андроид
 
Здравствуйте!

Как описано в ответах выше, карту необходимо скопировать в память устройства (внутреннюю или внешнюю SD-карту) с помощью стандартных средств (например, "Проводник").
Сборка прикладных задач под linux, Итересует кто как собирает прикладные задачи под Linux
 
Поскольку Вы пишете автономное ГИС-приложение на основе ГИС Конструктор, то для интерактивного взаимодействия с окном карты необходимо использовать обработчики, реализующие интерфейс QDGtkAction (qdmact.h). Например:
- обработчик выбора точки QDGetMapPoint (qdmactpt.h);
- обработчик выбора линии QDMapActionLine (qdmactline.h);
- обработчик выбора прямоугольной области QDMapSelectRect (qdmrect.h).

При этом отображение поверх карты будет производиться в функции MapAfterPaint().
Любой из данных обработчиков Вы можете взять за основу и реализовать собственный функционал.

Исходные тексты компонентов ГИС Конструктор (включая обработчики) доступны в составе инсталляции (/usr/share/gisdesigner/examples/Sources/).
Также примеры использования обработчиков можно посмотреть в контрольных примерах (/usr/share/gisdesigner/examples/) - например, myfirst.

При необходимости отобразить объект поверх карты без предварительного его нанесения (например, на временную карту) можно отрисовать его в память функцией mapPaintExampleObjectByFuncDataToXImage (mapapi.h), а затем нарисовать полученный образ с помощью QPainter в MapAfterPaint():
[CODE] // Вывести изображение карты в XImage (массив)
 // hmap  - идентификатор открытых данных
 // imagedesc - параметры области для размещения изображения
 // Описание структуры XIMAGEDESC в maptype.h
 // erase - признак очистки области изображения (если равен -2, то изображение рисуется
 //         поверх имеющегося рисунка без очистки)
 // x,y - координаты левого верхнего угла внутри
 // битовой области XImage для размещения изображения
 // rect - фрагмент для вывода отображения
 // func - функция отображения объекта
 // parm - параметры изображения
 // data - метрика для отображения
 // colors - количество цветов
 // palette - палитра
 // При ошибке в параметрах возвращает ноль

_MAPIMP long int _MAPAPI mapPaintExampleObjectByFuncDataToXImage(HMAP hMap, XIMAGEDESC *imagedesc,
                                                                long int x, long int y,
                                                                RECT *rect, long int func,
                                                                const char *parm, POLYDATAEX* data,
                                                                long int colors, COLORREF *palette);[/CODE]
Сборка прикладных задач под linux, Итересует кто как собирает прикладные задачи под Linux
 
[QUOTE]Максим Казаровец написал:
А что насчет задач, которые под windows представлены в SDK? Планируется ли их добавление в SDK linux ветки?[/QUOTE]
Вы имеете в виду расширение SDK для ГИС Оператор под Linux задачами из SDK для ГИС Панорама для Windows?
Если Вы используете ГИС Конструктор, то можете использовать набор примеров, входящих в его состав.
Сборка прикладных задач под linux, Итересует кто как собирает прикладные задачи под Linux
 
Здравствуйте!

Уточните, пожалуйста, Вы разрабатываете прикладные задачи для ГИС Оператор или автономные приложения на базе ГИС Конструктор?
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 53 След.



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

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