Как конвертировать autocad координаты в wsg84

Автор Тема: Как конвертировать autocad координаты в wsg84  (Прочитано 13672 раз)

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

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

  • ADN OPEN
  • Сообщений: 24
  • Карма: 0
Подскажите плиз как можно это сделать. Неохота ковырять javascript на сайте geobridge

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 470
  • Карма: 63
Civil/Map 3D, QGIS(proj)
https://github.com/triroakenshield/RosReestrImpLib/blob/master/RRViewer1/kml/KmlConverter.cs

Код - C# [Выбрать]
  1.         private (double[] xys, double[] zs) ReprojectGeometry(TGeometry geometry)
  2.         {
  3.             var xys = geometry.GetXYArray();
  4.             var zs = geometry.GetZArray();
  5.             Reproject.ReprojectPoints(xys, zs, Projection, WGS1984, 0, zs.Length);
  6.             return (xys, zs);
  7.         }

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

  • ADN OPEN
  • Сообщений: 24
  • Карма: 0
Что такое ReprojectPoints и откуда оно взялось?

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

  • ADN OPEN
  • Сообщений: 24
  • Карма: 0
Попробовал своими силами, но координаты вообще левые получаются
Вот на входе
9877.662483,3764.885102

Вот что на выходе должно получиться
55.755711228,37.558133244

Код - C# [Выбрать]
  1. var csFact = new CoordinateSystemFactory();
  2. var ctFact = new CoordinateTransformationFactory();
  3.  
  4. var wkt = csFact.CreateFromWkt(
  5.                     "PROJCS[\" Московская СК(МГГТ)\",GEOGCS[\"unknown\", DATUM[\"Unknown based on Bessel 1841 ellipsoid\", SPHEROID[\"Bessel 1841\", 6377397.155,299.1528128],TOWGS84[316.151,78.924,589.65,-1.57273,2.69209,2.34693,8.4507]],PRIMEM[\"Greenwich\", 0,AUTHORITY[\"EPSG\", \"8901\"]], UNIT[\"degree\", 0.0174532925199433,AUTHORITY[\"EPSG\", \"9122\"]]], PROJECTION[\"Transverse_Mercator\"], PARAMETER[\"latitude_of_origin\", 55.66666666667],PARAMETER[\"central_meridian\",37.5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",16.098],PARAMETER[\"false_northing\",14.512],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]]");
  6.  
  7. var wgs84 = ProjectedCoordinateSystem.WGS84_UTM(33, true);
  8. var trans = ctFact.CreateFromCoordinateSystems(wkt, wgs84);
  9. double[] fromPoint = new double[] { 9877.662483, 3764.885102 };
  10. double[] toPoint = trans.MathTransform.Transform(fromPoint);
  11.  

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 470
  • Карма: 63
Цитировать
ProjectedCoordinateSystem.WGS84_UTM(33, true);
это UTM!

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

  • ADN OPEN
  • Сообщений: 24
  • Карма: 0
var wgs84 = GeographicCoordinateSystem.WGS84;

изменил и всё получилось)

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 470
  • Карма: 63
Откуда GeographicCoordinateSystem?

Цитировать
Что такое ReprojectPoints и откуда оно взялось?
using DotSpatial.Projections;
https://github.com/DotSpatial/DotSpatial/tree/master/Source/DotSpatial.Projections
это порт proj на C#

Тебе координаты WGS84 вообще зачем нужны?

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

  • ADN OPEN
  • Сообщений: 24
  • Карма: 0
Хочу конвертировать их в KML

1) Вижу две проблемы - x и y заменены местами
2) Системе не нравятся мои координаты. Что не так с ними?
55.755711,37.558133,0 55.757380,37.556344,0 55.757812,37.555555,0 55.757600,37.554993,0 55.755896,37.556580,0 55.755842,37.556388,0 55.755684,37.556565,0 55.755775,37.556777,0 55.755437,37.557176,0 55.755345,37.556942,0 55.755307,37.556984,0 55.755711,37.558133,0

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 470
  • Карма: 63
Цитировать
x и y заменены местами
поменяй

у меня открывается
Код - XML [Выбрать]
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Document xmlns="http://www.opengis.net/kml/2.2">
  3.   <Placemark>
  4.     <name>SpatialElement</name>
  5.     <description />
  6.     <LineString>
  7.       <coordinates>
  8.           37.558133,55.755711,0
  9.           37.556344,55.757380,0
  10.       </coordinates>
  11.     </LineString>
  12.   </Placemark>
  13. </Document>

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 470
  • Карма: 63
В Map 3D же есть экспорт в kml, а в Civil 3D дополнительно свой

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

  • ADN OPEN
  • Сообщений: 24
  • Карма: 0
Все таки точность хромает, подскажите как можно epsg московской области найти?

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

  • ADN OPEN
  • Сообщений: 24
  • Карма: 0
+title= Московская СК (МГГТ)    +proj=tmerc +lat_0=55.66666666667 +lon_0=37.5 +k=1 +x_0=16.098 +y_0=14.512 +ellps=bessel +towgs84=316.151,78.924,589.650,-1.57273,2.69209,2.34693,8.4507 +units=m +no_defs

вот такие параметры на geobridge. В нем координаты чётко рисуются на карте. Я сконвертировал его через питон-скрипт в wkt, но у меня точность хромает. Координаты чуть смещены

Мне нужна  wkt строка. Зашёл на http://epsg.io/3857  - взял оттуда wkt строку, вообще левые координаты.

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 470
  • Карма: 63
а если в самом Civil'е её добавить - какая ошибка будет?

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

  • ADN OPEN
  • Сообщений: 24
  • Карма: 0
так у меня ж автокад обычный

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

  • ADN OPEN
  • Сообщений: 24
  • Карма: 0
Координаты в автокад
          в точке  X=9877.662483  Y=3764.885102  Z= 0.000000
          в точке  X=10063.396960  Y=3652.410869  Z= 0.000000
          в точке  X=10111.434188  Y=3602.817318  Z= 0.000000
          в точке  X=10087.768000  Y=3567.537000  Z= 0.000000
          в точке  X=9898.099000  Y=3667.376000  Z= 0.000000
          в точке  X=9892.133000  Y=3655.297000  Z= 0.000000
          в точке  X=9874.510000  Y=3666.401000  Z= 0.000000
          в точке  X=9884.710000  Y=3679.700000  Z= 0.000000
          в точке  X=9847.125000  Y=3704.815000  Z= 0.000000
          в точке  X=9836.825000  Y=3690.147000  Z= 0.000000
          в точке  X=9832.612039  Y=3692.779056  Z= 0.000000
          в точке  X=9877.662483  Y=3764.885102  Z= 0.000000
Координаты как они должны быть на выходе
37.655275857,55.700723619
37.658225873,55.699709643
37.658988079,55.699263221
37.658610408,55.698946824
37.655597434,55.699847401
37.655502119,55.699739029
37.655222228,55.699839116
37.655384925,55.699958361
37.654788040,55.700184690
37.654623705,55.700053150
37.654556793,55.700076875
37.655275857,55.700723619

Координаты которые выдаёт мой код

37.655275860901,55.7007236451868
37.6582258775078,55.6997096698396
37.6589880827861,55.6992632476724
37.6586104124046,55.6989468508733
37.6555974376768,55.6998474271545
37.6555021227552,55.6997390554342
37.6552222319942,55.6998391424061
37.6553849294582,55.6999583873745
37.6547880445611,55.700184716945
37.6546237092003,55.700053177079
37.6545567966732,55.7000769016622
37.655275860901,55.7007236451868