sajor2006
@sajor2006
Ну я человек. )

MariaDB st_distance_sphere?

CREATE FUNCTION `st_distance_sphere`(`pt1` POINT, `pt2` POINT)
  RETURNS DOUBLE(10, 2)
  return 6371000 * 2 * ASIN(SQRT(
                                POWER(SIN((ST_Y(pt2) - ST_Y(pt1)) * pi() / 180 / 2),
                                      2) + COS(ST_Y(pt1) * pi() / 180) * COS(ST_Y(pt2) *
                                                                             pi() / 180) *
                                           POWER(SIN((ST_X(pt2) - ST_X(pt1)) *
                                                     pi() / 180 / 2), 2)));


MariaDB [shlagsher]> SELECT st_distance_sphere(ST_GeomFromText('POINT(55.743571 37.621438)', 4326),
ST_GeomFromText('POINT(55.744235 37.624855)')) r;
+--------+
| r      |
+--------+
| 384.43 |
+--------+
1 row in set (0.00 sec)


а mysql 8 (5.7 так же возвращает 384.43 ) возвращает правильно ответ на тот же запрос
226

Подскажите как поправить функцию? или как правильно получить дистанцию.
Спасибо.
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
383.75396597 - расстояние на сфероиде
384.42757677 - расстояние на сфере
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы