Расстояние между координатами точек gps в excel

 

GIG_ant

Пользователь

Сообщений: 3102
Регистрация: 24.12.2012

Добрый день, уважаемые гуру Excel.
Собственно вопрос в теме. Присутствует таблица с координатами (широта, долгота — данные будут подгружаться с SQL  таблицы), координат достаточно много, хотелось бы спросить у Вас совет, каким способом можно отобразить данный маршрут на карте и рассчитать пройденное расстояние. Изучал методы Google Maps API, даже есть алгоритм построения HTML кода, но к сожалению в том приложении где мне нужно отобразить эти данные есть проблемы с визуализацией. Может кто уже встречался с подобной задачей, буду рад если подскажите куда копать ).
PS: Если можно как то не через Гугл, тоже подойдет.

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Привет, пропажа! :)

 

GIG_ant

Пользователь

Сообщений: 3102
Регистрация: 24.12.2012

Добрый день. Да я и не пропадал никуда, все время мониторю форум, просто сменил немного направление деятельности.

 

а тригонометрия не устроит?
с расстоянием между точками на сфере с радиусом равным радиусу Земли = 6371 км (радиус для определеннного участва земной поверхности можно уточнить по данным сервисов)

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Сергей

Пользователь

Сообщений: 11251
Регистрация: 01.01.1970

#5

06.10.2017 13:43:46

Цитата
Ігор Гончаренко написал:
равным радиусу Земли = 6371 км

не вводите в заблуждение тут знающие люди в курилке говорят земля плоская :D  

Лень двигатель прогресса, доказано!!!

 

Владимир

Пользователь

Сообщений: 8196
Регистрация: 21.12.2012

#6

06.10.2017 13:55:09

Цитата
GIG_ant написал: просто сменил немного направление деятельности.

Топографом стал?

«..Сладку ягоду рвали вместе, горьку ягоду я одна.»

 

GIG_ant

Пользователь

Сообщений: 3102
Регистрация: 24.12.2012

Я вижу с юмором на планете как всегда все в порядке !  :D
Тригонометрия не подходит.

 

MCH

Пользователь

Сообщений: 3875
Регистрация: 22.12.2012

Делал как то расчет между точками по координатам через GoogleAPI, может пригодится

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#9

06.10.2017 14:49:02

Цитата
GIG_ant написал:
все время мониторю форум

Тогда почему вопрос по расстоянию? Были же на форуме варианты, например,

мой.
Книжка

по преобразованию и проецированию координат. Формулы только выглядят страшно, но решаемы :)
Успехов.

 

GIG_ant

Пользователь

Сообщений: 3102
Регистрация: 24.12.2012

Андрей VG, спасибо за подсказку. Все таки может кто делал через сервисы карт ?

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#11

06.10.2017 15:43:08

Цитата
GIG_ant написал:
может кто делал через сервисы карт?

Да, до чего доводит человека долгое отсутствие на форуме.
А решение Михаила (MCH) разве не об этом?

 

GIG_ant

Пользователь

Сообщений: 3102
Регистрация: 24.12.2012

Андрей VG, да уж )). Пропустил решение Михаила, сейчас буду штудировать.

 

GIG_ant

Пользователь

Сообщений: 3102
Регистрация: 24.12.2012

#13

06.10.2017 16:29:30

Цитата
MCH написал:
Делал как то расчет между точками по координатам через GoogleAPI, может пригодится

Очень похоже на то что нужно. Спасибо. Буду разбираться.

Редко но метко …

Given a list of geographic coordinate pairs, you can implement the Haversine formula directly in Excel.


The simplest way to use this (or a more accurate, but I think it’s not your case) formula consists into press Alt+F11 to open the VBA Editor, click Insert --> Module and then (copy and) paste e.g. the code kindly suggested by blah238.

Public Function getDistance(latitude1, longitude1, latitude2, longitude2)  
earth_radius = 6371  
Pi = 3.14159265  
deg2rad = Pi / 180  

dLat = deg2rad * (latitude2 - latitude1)  
dLon = deg2rad * (longitude2 - longitude1)  

a = Sin(dLat / 2) * Sin(dLat / 2) + Cos(deg2rad * latitude1) * Cos(deg2rad * latitude2) * Sin(dLon / 2) * Sin(dLon / 2)  
c = 2 * WorksheetFunction.Asin(Sqr(a))  

d = earth_radius * c  

getDistance = d  

End Function

There will be a new custom getDistance function (unit = kilometer) available in your spreadsheet which accepts four parameters, i.e. the two pairs of coordinates, as follow:

getDistance(latitude1, longitude1, latitude2, longitude2)

where latitude1, longitude1, latitude2, longitude2 should be replaced by their relative cell references.

enter image description here

В этом учебном материале по Excel мы рассмотрим примеры того, как рассчитать расстояние между двумя точками на координатной плоскости.

Как в Excel рассчитать расстояние между двумя точками

Основная формула

=КОРЕНЬ((x2x1)^2+(y2y1)^2)

Описание

Чтобы вычислить длину отрезка по координатам двух точек на линии, вы можете использовать формулу расстояния, адаптированную для синтаксиса формул Excel. В показанном примере формула в G5, имеет следующий вид:

=КОРЕНЬ((D5B5)^2+(E5C5)^2)

где координаты двух точек указаны в столбцах с B по E.

Пояснение

Длину линии можно рассчитать по формуле расстояния, которая выглядит так:

Расстояние — это квадратный корень из изменения x в квадрате плюс изменение y в квадрате, где две точки даны в форме (x1, y1) и (x2, y2).
Формула расстояния — это пример примененной теоремы Пифагора, где изменение x и изменение y соответствуют двум сторонам прямоугольного треугольника, а гипотенуза — вычисляемому расстоянию.
В Excel формулу расстояния можно записать с помощью оператора экспоненты ^ и функции КОРЕНЬ следующим образом:

=КОРЕНЬ((D5B5)^2+(E5C5)^2)

В соответствии с порядком операций Excel, изменение x и изменение y вычисляется, затем возводится в квадрат, и два результата складываются вместе и передаются в функцию КОРЕНЬ, которая возвращает квадратный корень из суммы в качестве окончательного результата:

=КОРЕНЬ((D5B5)^2+(E5C5)^2)

=КОРЕНЬ((6)^2+(8)^2)

=КОРЕНЬ(36+64)

=КОРЕНЬ(100)

=10

Функцию СТЕПЕНЬ также можно использовать вместо оператора экспоненты ^ следующим образом:

=КОРЕНЬ(СТЕПЕНЬ(D5B5;2)+СТЕПЕНЬ(E5C5;2))

с тем же результатом.

I’m currently drawing up a mock database schema with two tables: Booking and Waypoint.

  • Booking stores the taxi booking information.

enter image description here

  • Waypoint stores the pickup and drop off points during the journey, along with the lat lon position. Each sequence is a stop in the journey.

enter image description here

How would I calculate the distance between the different stops in each journey (using the lat/lon data) in Excel?

Is there a way to programmatically define this in Excel, i.e. so that a formula can be placed into the mileage column (Booking table), lookup the matching sequence (via bookingId) for that journey in the Waypoint table and return a result?

Example 1:

A journey with 2 stops:

1   1   1   MK4 4FL, 2, Levens Hall Drive, Westcroft, Milton Keynes 52.002529   -0.797623
2   1   2   MK2 2RD, 55, Westfield Road, Bletchley, Milton Keynes   51.992571   -0.72753

4.1 miles according to Google, entry made in mileage column in Booking table where id = 1

Example 2:

A journey with 3 stops:

6   3   1   MK7 7DT, 2, Spearmint Close, Walnut Tree, Milton Keynes 52.017486   -0.690113
7   3   2   MK18 1JL, H S B C, Market Hill, Buckingham              52.000674   -0.987062
8   3   1   MK17 0FE, 1, Maids Close, Mursley, Milton Keynes        52.040622   -0.759417

27.7 miles according to Google, entry made in mileage column in Booking table where id = 3


zss



Сообщ.
#15

,
31.10.08, 11:48

    Цитата AntiAspirant @ 30.10.08, 19:31

    zss, там в статье есть приатаченный пример расчетов на Excelе (пример), попробуй туда вбить контрольные величины, получится верный результат или нет?

    1. Попробовал использовать эту таблицу.

    Там в примере координаты 55,97277778
    а мне GPS отдает в виде 5540,…. (WGS 84)

    Тоесть тут на лицо формат координат.
    Что за формат используется для расчетов и как в него перевести ?

    2. Вот пример, что у меня. Я замерил координаты между 2-мя точками

    2.1 Расстояние 30 метров

    latitude = 5540,0163357222218
    longtitude = 3728,0001688888888

    latitude = 5540,0165026111108
    longtitude = 3728,0005020833332

    Результат 34 метра

    2.2 Расстояние 50 метров

    latitude = 5540,0155025277782
    longtitude = 3728,0011686111111

    latitude = 5540,0156674999998
    longtitude = 3728,0020009722220

    Результат = 73 метра

    2.3. Расстояние 80 метров

    latitude = 5540,0165011944446
    longtitude = 3728,0001693333334

    latitude = 5540,0160009444444
    longtitude = 3728,0160005000002

    Результат = 1350 метров !!!

    Что за хрень ?
    И вообще — это нормальная точность для 1 и 2 случая ?

    Цитата Fts @ 31.10.08, 05:32

    http://www.astronet.ru/db/msg/1190817/node25.html
    Вычисляете геоцентрический вектор положения каждой из двух точек (координаты вектора зависят от долготы, широты, высоты над уровнем геоида), беря соответствующее сжатие и большую полуось для модели WGS84 (там в таблице есть). Модуль разности векторов и будет расстоянием.

    спасибо — почитаю

    Сообщение отредактировано: zss — 31.10.08, 12:58

    Понравилась статья? Поделить с друзьями:
  • Расстояние между заголовком текстом word
  • Рассказать об автокопирование формулы ms excel
  • Рассказ в формате word
  • Рассадочные карточки шаблон word скачать бесплатно
  • Рассадочные карточки для гостей шаблоны скачать бесплатно word