Рассчитайте расстояние от Точки до Линестринга (в MySQL 5.7)
Как вы находите минимальное расстояние от данной точки до линейной строки, используя MySQL ST_Distance_Sphere
функционировать?
Версия MySQL: 5.7
Вы можете найти расстояние от точки до многоточия (в этом примере "многоточечность" имеет 3 точки) с помощью следующего запроса в MySQL-5.7:
SELECT St_distance_sphere(
Point(-78.020980, 33.924749),
St_mpointfromtext(
'MULTIPOINT (
-121.74085998535 36.207740783691,
-121.64459991455 36.131820678711,
-121.61689758301 36.087413787842
)'
))
/ 1000 AS distance_km;
Результат запроса: distance_km = 3944.6957
Пример точки и линейной строки:
Point(-78.020980, 33.924749)
LINESTRING(
-121.74085998535 36.207740783691,
-121.73951721191 36.20726776123,
-121.73829650879 36.206771850586,
-121.73760986328 36.205757141113,
-121.73580169678 36.204746246338,
-121.73380279541 36.204647064209
)
Я пытаюсь создать действительный запрос, подобный приведенному ниже (ниже недействительный):
mysql> SET @point = ST_GeomFromText('Point(-78.020980, 33.924749)');
mysql> SET @linestring = ST_GeomFromText('LINESTRING(
-121.74085998535 36.207740783691,
-121.73951721191 36.20726776123,
-121.73829650879 36.206771850586,
-121.73760986328 36.205757141113,
-121.73580169678 36.204746246338,
-121.73380279541 36.204647064209
)');
mysql> SELECT ST_Distance_Sphere(@point, @linestring);
Ожидаемый результат: "минимальное" расстояние от точки до линии