Координаты GPS: 1 км квадрат вокруг точки - PullRequest
15 голосов
/ 23 октября 2010

Я надеялся, что кто-то там сможет дать мне уравнение для вычисления 1 км квадрата (X от a.aaa до b.bbb, Y от c.ccc до c.ccc) вокруг заданной точки, скажем lat = 53.38292839 и lon = -6.1843984? Мне также понадобятся 2км, 5км и 10км квадратов вокруг точки.

Я пытался поискать, но безрезультатно ... Уже поздно, и я надеялся, что кто-нибудь мог бы быстро исправить это, прежде чем я углублюсь в тригонометрию ...

Я буду запускать все это в Javascript, хотя любой язык в порядке.

Ответы [ 3 ]

38 голосов
/ 23 октября 2010

Если бы мир был идеальной сферой, согласно базовой тригонометрии ...

Градусы широты имеют одинаковое линейное расстояние в любой точке мира, потому что все линии широты имеют одинаковый размер. Таким образом, 1 градус широты равен 1/360 окружности Земли, что составляет 1/360 от 40 075 км.

Длина линий долготы зависит от широты. Линия долготы на широте l будет cos (l) * 40 075 км. Один градус долготы будет 1/360.

Так что вы можете работать в обратном направлении от этого. Предполагая, что вы хотите что-то очень близкое к одному квадратному километру, вам понадобится 1 * (360/40075) = 0,008983 градуса широты.

На вашей примерной широте 53,38292839 линия долготы будет cos (53,38292839) * 40075 = [приблизительно] 23903,297 км в длину. Таким образом, 1 км равен 1 * (360 / 23903,297) = 0,015060 градусов.

На самом деле Земля не идеальная сфера, она более жирная на экваторе. И вышеупомянутое дает действительно хороший ответ для большей части полезной области мира, но склонно немного странно подходить к полюсам (где прямоугольники в длинных / латах перестают выглядеть как прямоугольники на глобусе). Например, если вы были на экваторе, гипотетическая линия долготы составляет 0 км. То, как вы справитесь с необходимостью рассчитывать градусы, зависит от того, зачем вам нужны цифры.

4 голосов
/ 23 октября 2010

Вот кое-что из моих заметок, которые будут использоваться на Android с его десятичным GPS.

Лат Лонг: Нью-Йорк 40N 47 73W 58 40,783333 73,966667

DC стирки 38N 53 77W 02 38,883333 77,033333

урожайность = 209 миль !! ОЧЕНЬ ЗАКРЫТЬ

Расстояние (миль) (х) = 69,1 (лат2-лат1) Расстояние (миль) (y) = 53,0 (long2 - long1) Как ворона летит sqrt (x2 + y2) ... дух! @

дельта (LAT) / миля = 0,014472 дельта (ДОЛГО) / миля = 0,018519

Использование коробки в качестве приближения Чтобы найти кого-то в пределах 100 миль (100 север / 100 юг, 100 E / 100 Вт) От 0,0 -14,472 / + 14,472, -18,519 / 18,519

1 голос
/ 12 января 2015

Более простым способом создания квадрата GPS с учетом центра было бы использование косвенного алгоритма Винсенти. Здесь код Javascript показывает, как это сделать http://www.movable -type.co.uk / scripts / latlong.html . Создание квадрата с помощью круга не сложно. Квадраты равны расстоянию до каждой точки. Таким образом, учитывая центральную точку, расстояние от центра, измените азимут от 0 или любое число в зависимости от поворота квадрата и увеличения на 90 градусов или радиан PI / 2. Увеличивая на 90 градусов каждый раз, вы получите квадрат с круглым пространством.

Я использую это для генерации точек GPS вокруг центральной точки с заданным расстоянием .---. - / - 0-- - / - .---.

...