1. ВНИМАНИЕ! В течении пары дней +- будет переезд форума на более защищённый сервер. Возможны перебои в работе.
    Скрыть объявление

Определение направления до объектов по частям света.

Тема в разделе "MapInfo", создана пользователем YXX, 27 дек 2018.

  1. YXX

    YXX

    Есть центральный полигон, вокруг него другие полигоны. Можно ли определить направление (север, северо-запад, запад...) до этих полигонов, если известны координаты (МСК), и как это сделать?
     
  2. FlaShTroN

    FlaShTroN Форумчанин

    Ну раз вы создали тему в мапинфо, то значит полигоны на чертеже у вас? Чертеж как бы всегда верхней частью направлен на Север, полигоны у вас привязаны в МСК. В чем проблема не пойму. В центр полигона ставите круг. Делите его на 8 равных частей через 45 градусов и строите линии до нужных полигонов. К какой основной линии круга ближе построена линия - значит в той части света находится полигон по отношению к центральному. Это если вручную определять. Если объем большой - то наверняка есть утилиты.
     
  3. YXX

    YXX

    Вручную я знаю как определять::biggrin24.gif::. Объем большой, хотелось бы чтобы в таблице отдельным столбцом для каждого полигона отмечалось направление относительно центрального полигона. Может кто-нибудь подскажет утилиты
     
  4. trir

    trir Форумчанин

    SQL
    строим центроды по полигоном, потом расчитываем угол
     
  5. YXX

    YXX

    А по подробнее можно::rolleyes24.gif::
     
  6. trir

    trir Форумчанин

    пример данных дай
     
  7. YXX

    YXX

    Это центральный участок 62:29:0010001:771, для всех остальных нужны направления.
    Ссылка на файл https://yadi.sk/d/XzCy5T8x4jaOoA
     
  8. Valang

    Valang Форумчанин

    Саша, это не так: чертеж в любой ГИС, включая автокад, можно разворачивать как угодно. Ты работал в классической картографии и геодезии - там это не приемлемо.
     
  9. trir

    trir Форумчанин

    Код:
    CREATE FUNCTION dbo.atan2
    (
    @sp geometry,
    @ep geometry
    )
    RETURNS float
    AS
    BEGIN
    -- Declare the return variable here
    DECLARE @dx float = @sp.STX - @ep.STX, @dy float = @sp.STY - @ep.STY;
    -- Return the result of the function
    RETURN ATN2(@dy, @dx)
    END
    Код:
    select tbl2.[FeatId] as fid,  dbo.atan2(tbl1.cent, tbl2.cent) as angle , tbl2.[CadastralNumber] 
    from 
    (SELECT [FeatId],[Geom].STCentroid() as cent,[CadastralNumber]
      FROM [test1].[Schema1].[t2]
      where [CadastralNumber] = '62:29:0010001:771') as tbl1,
    (SELECT [FeatId],[Geom].STCentroid() as cent,[CadastralNumber]
      FROM [test1].[Schema1].[t2]
      where [CadastralNumber] != '62:29:0010001:771') as tbl2
     

    Вложения:

    • atan2_scr.PNG
      atan2_scr.PNG
      Размер файла:
      195,2 КБ
      Просмотров:
      27
    YXX нравится это.
  10. YXX

    YXX

    trir,
    Подскажите какими программами кроме Mapinfo пользоваться для реализации данного кода?
     
  11. trir

    trir Форумчанин

    SQL Server, SSMS
     
  12. YXX

    YXX

    А какую БД использовать?
     
  13. trir

    trir Форумчанин

    создай новую
     
  14. YXX

    YXX

    Создать то я ее создал, а как связать с mapinfo. Через EasyLoader не очень понял как сделать
     
  15. trir

    trir Форумчанин

  16. YXX

    YXX

    Совсем ничего не понял, и как это пользовать? Я установил SSMS и SQL Server 2014, создал там базу данных и что дальше? Я думал через ODBC как то можно подключится
     
  17. trir

    trir Форумчанин

    Вот документация по EasyLoader
    нужно просто выбрать SQL Server Spatial
    upload_2019-1-5_2-23-16.png

    конечно
     

    Вложения:

  18. YXX

    YXX

    С подключением БД все ок, а с выполнением кода не очень, можете подробнее расписать где что поправить.
    [​IMG]
    [​IMG]
     
  19. trir

    trir Форумчанин

    картинок не вижу
     
  20. YXX

    YXX

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