Форум НПФ  

Вернуться   Форум НПФ "ТОПОМАТИК" > Программные продукты "Топоматик Robur" на платформе "Robur AP3" > Средства разработки Топоматик Robur > Вопросы и ответы
Ник
Пароль
Регистрация FAQ Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09-06-2021, 17:59
ZaharovMaxim ZaharovMaxim вне форума
Новичок
 
Регистрация: Feb 2019
Сообщения: 13
По умолчанию Получить пикет по координатам точки

Добрый день.
Скажите как получить пикет и смещение на трассе по координатам точки, интересует и обратная операция по пикету и смещению определить координаты точки
Код:
ElseIf TypeOf acEnt Is Topomatic.Alg.Layers.Wrappers.AlignmentWrapper Then Dim Align As Topomatic.Alg.Layers.Wrappers.AlignmentWrapper = acEnt Dim ALignSurv As Topomatic.Alg.Survey.SurveyAlignment = Align.WrappedObject

Последний раз редактировалось ZaharovMaxim, 09-07-2021 в 9:44.
Ответить с цитированием
  #2  
Старый 09-07-2021, 11:39
Василий Гончаров Василий Гончаров вне форума
Разработчик Robur
 
Регистрация: Oct 2016
Сообщения: 154
По умолчанию

Добрый день!

У класса Alignment есть свойство Plan, представляющее из себя план трассы в виде вершин углов поворота. У объекта Plan есть свойство CompoundLine представляющее собой геометрию плана трассы. У него есть два метода -
PosToStaOffset - он переводит точку в расстояние от начала трассы и смещение вдоль плана, со знаком, и обратный метод - StaOffsetToPos - позволяющий получить координаты точки по расстоянию и смещению.
Зная расстояние относительно начала трассы, Вы имеете возможность получить строковое представление пикета используя свойство Stationing у класса Alignment, вызвав метод StationToString. Вы также можете использовать обратный метод StringToStation для получения расстояния от начала трассы, зная строку пикетажа. Например:

Код:
Alignment alignment = ... //подобъект Vector2D pos = ... //точка в координатах double sta, offs; alignment.Plan.CompoundLine.PosToStaOffset(pos, out sta, out offs); //расстояние и смещение точки string station_str = alignment.Stationing.StationToString(sta); //строковое представление расстояния через пикетаж sta = alignment.Stationing.StringToStation(station_str); //расстояние через строковое представление alignment.Plan.CompoundLine.StaOffsetToPos(sta, offs, out pos); //плановые координаты по расстоянию и смещению
Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 8:39.

Навигация по основному сайту
Главная Каталог продуктов и услуг Где купить Сопровождение
Вакансии О компании Обзоры Канал на YouTube

vBulletin v3.0.7 , Copyright ©2000-2023, Jelsoft Enterprises Ltd.
Copyright © 2003-2023, НПФ "ТОПОМАТИК".