Сообщество программистов Autodesk в СНГ

ADN Club => Civil 3D API => Тема начата: D_TRex от 31-05-2023, 18:41:45

Название: Преобразование координат
Отправлено: D_TRex от 31-05-2023, 18:41:45
Здравствуйте писал в группы геодезистов - ответ типа сложные формулы и тому подобное.
Последняя надежна на Вас, наверное в Civil есть функция преобразования координат, конкретно интересует трасса либо полилиния, нужны координаты из X,Y в формате широта, долгота для создания KML файла. Ещё раз конкретнее есть в Civil координаты X,Y но если назначить систему координат чертежу то посредством точки COGO можно получить широту и долготу. Смотрите скрин ниже это координаты одной и той же точки. Спасибо за любую помощь
(https://i.postimg.cc/0bLGrqH5/image.jpg) (https://postimg.cc/0bLGrqH5)
Название: Re: Преобразование координат
Отправлено: alz от 01-06-2023, 07:04:14
Так у тебя вопрос как импортировать координаты или как назначить чертежу систему координат?
Название: Re: Преобразование координат
Отправлено: D_TRex от 01-06-2023, 07:13:45
alz, Два раза специально писал что из X,Y получить широту, долготу. Должна быть команда преобразования скорее всего
Название: Re: Преобразование координат
Отправлено: alz от 01-06-2023, 08:56:01
Ну пока ты не задашь чертежу систему координат, географическую, как он будет определять что во что преобразовывать? А если задана то вытащить географические широту и долготу можно даже без всяких команд просто из метки кого точки или создать свой формат файла точек для вывода ,так что единственную проблему что я вижу это как назначить систему координат соответствующую.
(https://i.postimg.cc/XXjJc9D7/Screenshot-97.png) (https://postimg.cc/XXjJc9D7)
Название: Re: Преобразование координат
Отправлено: D_TRex от 01-06-2023, 12:11:38
alz, а на скрине показал что у точки есть и X,Y и широта, долгота так что система назначена. С экспортом координат я знаком спасибо за Ваш скрин, но как писал в начале мне надо экспортировать координаты вершит трассы либо полилинии а там только X,Y есть вот и вопрос как конвертировать или запросить широту, долготу в определённом месте чертежа без участия точек COGO.
Название: Re: Преобразование координат
Отправлено: alz от 01-06-2023, 13:43:00
Ну тут уже не подскажу, единственный вариант что приходит на ум просто насоздавать точек кого по нужным объектам, благо делов на пару минут и экспортировать уже их координаты, так как форум таки програмисский, могу, если надо, скинуть код, который строит точки кого по выбранным полилиниям или трассам.
Название: Re: Преобразование координат
Отправлено: D_TRex от 01-06-2023, 13:48:49
alz, Точки я попробовал построить по Вашему прошлому совету, да вот загвоздка
Код - vb.net [Выбрать]
  1. MsgBox(CogoP.Latitude & vbCrLf & CogoP.Longitude)
даёт координаты типа 0,7229.... и 1,3268.... вместо тех что должны быть, типа 72 56 48,78 и 32 48 41,25 (это случайный числа в формате градусы, минуты и секунды)

Да я понимаю что форум не геодезический, но поэтому и вопрос звучал что может как то можно преобразовать координаты командой, либо считать.
Название: Re: Преобразование координат
Отправлено: alz от 01-06-2023, 14:39:01
Не пойму чем не устраивает обычный экспорт Civil-а прекрасно выводит географические координаты точек четко совпадающие с чертежом. Если все же нужно именно программное, то чуть позже посмотрю что там из .net доступно.
(https://i.postimg.cc/RWjSC2wp/Screenshot-100.png) (https://postimg.cc/RWjSC2wp)
Название: Re: Преобразование координат
Отправлено: trir от 02-06-2023, 15:06:01
там штатный экспорт в kml есть

Код - C# [Выбрать]
  1. using Autodesk.Gis.Map;
  2. using Autodesk.Gis.Map.Project;
  3. using OSGeo.MapGuide;
  4.  
  5.         public MgCoordinateSystemTransform GetTransform()
  6.         {
  7.             MgCoordinateSystemFactory coordSysFactory = new MgCoordinateSystemFactory();
  8.             MgCoordinateSystemCatalog csCatalog = coordSysFactory.GetCatalog();
  9.             MgCoordinateSystemDictionary csDict = csCatalog.GetCoordinateSystemDictionary();
  10.             MgCoordinateSystem LL84Cs = csDict.GetCoordinateSystem("LL84");
  11.             //
  12.             MapApplication mapApp = HostMapApplicationServices.Application;
  13.             ProjectModel activeProj = mapApp.ActiveProject;
  14.             AppServ.Document acDoc = AppServ.Application.DocumentManager.MdiActiveDocument;
  15.             MgCoordinateSystem activeProjCs = csDict.GetCoordinateSystem(activeProj.Projection);
  16.             return coordSysFactory.GetTransform(LL84Cs, activeProjCs);
  17.         }
Название: Re: Преобразование координат
Отправлено: D_TRex от 03-06-2023, 15:18:59
trir, судя по тексту то что надо, пока нет возможности попробовать. Спасибо

Видимо должна быть ещё ссылка на библиотеку, потому что так не находит пространство имён