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

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

Discussion in 'ПЕСОЧНИЦА' started by Slon747, Dec 4, 2015.

  1. ИЛЮХАA

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

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

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

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

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

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

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

    Кстати, есть ли готовые формулы для сдвига точки по отрезку, в сферической системе? Т.е. есть точки А и В, описанные в виде Latitude, Longitude. Нужно получить координаты точки, расположенной между А и В на расстоянии n-метров.
    --- Сообщения объединены, Dec 4, 2015, Оригинальное время сообщения: Dec 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. Ну и, конечно, это только для небольших расстояний будет достаточно точно работать.
     
    Last edited: Dec 4, 2015
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice