Я хочу вычислить расстояние между всеми географическими местоположениями (представленными как широта и долгота) в результате
таблица MySQL выглядит следующим образом:
- Местоположение 1, Широта:x, долгота: y
- местоположение 2, широта: a, долгота: b
- местоположение 3, широта: c, долгота: d
- ...
Выходными данными должно быть расстояние от Места 1 до Места 2, суммированное с расстоянием между Местом 2 и Местом 3 и т. Д.
Я знаю, как рассчитать расстояние между двумя точками, но яне знаю, как суммировать расстояния и как всегда вычислять расстояние между двумя последовательными местоположениями / строками
Спасибо за вашу помощь!
Редактировать: я планирую использовать следующую функциюрассчитать расстояние между двумя точками
CREATE FUNCTION `GeoDistance`(
latitude1 numeric (9,6),
longitude1 numeric (9,6),
latitude2 numeric (9,6),
longitude2 numeric (9,6)
) RETURNS decimal(10,5)
READS SQL DATA
BEGIN
DECLARE x decimal (20,20);
DECLARE pi decimal (21,20);
SET pi = 3.14159265358979323846;
SET x = sin( lat1 * pi/180 ) * sin( lat2 * pi/180 )
+ cos( lat1 * pi/180 ) * cos( lat2 * pi/180 )
* cos( abs( (lon2 * pi/180) - (lon1 *pi/180)));
SET x = acos( x );
RETURN ( 1.852 * 60.0 * ((x/pi)*180) );
END