Я использую API Google Maps v3 в своем проекте java. Мне нужно найти евклидову расстояние между двумя точками. Но когда я использую обычную формулу для вычисления евклидова расстояния результат как-то неправильно:вычислить эвклидовое расстояние с координатами карт Google
Например:
Пусть у меня есть две точки Нью-Йорк (43,2994285, -74,2179326) и Стокгольм (59,3293235 , 18.0685808) и я хочу рассчитать евклидово расстояние для этих двух точек:
двойное расстояние = Math.Sqrt (Math.pow (43.2994285 - 59.3293235, 2) + Math.pow (-74.2179326 - 18.0685808, 2)); distance = 93.66834091217483
результат явно не прав.
Тогда я понял, что начальная координата не является (0,0), как в декартовой системе координат. На самом деле составляет 51 ° 28 '38 "N, 0 ° 00' 00" W (WGS 84). Точка референции Greenwich(51.4825766, -0.0076589).
Поэтому процедура для вычисления новых координат, как это:
Нью-Йорк (| 51,4825766 - 43,2994285 |, | -0.0076589- (-74,2179326) |) = Нью-Йорк (8,1831481, 74,2102737)
Стокгольм (| 51.4825766 - 59.3293235 |, | -0.0076589 - 18.0685808 |) = Стокгольм (7.8467469, 18.0762397)
А затем примените формулу для евклидова расстояния. Мой вопрос - это правильный подход, и есть ли другой способ сделать это?
Почему, на ваш взгляд, ответ неправильный? Вы рассчитываете в градусах. – stark
Но фактическое расстояние согласно этому сайту: http://www.freemaptools.com/how-far-is-it-between.htm от Нью-Йорка до Стокгольма 6326.564 км. – myanmar
Эвклидовое расстояние работает только на плоскости – stark