gifts2017

Расчет расстояния по GPS

Опубликовал Николай Зевеке (zekrus) в раздел Обработки - Универсальные обработки

Работая с программами прокладки маршрутов, использующих координаты GPS возникает необходимость получить расстояние между точками (например, Антор динамически рассчитывает и не хранит расстояние от последней точки до дома при поездке назад, а в отчетах оно нужно).

Для этих целей была подготовлена программа расчета расстояния между двумя координатами GPS.

Порядок действий:

1. Указываем координаты точек (первой и второй).

2. Жмем кнопку "Команда1"

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Расчет расстояния по GPS
.epf 5,92Kb
24.04.13
58
.epf 5,92Kb 58 Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Максим Солдатов (Maxis) 24.04.13 15:45
Как обработка никуда не годится из-за плохого интерфейса: правильно "расСтояние", вместо "Команда1" можно было бы написать "Рассчитать", да и для координат можно было написать русские "широта" и "долгота".
2. Николай Зевеке (zekrus) 24.04.13 16:19
(1) Maxis, Интересный случай коллега "ДыНя"....! Попробуйте проверить ваше замечание в ворде. На счет работы с обработкой большого количества желающих - сомневаюсь (делал на коленке и слава богу, что на это хватило времени).
3. kabz (Kabz) 24.04.13 16:51
а сделать тоже самое в запросе вот было бы супер
4. Николай Зевеке (zekrus) 24.04.13 17:20
(3) Kabz, Не вопрос, кто оплатит время?
5. Роман Осадченко (cleaner_it) 01.05.13 03:42
(2) Действительно. Это всего лишь выражение отношения к этим людям
6. Роман Осадченко (cleaner_it) 01.05.13 03:50
(0) Констант слишком много. В этом плане алгоритм (первая ссылка в гугле) вызывает намного большее доверие: http://miniq.ru/article/gps-2-distance-js/
7. Роман Осадченко (cleaner_it) 01.05.13 03:53
Блин. Хотел изображение приложить, а сменил аватарку:))
8. Николай Зевеке (zekrus) 01.05.13 06:18
(5) cleaner_it, Дикий согласен (это взаимно поверьте).
9. Николай Зевеке (zekrus) 01.05.13 06:19
(6) cleaner_it, Попробуйте этим алгоритмом воспользоваться в 1с (может у вас хоть выйдет).
10. Николай Зевеке (zekrus) 01.05.13 06:20
(8) zekrus, (7) cleaner_it, А для чего изображение?
11. Доржи Балбаров (Angeros) 17.05.13 04:45
Тянет на статью, но не разработку. Лучше всего опишите принцип в виде статьи, а обработку мы и сами напишем...
12. Николай Зевеке (zekrus) 17.05.13 08:15
(11) Angeros, Я как то сам решу куда и что писать в код или в статью. Спасибо.
13. Бондарчук Тарас (Bond) 16.11.13 12:02
zekrus, скажите какая точность на маленьких расстояниях? и может знаете как включить в расчет высоту?
14. Николай Зевеке (zekrus) 16.11.13 12:53
(13) Bond, Я взял формулу расчета по кривизне радиус задан в формуле, думаю что его и надо менять на вашу высоту. Точность аналогична картам яндекса.
15. Бондарчук Тарас (Bond) 16.11.13 13:06
(14)не скажете, что означают значения 3958.75 и 1609.344? 57.2958 - это я так понял перевод в радианы?
16. Николай Зевеке (zekrus) 16.11.13 16:25
(15) Bond, 3958.75 радиус земли. 1609.344 это перевод миль в метры.
17. Роман Хусяинов (rom-x) 18.08.16 08:48
Фактически вся обработка сводится к одной строчке:

	ПереводГрадусовВРадианы = 0.0174532925;
	РасчитанноеРасстояние = 6378137 * acos( cos( Объект.ШиротаОт * ПереводГрадусовВРадианы) * cos( Объект.ШиротаДо * ПереводГрадусовВРадианы ) * cos( Объект.ДолготаОт * ПереводГрадусовВРадианы - Объект.ДолготаДо * ПереводГрадусовВРадианы) + sin( Объект.ШиротаОт * ПереводГрадусовВРадианы ) * sin( Объект.ШиротаДо * ПереводГрадусовВРадианы ) ) ;
	
	Если Цел(РасчитанноеРасстояние/1000) <> 0  Тогда
		Объект.Расстояние = Формат(РасчитанноеРасстояние/1000, "ЧДЦ=2") + " км.";
	Иначе
		Объект.Расстояние = Формат(РасчитанноеРасстояние, "ЧДЦ=2") + " м.";
	КонецЕсли; 

...Показать Скрыть

18. Канат Джумадылов (Fox-trot) 18.08.16 09:33
так земля не плоская разве? а радиус земли, величина постоянная разве?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа