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

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

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

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 148 След.
Ошибки и пожелания
 
[QUOTE]Андрей Ильин написал:
1) Если свободна комбинация Ctrl+Space, могли бы для неё назначить команду: изменить тип объекта? (довольно популярная команда)[/QUOTE]
Команда популярная, поэтому и находится в основной панели редактора. Доработка не планируется.[QUOTE]Андрей Ильин написал:
2) При выборе команды изменить тип объекта, - программа задает вопрос: Обработать выделенные объекты? - это окошко с уточняющим вопросом ни к чему, только лишние действия по его закрытию.[/QUOTE]
Вопрос "Обработать выделенные объекты?" уместен только в случае выбранного и выделенных объектов. При ответе "Да" - должны обрабатываться выделенные, иначе - выбранный объект. Планируется доработка.
Не считает пересечение оверлейная функция, TMapOverlay
 
Объекты пересечения записываются в карту parm1.Site2.

//------------------------------------------------------------------
// ПАРАМЕТРЫ ОБРАБОТКИ ПЕРЕСЕЧЕНИЙ МЕТРИКИ ОБЪЕКТОВ
//------------------------------------------------------------------
typedef struct PROCESSPARM
...
HMAP     Map2;              // Идентификатор открытых данных для записи результата
HSITE    Site2;             // Новая карта для записи обработанных объектов
Изменено: Александр Кружков - 17.05.2021 17:16:50
Не считает пересечение оверлейная функция, TMapOverlay
 
Если я правильно понял: Вы не пользуетесь рекомендованной функцией cntOverlapTest ?

Функция SetObjectCross имеет ряд ограничений, которые не позволяет обрабатывать сложные полигоны, в том числе и мультиполигоны.
Пересечение двух объектов с подобъектами функция SetObjectCross также не выполняет: в качестве шаблона не может быть выбран объект с подобъектом.  Для таких случаев специально разработана более сложная функция: cntOverlapTest.

Порядок проверки:
1. Открыл Вашу карту.
2. Выделил объект 266 и добавил в список "Газон": ГИС "Панорама" - Поиск - Списки объектов - Добавить. Сохранить. Выход.
3. Выделил объект 857 и добавил в список "Зона".
4. Выполнил построение пересечений с помощью диалога: Поиск - Списки объектов - Построение - Объединение/пересечение объектов списков - Выполнить. Выход. Выход.

Результат пересечения (лиловый объект) на рисунке (получено с использованием функции cntOverlapTest).
Изменено: Александр Кружков - 17.05.2021 15:31:47
Проблема с Печатью по размеру страницы. растянуть на страницу и др. при подключенных геопорталах
 
[QUOTE]2) Недостает возможности сохранить параметры печати, настройки печати, выбранный принтер.
[/QUOTE]
Большинство параметров сохраняется. Не сохраняются настройки устройства печати (принтера). Настройки устройства печати выбираются для устройства используемого в системе по умолчанию.
Аналогично работают программы MS Word, Блокнот и другие.

P.S. При частом использовании определенного принтера и настроек (формата листа, разрешения и других параметров) необходимо выполнить настройку параметров принтера по умолчанию в меню Windows - Устройства и принтеры.
Изменено: Александр Кружков - 12.05.2021 14:42:45
Exception при вызове mapPaintExampleSiteObject()
 
Дополнительно прошу уточнить какой тип визуализации используется: VT_SCREEN, VT_PRINT ?

см. mapapi.h
_MAPIMP long int _MAPAPI mapGetViewType(HMAP hmap);
_MAPIMP long int _MAPAPI mapSetViewType(HMAP hmap, long int type);
Изменено: Александр Кружков - 11.05.2021 12:45:13
Рисование круга и эллипса, mapapi рисование круга и эллипса
 
Вариант 1
Если все окружности одинакового радиуса, то мы можем добавить такой объект в operator.rsc.

Вариант 2
Если окружности должны отображаться поверх карты с любым классификатором - можно использовать дополнительную карту со своим классификатором или использовать вариант 3.

Вариант 3
Если окружности не являются объектами карты, а являются временными построениями (для выделения точек), то можно их рисовать поверх карты с помощью функций:
_MAPIMP long int _MAPAPI mapPaintUserObject95(HMAP hmap, HDC hdc, RECT *rect, PAINTPARM *image, PLACEDATA *data, long int place);
_MAPIMP long int _MAPAPI mapViewUserObject(HMAP hmap, HWND hwnd, DOUBLEPOINT *point, PAINTPARM *image, PLACEDATA *data, long int place);

IMGCIRCLE parm;
parm.Color = 0;
parm.Thick = 100;  // 0.1 мм
parm.Radius = 1000;  // 1 мм

PAINTPARM image;
image.Image = IMG_CIRCLE;
image.Mode = R2_COPYPEN;
image.Parm = (char*)&parm;
Изменено: Александр Кружков - 11.02.2021 09:19:25
Рисование круга и эллипса, mapapi рисование круга и эллипса
 
У меня готового примера нет. Обычно мы не создаем графические знаки в виде векторных знаков, а используем векторные знаки классификатора. Это проще. Такой способ подходит, если все окружности одинакового размера.

Каких размеров окружности нужно создавать Вам?
Изменено: Александр Кружков - 10.02.2021 09:15:29
Рисование круга и эллипса, mapapi рисование круга и эллипса
 
[QUOTE]Алексей написал:
Есть ли возможность как-то сохранять размеры для окружности?[/QUOTE]
см. ответ 11 от 06.06.2016 10:21:54 (VT_CIRCLE в качестве составной части векторного знака IMG_VECTOREX) и ответ 12.
Изменено: Александр Кружков - 08.02.2021 11:25:05
Рисование круга и эллипса, mapapi рисование круга и эллипса
 
Функция mapBuildEllipse строит конкретную метрику контура. Функции mapSetObjectPress и mapSetObjectScale не меняют геометрию контуров. Они влияют на толщину контура и размеры подписей, векторных и точечных знаков (при изменении масштаба изображения).
Горячие клавиши с "Человеческим лицом"
 
[QUOTE]Андрей Ильин написал:
4.1. При работе скроллом мыши, - не нужно карту после каждой прокрутки помещать в центр экрана.Пояснение 1: какой "пиксель карты" (координата карты) в момент использования скролла мыши находится под её курсором, в том же месте этот пиксель (координата) должен остаться после отработки скролла (а не перемещаться в центр монитора)Пояснение 2: курсор мыши не должен блуждать по экрану при использовании скролла, а оставаться всегда на месте[/QUOTE]
Иными словами: при скроллинге нужно сохранять положение указателя мыши в точке карты? Что делать, если данная точка карты при выполнении скроллинга сместится в невидимую область (куда поместить указатель мыши)?
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 148 След.



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

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