преобразование расстояния в координаты [дубликат]

#c #math #geometry #geography

#c #математика #геометрия #география

Вопрос:

Комментарии:

1. Ваш вопрос неверен. Окружность не является многоугольником, и вы не можете измерить радиус (единицу линейного расстояния) в градусах или радианах (единицу вращения). Название вашего вопроса также бессмысленно.

2. Я не знаю, чему они учат сейчас, но примерно 55 лет назад меня учили, что круг — это многоугольник с бесконечным числом сторон.

3. Подразумевалось бесконечное количество сторон. Я полагаю, что его вопрос заключается в том, что, учитывая точку на карте широты / длины и с окружностью, нарисованной в масштабе карты так, чтобы ее радиус составлял, скажем, 1000 метров, можно ли найти широту / длину любой точки на окружности этого круга, и это.

4. Не могли бы вы отредактировать, чтобы связать это программирование? В противном случае это будет закрыто как не по теме или, возможно, перенесено в географические информационные системы .

5. Ну, дело в том, что я рассматриваю правильный многоугольник с большим количеством сторон как окружность. В любом случае, у меня есть расстояние в метрах, равное радиусу окружности вокруг точки широты / широты.

Ответ №1:

О боже, географические координаты могут быть занозой в спине. Прежде всего, я предполагаю, что под географическими координатами вы говорите о геодезических координатах (широта / долгота).

Во-вторых, вы не можете найти «радиус» в радианах или градусах. Почему, спросите вы? Ну, один градус долготы на экваторе намного длиннее, чем один градус долготы вблизи северного или южного полюса. Дуга широты в один градус также изменяется в зависимости от вашего местоположения на земле, поскольку земля не является идеальной сферой. Обычно это моделируется как эллипсоид.

При этом, вот два способа отображения координат многоугольника на широтные координаты:

1) Если вы чувствуете себя полным задирой, вы можете посчитать в latlon. Много тригонометрии, легко ошибиться… НЕ ДЕЛАЙТЕ ЭТОГО. Я просто включаю эту опцию здесь, чтобы вы знали, что это возможно.

2) Преобразуйте ваши геодезические координаты в UTM. Затем вы можете сделать все, что вам нужно, в метрах (т. Е. Найти вершины многоугольника), а затем преобразовать полученный UTM обратно в геодезический. Лично я думаю, что это правильный путь.

Ответ №2:

Хорошо, учтите, что на экваторе (0 градусов широты) один градус долготы равен приблизительно 60 морским милям. На любом полюсе (90 градусов широты) один градус долготы равен 0 морским милям. Насколько я помню, косинус широты, умноженный на 60, даст вам приблизительное расстояние в морских милях на этой широте одного градуса долготы.

Однако, насколько точным вы будете, нужно будет учитывать используемую вами картографическую проекцию. Для аэронавигационных карт они используют конформную коническую проекцию Ламберта, что означает, что расстояния точно точны только вдоль двух широт, которые конус разрезает сферу земли. Но если приближение достаточно хорошее, вам может не понадобиться точность.

Для преобразования одна морская миля равна 1,852 км. Если я правильно выполнил арифметику (без гарантии, мне за 70), это означает, что метр равен (за исключением случаев, когда вы действительно приближаетесь к полюсам) 0,0000009 градуса широты. Оно также равно 0,0000009 градусам долготы на экваторе. Если вы не на экваторе, разделите 0,0000009 на косинус широты, чтобы получить градусы долготы.

Итак, окружность радиусом 1000 метров на широте 45 градусов будет означать радиус 0,0009 градуса широты и 0,0009 / 0,707 градуса долготы. Приблизительно, конечно.

Все это из памяти, так что отнеситесь к этому с недоверием. Если вы действительно хотите принять участие, используйте Google geographic equations или что-то в этом роде.

Ответ №3:

Проверьте http://trac.osgeo.org/proj/wiki/GeodesicCalculations . В зависимости от требуемой точности это может стать довольно сложным, поэтому вам, вероятно, лучше начать с некоторого существующего кода.