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

Преобразование полярных координат в декартовы

Тема в разделе "ПЕСОЧНИЦА", создана пользователем Slon747, 4 дек 2015.

  1. ИЛЮХАA

    ИЛЮХАA Форумчанин

    Тоже пишу немного под андроид, но пока не использовал Map API. Подозреваю, что оно работает как раз только в географических координатах (долгота/широта). Хотя расстояния "по прямой", наверно, тоже умеет определять. При таких небольших расстояниях можно считать треугольник плоским (при стороне 1 км разница по дуге и по хорде 0,001 мм примерно, а при 10 км уже целый 1 мм). А вот обратно получить из расстояний от известных точек (линейная засечка) географические координаты (это углы, если что), чтоб на карте отобразить, умеет ли? Или вам это не надо?
     
  2. Но если я работаю с готовым треугольником, да еще с таким малым и с такой низкой точностью, то зачем мне учитывать широту?
    --- Сообщения объединены, 4 дек 2015, Оригинальное время сообщения: 4 дек 2015 ---
    Google работает в широте/долготе. Расстояние тоже может вычислить, но я получаю расстояние java-кодом (учитывая кривизну), чтобы не обращаться у гуглу.

    Думаю, не понадобится.
    Если у меня на прямой будет точка H, спущенная с вершины треугольника, то получив соотношение отрезка АВ к АH буду знать, насколько мне нужно сместиться по отрезку АВ, находящихся в полярных сферических координатах на карте.
     
  3. ИЛЮХАA

    ИЛЮХАA Форумчанин

    Ну да, вроде, логично... Отношение разностей координат A и B к разностям A и H будет пропорционально соотношению длин отрезков.
     
  4. В.Шуфотинский

    В.Шуфотинский Модератор Команда форума

    Вы уж как-то определитесь. Началась тема ведь с
    теперь широта уже не мешает. Вы другой алгоритм нашли?
     
  5. Возможно, я не совсем понятно выразился. Я решил не заморачиваться преобразованием координат, а построить плоский треугольник. Длины сторон мне известны. Получаю перпендикуляр на этом треугольнике (с точкой Н), получаю смещение точки H относительно точки А, после чего уже на своей сферической карте выставляю ее, используя соотношение отрезков.

    Кстати, есть ли готовые формулы для сдвига точки по отрезку, в сферической системе? Т.е. есть точки А и В, описанные в виде Latitude, Longitude. Нужно получить координаты точки, расположенной между А и В на расстоянии n-метров.
    --- Сообщения объединены, 4 дек 2015, Оригинальное время сообщения: 4 дек 2015 ---
    Кстати, есть ли готовые формулы для сдвига точки по отрезку, в сферической системе? Т.е. есть точки А и В, описанные в виде Latitude, Longitude. Нужно получить координаты точки, расположенной на прямой А и В на расстоянии в n-метров от точки А.

    P.S. Погуглив, нашел кое-что: Algorithm for offsetting a latitude/longitude by some amount of meters.
    Но там просто смещение, а не по лучу.
     
  6. ИЛЮХАA

    ИЛЮХАA Форумчанин

    Так из соотношений формулы сами почти получились. Идея с соотношениями хорошая, мне кажется. Не надо тригонометрию и расстояние до центра Земли привлекать для перехода от линейных к угловым величинам. Ну что-то типа такого: Lh = ((Lb - La) * AH + La * AB) / AB, где Lh, La, Lb - координаты соответственно точек H, A, B (широты или долготы), La < Lh < Lb; AH и AB - длины отрезков. Правда, нюансы могут быть на экваторе, полюсах, нулевом меридиане...

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