GIG_ant Пользователь Сообщений: 3102 |
Добрый день, уважаемые гуру Excel. |
vikttur Пользователь Сообщений: 47199 |
Привет, пропажа! |
GIG_ant Пользователь Сообщений: 3102 |
Добрый день. Да я и не пропадал никуда, все время мониторю форум, просто сменил немного направление деятельности. |
а тригонометрия не устроит? Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
|
Сергей Пользователь Сообщений: 11251 |
#5 06.10.2017 13:43:46
не вводите в заблуждение тут знающие люди в курилке говорят земля плоская Лень двигатель прогресса, доказано!!! |
||
Владимир Пользователь Сообщений: 8196 |
#6 06.10.2017 13:55:09
Топографом стал? «..Сладку ягоду рвали вместе, горьку ягоду я одна.» |
||
GIG_ant Пользователь Сообщений: 3102 |
Я вижу с юмором на планете как всегда все в порядке ! |
MCH Пользователь Сообщений: 3875 |
Делал как то расчет между точками по координатам через GoogleAPI, может пригодится |
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#9 06.10.2017 14:49:02
Тогда почему вопрос по расстоянию? Были же на форуме варианты, например, мой. по преобразованию и проецированию координат. Формулы только выглядят страшно, но решаемы |
||
GIG_ant Пользователь Сообщений: 3102 |
Андрей VG, спасибо за подсказку. Все таки может кто делал через сервисы карт ? |
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#11 06.10.2017 15:43:08
Да, до чего доводит человека долгое отсутствие на форуме. |
||
GIG_ant Пользователь Сообщений: 3102 |
Андрей VG, да уж )). Пропустил решение Михаила, сейчас буду штудировать. |
GIG_ant Пользователь Сообщений: 3102 |
#13 06.10.2017 16:29:30
Очень похоже на то что нужно. Спасибо. Буду разбираться. Редко но метко … |
||
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.
В этом учебном материале по Excel мы рассмотрим примеры того, как рассчитать расстояние между двумя точками на координатной плоскости.
Основная формула
=КОРЕНЬ((x2—x1)^2+(y2—y1)^2) |
Описание
Чтобы вычислить длину отрезка по координатам двух точек на линии, вы можете использовать формулу расстояния, адаптированную для синтаксиса формул Excel. В показанном примере формула в G5, имеет следующий вид:
=КОРЕНЬ((D5—B5)^2+(E5—C5)^2) |
где координаты двух точек указаны в столбцах с B по E.
Пояснение
Длину линии можно рассчитать по формуле расстояния, которая выглядит так:
Расстояние — это квадратный корень из изменения x
в квадрате плюс изменение y
в квадрате, где две точки даны в форме (x1, y1) и (x2, y2).
Формула расстояния — это пример примененной теоремы Пифагора, где изменение x
и изменение y
соответствуют двум сторонам прямоугольного треугольника, а гипотенуза — вычисляемому расстоянию.
В Excel формулу расстояния можно записать с помощью оператора экспоненты ^
и функции КОРЕНЬ следующим образом:
=КОРЕНЬ((D5—B5)^2+(E5—C5)^2) |
В соответствии с порядком операций Excel, изменение x
и изменение y
вычисляется, затем возводится в квадрат, и два результата складываются вместе и передаются в функцию КОРЕНЬ, которая возвращает квадратный корень из суммы в качестве окончательного результата:
=КОРЕНЬ((D5—B5)^2+(E5—C5)^2) =КОРЕНЬ((6)^2+(8)^2) =КОРЕНЬ(36+64) =КОРЕНЬ(100) =10 |
Функцию СТЕПЕНЬ также можно использовать вместо оператора экспоненты ^
следующим образом:
=КОРЕНЬ(СТЕПЕНЬ(D5—B5;2)+СТЕПЕНЬ(E5—C5;2)) |
с тем же результатом.
I’m currently drawing up a mock database schema with two tables: Booking
and Waypoint
.
- Booking stores the taxi booking information.
- 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.
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