Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

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

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

  1. Herber

    Регистрация:
    10 дек 2020
    Сообщения:
    4
    Симпатии:
    0
    Координаты из 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
     
    #1
    Последнее редактирование: 10 дек 2020
  2. Georg Keneberg

    Форумчанин

    Регистрация:
    6 мар 2019
    Сообщения:
    61
    Симпатии:
    17
    Адрес:
    Санкт-Петербург
    Добрый день, ух-ты!
    Оказывается можно и так переводить (посмотрел на стандартный корявый системный пеервод и реализовывал свое приложение) ...
    В вашем случае могу предположить что
    параметра датума
    следует заменить на
    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
     
    #2
    Иоан4 и Herber нравится это.
  3. Herber

    Регистрация:
    10 дек 2020
    Сообщения:
    4
    Симпатии:
    0
    Всё равно не так, вот с вашими координатами вот так получается
    upload_2020-12-10_21-47-36.png

    а с моими

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

    Форумчанин

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

    Регистрация:
    10 дек 2020
    Сообщения:
    4
    Симпатии:
    0
    Если честно из ваших слов мало что понятно))

    Вот отладил 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
     
    #5
  6. trir

    Форумчанин

    Регистрация:
    25 ноя 2014
    Сообщения:
    3.253
    Симпатии:
    931
    Адрес:
    gnomtrir@mail.ru
    datum_params отличается от TOWGS84
     
    #6
    Herber нравится это.
  7. Herber

    Регистрация:
    10 дек 2020
    Сообщения:
    4
    Симпатии:
    0
    поподробнее плиз
     
    #7
  8. trir

    Форумчанин

    Регистрация:
    25 ноя 2014
    Сообщения:
    3.253
    Симпатии:
    931
    Адрес:
    gnomtrir@mail.ru
    сравни
    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"
     
    #8
  9. agajohn

    Форумчанин

    Регистрация:
    3 апр 2013
    Сообщения:
    480
    Симпатии:
    214
    Адрес:
    Москва
    В цивиль есть экспорт в кмл. Не работает?
     
    #9
  10. Qvinto

    Форумчанин

    Регистрация:
    10 дек 2008
    Сообщения:
    5.681
    Симпатии:
    4.236
    Адрес:
    Украина, г.Калуш
    agajohn, Цивиль не интересно. Интересно в Автокаде, голом.
    Да и СК надо уметь настроить в Цивиле.
     
    #10
  11. agajohn

    Форумчанин

    Регистрация:
    3 апр 2013
    Сообщения:
    480
    Симпатии:
    214
    Адрес:
    Москва
    Умеете вы однако развлекаться))
    Надеюсь это просто юмор))
     
    #11
    flareon и Qvinto нравится это.

Поделиться этой страницей

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