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

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

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

Страницы: Пред. 1 ... 6 7 8 9 10 11 12 13 14 15 16 ... 409 След.
Не срабатывает отключение слоя
 
Эта команда не имеет отношения к отображению.[CODE] mapSetSiteSeekSelect(mapHandle, 0, hSelect);
[/CODE]
1) Создать контекст условий поиска\отображения
[CODE] HSELECT hSelect = mapCreateSiteSelectContext(mapHandle, mapHandle);[/CODE]2) Скопировать текущее состояние из карты (не обязательно, но логично)
[CODE] mapGetSiteViewSelect(mapHandle, mapHandle, hSelect);[/CODE]3) Изменить состояние нужного параметра
[CODE] mapSelectLayer(hSelect, number, visible);[/CODE]4) Установить контекст обратно в карту
[CODE] mapSetSiteViewSelect(mapHandle, mapHandle, hSelect);[/CODE]5) Освободить контекст[CODE] mapDeleteSelectContext(hSelect);[/CODE]6) Выполнить перерисовку\поиск ...[CODE] _mapView->Repaint(0,0,5000,5000);[/CODE]Важно:
[CODE]mapSetSiteViewSelect(mapHandle, mapHandle, hSelect);[/CODE]не
[CODE]mapSetViewSelect(mapHandle, hSelect);[/CODE]Это частный случай для одной карты.
В общем случае нужно задавать HMAP и HSITE.
LoadTiffToRstConverterUn
 
Если из TIF получится RSW меньше 4Гб, то он будет общим для разных версий от 11 до 14.
А конвертировать лучше библиотеками из ГИС Конструктор версии 14.
[CODE]// Конвертор Tiff -> Rsw
// hmap - идентификатор открытых данных или ноль
// handle - идентификатор окна диалога визуального сопровождения процесса обработки или ноль
// tifname - имя читаемого TIF-файла
// rstname - имя создаваемого RSW-файла
// scale - знаменатель масштаба создаваемого растра, например 1 000 (1 : 1 000)
// precision - разрешающая способность создаваемого растра (точек/метр), например 12 000 (примерно 300 dpi)
// Диалогу визуального сопровождения процесса обработки посылаются сообщения:
// WM_PROGRESSBAR - Извещение об изменении состояния процесса
//       WPARAM - текущее состояние процесса в процентах (0% - 100%)
//       Если функция-отклик возвращает WM_PROGRESSBAR, то процесс завершается.
// WM_ERROR - Извещение об ошибке
//       LPARAM - указатель на структуру ERRORINFORMATION
//       Структура ERRORINFORMATION описана в picexprm.h,
//       WM_PROGRESSBAR и WM_ERROR - в maptype.h
// При ошибке возвращает ноль

_PICIMP long int _PICAPI LoadTiffToRstConverterUn(HMAP hmap, HMESSAGE handle, const WCHAR* tiffName,
                                                 const WCHAR* rstName, double scale, double precision);[/CODE]
Не срабатывает отключение слоя
 
Алгоритм такой:

1) Создать контекст условий поиска\отображения
2) Скопировать текущее состояние из карты (не обязательно, но логично)
3) Изменить состояние нужного параметра
4) Установить контекст обратно в карту
5) Выполнить перерисовку\поиск ...

[URL=https://gistoolkit.com/download/doc/mapapi.pdf]https://gistoolkit.com/download/doc/mapapi.pdf[/URL]

4.2.12 Управление составом отображения объектов электронной карты
Глубина растра
 
[CODE] // Установить прозрачность растра
 // hMap        - идентификатор открытых данных
 // number      - номер файла в цепочке
 // transparent - прозрачность в процентах от 0 до 100, где 0 - полностью прозрачный, 100 - нет прозрачности
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapSetRstTransparent(HMAP hMap, long int number, long int transparent)[/CODE]Дополнили комментарий. 100 - нет прозрачности

Поскольку открыт один растр, то закрывать лучше не так:
[CODE]mapCloseRst(map, 1);[/CODE]а так
[CODE]mapCloseData(map);[/CODE]Иначе будет утечка памяти.

Чтобы отключить отображение растра лучше применить:
[CODE] // Запросить/Установить степень видимости растра
 // hMap   - идентификатор открытых данных
 // number - номер файла в цепочке
 // view = 0 - не виден
 // view = 1 - полная видимость
 // view = 2 - насыщенная
 // view = 3 - полупрозрачная
 // view = 4 - средняя
 // view = 5 - прозрачная
 // При ошибке возвращает ноль

_MAPIMP  long int _MAPAPI mapGetRstView(HMAP hMap,long int number);
_MAPIMP  long int _MAPAPI mapSetRstView(HMAP hMap,long int number, long int view);


mapSetRstView(map, 1, 0);
[/CODE]
Время на отображение растра не будет тратиться.
Как получить список карт добавленных через QDMapDataList::Execute() ?
 
[CODE]Затем создаю еще несколько своих карт track.sit - на которых нарисованы линии маршрута движения.[/CODE][CODE]Если кликнуть по линии за пределами карты области - ничего не происходит.[/CODE]Это означает, что объект - трасса за габаритами документа.

Габариты документа пересчитываются автоматически при добавлении карт, снимков, матриц. Но в этот момент трассы не было.
При масштабировании карты габариты пересчитываются автоматически, но масштабирования не было.

Значит, при создании/обновлении объекта за пределами текущих габаритов нужно вызвать функцию обновления габаритов документа.
[CODE] // Обновить в документе общие габариты района работ
 // hmap - идентификатор открытых данных
 // После смены ограничения на область отображения или создания объекта на пользовательской карте
 // за пределами текущих габаритов документа необходимо обновить габариты района и затем обновить
 // позицию изображения карты в окне
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapSetRegion(HMAP hMap);[/CODE]
Как получить список всех слоев из объекта карты ?
 
Для начала можно посмотреть здесь -
[URL=https://gistoolkit.com/download/doc/mapapi.pdf]https://gistoolkit.com/download/doc/mapapi.pdf[/URL]

Есть слои и объекты на конкретной карте.
Их можно получить запросами к карте. Например, см. п.4.2.16 Запрос параметров объектов.

Функции описаны в mapapi.h из SDK -
[URL=https://gisinfo.ru/download/?id=279]https://gisinfo.ru/download/?id=279[/URL]

Есть слои и объекты в классификаторе карты (что может быть на карте в принципе).
Функции описаны в rscapi.h

Например:
[CODE] // Открыть классификатор
 // name - имя  файла классификатора в кодировке UNICODE
 // При ошибке возвращает ноль

_MAPIMP HRSC _MAPAPI mapOpenRscUn(const WCHAR * name);

 // Запрос количества слоев
 // hRsc - идентификатор классификатора карты
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapGetRscSegmentCount(HRSC hRsc);

 // Запрос имени слоя в кодировке UNICODE по порядковому номеру слоя (с 0)
 // hRsc - идентификатор классификатора карты
 // incode - номер слоя
 // name - адрес строки для размещения результата
 // size - размер строки (может быть до 2048 байт)
 // При ошибке возвращает 0

_MAPIMP long int _MAPAPI mapGetRscSegmentNameUn(HRSC hRsc,long int incode,
                                               WCHAR * name, long int size);


 // Запрос количества объектов слоя по  порядковому номеру слоя (с 0)
 // hRsc - идентификатор классификатора карты
 // layer - номер слоя
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapGetRscSegmentObjectCount(HRSC hRsc, long int layer);

// Запросить название объекта по порядковому номеру
// в заданном слое
// hRsc   - идентификатор классификатора карты
// layer  - номер слоя
// number - номер объекта в слое
// name   - адрес строки для размещения результата
// size   - размер строки (не меньше 32 байт)
// При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapGetRscObjectNameInLayerUn(HRSC hRsc, long int layer, long int number,
                                                     WCHAR * name, long int size);


 // Запросить число объектов описанных в классификаторе
 // hRsc - идентификатор классификатора карты
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapGetRscObjectCount(HRSC hRsc);[/CODE]И так далее.
Не удается получить идентификатор пользовательской карты hsite формата mptz по имени
 
В состав упакованного (mptz) или неупакованного (mpt) проекта может входить любое число карт, снимков, матриц, документов, геопорталов и других проектов.
Импорт из shp, shpLoadOneShape
 
[CODE] // Удалить объект для импорта файлов SHP
// При ошибке возвращает ноль

_VECIMP long int _VECAPI shpShapeProcClose(HSHPLOAD hshpload);[/CODE]
Импорт из shp, shpLoadOneShape
 
// code - код зарегистрированного объекта

Это внутренний код объекта в классификаторе. Может быть получен при вызове функции:[CODE] // Запросить внутренний код (порядковый номер) объекта
 // по внешнему коду, локализации  и порядковому номеру среди аналогичных
 // объектов(с 1)
 // hRsc - идентификатор классификатора карты
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapGetRscObjectCodeByNumber(HRSC hRsc, long int excode, long int local, long int number = 1);[/CODE]
Импорт из shp, shpLoadOneShape
 
// handle - идентификатор получателя сообщений WM_ERROR и WM_OBJECT

В Windows - это HWND диалога, который принимает сообщения WM_OBJECT, WM_ERROR

Нельзя вместо HWND передавать некоторое число.
Страницы: Пред. 1 ... 6 7 8 9 10 11 12 13 14 15 16 ... 409 След.



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

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