0

问候。

我看过一些关于这个主题的帖子和答案,但我认为给出的结果可能并不准确。

假设我在 MySQL 空间表中具有不同点的经度和纬度行。我只想用一个简单的 SELECT 查询来检索它们之间的距离。我努力了:

GLENGTH(
        LINESTRINGFROMWKB(
            LINESTRING(
                GEOMFROMTEXT(
                    ASTEXT(
                        POINTFROMWKB(
                            POINT( X(user_location) , Y(user_location))))),
                GEOMFROMTEXT(
                    ASTEXT(
                        POINTFROMWKB(
                            POINT( $latitude, $longitude )))))))*100

我知道它的那种“丑陋”,恐怕结果不是以千米为单位给出的。

我该怎么做?非常感谢。

4

1 回答 1

3

您使用的方法根本不会给您准确的结果。由于GLENGTH使用简单的笛卡尔距离公式。您也可以在 GLENGTH 的 MySQL 页面上的评论中阅读它不能用于球形表面,它适用于笛卡尔平面。

在这个Stackoverflow 答案中,有一个修改后的公式,以及如何使用它,解释清楚,看看它。您需要对其进行修改以适合您的目的。但它肯定会指导您如何进行。

希望能帮助到你...

于 2012-09-27T17:26:17.850 回答