Как конвертировать координаты из autocad в kml?

Тема в разделе "Autocad", создана пользователем Herber, 10 дек 2020.

  1. Координаты из autocad хочу перенести в kml. Регион МСК-50. На сайте geobridg подсмотрел wkt для МСК-50. Все работает. Почти. Координаты у меня смещены на несколько градусов. Подскажите актуальную wkt-строку.

    Код:
    var csFact = new CoordinateSystemFactory();
    var ctFact = new CoordinateTransformationFactory();
     
    var wkt = csFact.CreateFromWkt(
                        "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]]");
     
    var wgs84 = ProjectedCoordinateSystem.WGS84_UTM(33, true);
    var trans = ctFact.CreateFromCoordinateSystems(wkt, wgs84);
    double[] fromPoint = new double[] { 9877.662483, 3764.885102 };
    double[] toPoint = trans.MathTransform.Transform(fromPoint);

    Координаты в автокад
    Код:
              в точке  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
     
    Последнее редактирование: 10 дек 2020
  2. Georg Keneberg

    Georg Keneberg Форумчанин

    Добрый день, ух-ты!
    Оказывается можно и так переводить (посмотрел на стандартный корявый системный пеервод и реализовывал свое приложение) ...
    В вашем случае могу предположить что
    параметра датума
    следует заменить на
    316.151,78.924,589.65,1.57273,-2.69209,-2.34693,8.450
    У вас получается ошибка в районе 7-го знака - что примерно, если не ошибаюсь, соответствует линейной ошибке порядка 5 см
    Замена в датуме обусловлена тем, что в спецификации WKT как было опытно выяснено используется формулировка Bursa-Volfe для которой по сравнению с 7-параметрическим Гельерта характерны обратные знаки для функции значения углов поворота
    P.S. Вообще есть штатные иснтрументы экспорта в KML (для Civil 3D/Map 3d), если у вас лишь AutoCAD - То да .. только лишь с подключением библиотек OSGeo.MapGuide
     
    Иоан4 и Herber нравится это.
  3. Всё равно не так, вот с вашими координатами вот так получается
    upload_2020-12-10_21-47-36.png

    а с моими

    upload_2020-12-10_21-49-41.png
     
  4. Georg Keneberg

    Georg Keneberg Форумчанин

    Ну, дык.. если ваши координаты, на которые вы ориентируетесь., каталожные - то тут ничего не поможет, ибо точного параметра перехода (сиречь, WKT формулировки), нет - секретно-с
    Могу разве что порекомендовать посчитать вручную 7 параметров трансформации (который TOWGS84 конструкция) - тогда будет более-менее точно
    Разве что еще можно попытаться
    PARAMETER[\"latitude_of_origin\", 55.66666666667
    Этот параметр 55.(6) "уточнить" до большего числа "6"
     
    Herber нравится это.
  5. Если честно из ваших слов мало что понятно))

    Вот отладил geobridge. Такие данные . В чем различия моего wkt и этих данных выше? Подскажите плиз


    Код:
    $$hashKey: "00B"
    a: 6377397.155
    a2: 40671194472602.09
    axis: "enu"
    b: 6356078.962818189
    b2: 40399739781579.94
    datum: Class {datum_type: 2, a: 6377397.155, b: 6356078.962818189, es: 0.006674372231802045, ep2: 0.006719218799174659, …}
    datum_params: (7) [316.151, 78.924, 589.65, -0.0000076248102069140055, 0.000013051620627781706, 0.000011378237726064032, 1.0000084507]
    defData: "+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"
    e: 0.0816968312225269
    e0: 0.9983293129828279
    e1: 0.002507078957150663
    e2: 0.000002623256153810457
    e3:
    3.3874906423706494
    e-9
    ellipseName: "Bessel 1841"
    ellps: "bessel"
    ep2: 0.006719218799174659
    es: 0.006674372231802045
    forward: ƒ (p)
    init: ƒ ()
    inverse: ƒ (p)
    k0: 1
    lat0: 0.9715666169435683
    lon_0: 37.5
    long0: 0.6544984694978736
    ml0: 6170810.070243443
    projName: "tmerc"
    queue: []
    readyToUse: true
    rf: 299.1528128
    srsAuth: "epsg"
    srsCode: "EPSG:6335000"
    srsCodeInput: "EPSG:6335000"
    srsProjNumber: "6335000"
    title: "EPSG:6335000 - Московская СК (МГГТ) "
    units: "m"
    x0: 16.098
    y0: 14.512
    --- Сообщения объединены, 10 дек 2020, Оригинальное время сообщения: 10 дек 2020 ---
    а вот оладка по wgs
    Код:
    $$hashKey: "003"
    a: 6378137
    a2: 40680631590769
    axis: "enu"
    b: 6356752.314245179
    b2: 40408299984661.445
    datum: Class
    a: 6378137
    b: 6356752.314245179
    datum_params: (3) [0, 0, 0]
    datum_type: 4
    ep2: 0.006739496742276434
    es: 0.006694379990141316
    __proto__: Object
    datumCode: "WGS84"
    datumName: "WGS84"
    datum_params: (3) [0, 0, 0]
    defData: "+title=long/lat:WGS84 +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees"
    e: 0.08181919084262149
    ellipseName: "WGS 84"
    ellps: "WGS84"
    ep2: 0.006739496742276434
    es: 0.006694379990141316
    forward: ƒ (pt)
    init: ƒ ()
    inverse: ƒ (pt)
    k0: 1
    lon_0: 0
    projName: "longlat"
    queue: []
    readyToUse: true
    rf: 298.257223563
    srsAuth: ""
    srsCode: "WGS84"
    srsCodeInput: "WGS84"
    srsProjNumber: "WGS84"
    title: "WGS84"
    units: "degrees"
    __proto__: Object
     
  6. trir

    trir Форумчанин

    datum_params отличается от TOWGS84
     
    Herber нравится это.
  7. поподробнее плиз
     
  8. trir

    trir Форумчанин

    сравни
    datum_params: (7) [316.151, 78.924, 589.65, -0.0000076248102069140055, 0.000013051620627781706, 0.000011378237726064032, 1.0000084507]
    defData: "+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"
     
  9. agajohn

    agajohn Форумчанин

    В цивиль есть экспорт в кмл. Не работает?
     
  10. Qvinto

    Qvinto Форумчанин

    agajohn, Цивиль не интересно. Интересно в Автокаде, голом.
    Да и СК надо уметь настроить в Цивиле.
     
  11. agajohn

    agajohn Форумчанин

    Умеете вы однако развлекаться))
    Надеюсь это просто юмор))
     
    flareon и Qvinto нравится это.
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление