Преобразование координат

Автор Тема: Преобразование координат  (Прочитано 11857 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн D_TRexАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 104
  • Карма: 0
Здравствуйте писал в группы геодезистов - ответ типа сложные формулы и тому подобное.
Последняя надежна на Вас, наверное в Civil есть функция преобразования координат, конкретно интересует трасса либо полилиния, нужны координаты из X,Y в формате широта, долгота для создания KML файла. Ещё раз конкретнее есть в Civil координаты X,Y но если назначить систему координат чертежу то посредством точки COGO можно получить широту и долготу. Смотрите скрин ниже это координаты одной и той же точки. Спасибо за любую помощь


Оффлайн alz

  • ADN OPEN
  • **
  • Сообщений: 95
  • Карма: 11
Re: Преобразование координат
« Ответ #1 : 01-06-2023, 07:04:14 »
Так у тебя вопрос как импортировать координаты или как назначить чертежу систему координат?

Оффлайн D_TRexАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 104
  • Карма: 0
Re: Преобразование координат
« Ответ #2 : 01-06-2023, 07:13:45 »
alz, Два раза специально писал что из X,Y получить широту, долготу. Должна быть команда преобразования скорее всего

Оффлайн alz

  • ADN OPEN
  • **
  • Сообщений: 95
  • Карма: 11
Re: Преобразование координат
« Ответ #3 : 01-06-2023, 08:56:01 »
Ну пока ты не задашь чертежу систему координат, географическую, как он будет определять что во что преобразовывать? А если задана то вытащить географические широту и долготу можно даже без всяких команд просто из метки кого точки или создать свой формат файла точек для вывода ,так что единственную проблему что я вижу это как назначить систему координат соответствующую.


Оффлайн D_TRexАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 104
  • Карма: 0
Re: Преобразование координат
« Ответ #4 : 01-06-2023, 12:11:38 »
alz, а на скрине показал что у точки есть и X,Y и широта, долгота так что система назначена. С экспортом координат я знаком спасибо за Ваш скрин, но как писал в начале мне надо экспортировать координаты вершит трассы либо полилинии а там только X,Y есть вот и вопрос как конвертировать или запросить широту, долготу в определённом месте чертежа без участия точек COGO.

Оффлайн alz

  • ADN OPEN
  • **
  • Сообщений: 95
  • Карма: 11
Re: Преобразование координат
« Ответ #5 : 01-06-2023, 13:43:00 »
Ну тут уже не подскажу, единственный вариант что приходит на ум просто насоздавать точек кого по нужным объектам, благо делов на пару минут и экспортировать уже их координаты, так как форум таки програмисский, могу, если надо, скинуть код, который строит точки кого по выбранным полилиниям или трассам.

Оффлайн D_TRexАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 104
  • Карма: 0
Re: Преобразование координат
« Ответ #6 : 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 (это случайный числа в формате градусы, минуты и секунды)

Да я понимаю что форум не геодезический, но поэтому и вопрос звучал что может как то можно преобразовать координаты командой, либо считать.

Оффлайн alz

  • ADN OPEN
  • **
  • Сообщений: 95
  • Карма: 11
Re: Преобразование координат
« Ответ #7 : 01-06-2023, 14:39:01 »
Не пойму чем не устраивает обычный экспорт Civil-а прекрасно выводит географические координаты точек четко совпадающие с чертежом. Если все же нужно именно программное, то чуть позже посмотрю что там из .net доступно.


Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
Re: Преобразование координат
« Ответ #8 : 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.         }
« Последнее редактирование: 03-06-2023, 17:59:27 от Александр Ривилис »

Оффлайн D_TRexАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 104
  • Карма: 0
Re: Преобразование координат
« Ответ #9 : 03-06-2023, 15:18:59 »
trir, судя по тексту то что надо, пока нет возможности попробовать. Спасибо

Видимо должна быть ещё ссылка на библиотеку, потому что так не находит пространство имён
« Последнее редактирование: 07-06-2023, 08:04:15 от D_TRex »

Оффлайн Nutson

  • ADN OPEN
  • Сообщений: 44
  • Карма: 6
Re: Преобразование координат
« Ответ #10 : 09-08-2024, 20:10:59 »
даёт координаты типа 0,7229.... и 1,3268.... вместо тех что должны быть, типа 72 56 48,78 и 32 48 41,25 (это случайный числа в формате градусы, минуты и секунды)

Ну по сути Вам остался один шаг, что бы отформатировать их до нужного вида. Я так делал, но наверняка можно найти более умное решение:

Код - Visual Basic [Выбрать]
  1.     Degree =abs(obj.Latitude)* 180 / 3.14159265358979
  2.    
  3.     deg = Int(Degree)
  4.     allMinute = Degree * 60
  5.     minutes = allMinute - deg * 60
  6.     min = Int(minutes)
  7.     allSeconds = minutes * 60
  8.     sec = allSeconds - min * 60
  9.    
  10. RESULT = CStr(deg) & Chr(176) & CStr(min) & "'" & CStr(Round(sec, 2)) & "''"
  11.