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

Захват чужой линии

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
Захват чужой линии, Захват чужой линии
 
Здравствуйте!

В версии GisToolKit Free 14.1.1.0
появилась замечательная функция при нанесении нового объекта можно включить захват чужой точки.
Это значительно улучшило работу картографа при нанесении нового объекта на карту.
Вместе с тем картограф хочет еще функцию захват чужой линии.
Это особо актуально, если примыкание идет к кривой линии, в которой много точек для создания дуги.
Здесь картограф хотел бы захватив чужую линию, притягивались бы все промежуточные точки, даже если он притянул вручную только первую, вторую и последнюю точку,
остальные точки притянулись бы автоматически.  
 
Такой режим в компоненте является излишним.
Текущая реализация позволяет Вам реализовать и захват участка метрики одного объекта при создании другого, и согласование участков метрики двух объектов, и перемещение выбранного участка метрики, и интерполяцию или создание сплайна для выбранного участка контура и многое другое - на Ваше усмотрение.
Компонент позволяет Вам выбрать реальную точку метрики или виртуальную - на контуре объекта.
Вы это можете в своей программе использовать для различных целей, в том числе - для определения фрагмента метрики объекта для любой дальнейшей обработки, например - копирования этой метрики во вновь создаваемый объект.
Событие OnMapGetPointEventEx, генерируемое при выборе точки на чужом объекте, имеет параметр aShift : TShiftState, то есть Вы можете предусмотреть в своей программе состояние модифицирующих клавиш в момент выбора точки. Скажем, захват точки с клавишей Shift будет означать начало выбора отрезка, а последующий захват - его окончание, при котором в метрику редактируемого объекта необходимо вставить последовательно точки метрики выбранного участка.
 
Цитата
Денис Вицко написал:
Событие OnMapGetPointEventEx, генерируемое при выборе точки на чужом объекте
Прописали в событие дитектирование координат и номера выбранной точки.
Во время нанесения нового площадного объекта, подводим указатель мыши к выбранной чужой точки на другом объекте карты.
Квадрат вокруг точки появляется, но в событие значение координат и номера точки не появляются.

procedure Tform_main.MapEditMetric1GetPointEx(aSender: TObject;
 aShift: TShiftState; aMapPoint: TMapPoint; aSubject, aNumber: Integer);
begin
sbStatus2.Panels.Items[5].Text := FloatToStr(aMapPoint.Point.X); // На панели статуса ничего нет при выборе чужой точки при нанесении нового объекта на карту.
sbStatus2.Panels.Items[6].Text := FloatToStr(aMapPoint.Point.Y);
sbStatus2.Panels.Items[7].Text := IntToStr(aNumber);
end;
Изменено: Сергей Викторович - 16.06.2022 15:42:55
 
При создании нового объекта
События возвращаются для метрики того объекта, с которым работает компонент TMapEditMetric.
Корректно событие вернет "захваченную" точку в режимах
- emGetPoint          // получить координату точки на контуре объекта
- emGetRealPoint    // получить координату ближайшей точки метрики объекта
И компонент TMapEditMetric должен быть настроен на компонент TMapObj, который установлен на объект, из чьей метрики должны захватываться точки.

В режиме создания нового объекта, событие срабатывает таким же образом, но указывает на точку, которой в метрике пока еще нет. Она появится, когда вы ее примите и о чем будет свидетельствовать событие OnMapMetricChange.

В данный момент нет возможности снаружи отличить точку выбранную произвольно или захваченную с другого объекта.

Теоретически можно использовать два экземпляра TMapEditMetric - одним осуществлять выбор точек на чужом объекте, другим выполнять создание.

Ваше предложение по добавлению нового режима мы рассмотрим в плане перспективы развития компонента TMapEditMetric.
 
Цитата
Денис Вицко написал:
В данный момент нет возможности снаружи отличить точку выбранную произвольно или захваченную с другого объекта.
Т.е. после добавления нового режима в компонент TMapEditMetric появиться возможность по трем выбранным точкам произвольного другого объекта
притянуть создаваемый новый объект к выше названному отрезку чужого объекта?
 
 
Я пока ничего конкретного не обещал :)
Цитата
Денис Вицко написал:
мы рассмотрим в плане перспективы

Но если такой режим будет, то да - участок метрики чужого объекта, скорее всего, именно так и будет выбираться для добавления в новый объект.
Страницы: 1
Читают тему (гостей: 1)



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

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