Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL空间表中两点之间的精确距离(KMs)_Php_Mysql_Spatial - Fatal编程技术网

Php MySQL空间表中两点之间的精确距离(KMs)

Php MySQL空间表中两点之间的精确距离(KMs),php,mysql,spatial,Php,Mysql,Spatial,你好 我看过一些关于这个话题的帖子和答案,但我认为给出的结果可能并不准确 假设我在MySQL空间表中有具有不同经度和纬度的点的行。我只想通过一个简单的SELECT查询来检索它们之间的距离。我试过: GLENGTH( LINESTRINGFROMWKB( LINESTRING( GEOMFROMTEXT( ASTEXT( POINTFROM

你好

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

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

GLENGTH(
        LINESTRINGFROMWKB(
            LINESTRING(
                GEOMFROMTEXT(
                    ASTEXT(
                        POINTFROMWKB(
                            POINT( X(user_location) , Y(user_location))))),
                GEOMFROMTEXT(
                    ASTEXT(
                        POINTFROMWKB(
                            POINT( $latitude, $longitude )))))))*100
我知道这有点“难看”,恐怕结果不是以公里为单位的


我该怎么做?非常感谢。

您使用的方法根本无法提供准确的结果。因为使用了简单的笛卡尔距离公式。你也可以在评论中读到,它不能用在球面上,它在笛卡尔平面上

在这里,有一个修改后的公式和如何使用它解释清楚,看看它。你需要修改它以适应你的目的。但它肯定会指导你如何继续


希望它能帮上忙…

您使用的方法根本不会给您提供准确的结果。因为使用了简单的笛卡尔距离公式。你也可以在评论中读到,它不能用在球面上,它在笛卡尔平面上

在这里,有一个修改后的公式和如何使用它解释清楚,看看它。你需要修改它以适应你的目的。但它肯定会指导你如何继续


希望它有帮助……

格式化您的公式以使其可读性会有所帮助。此外,你要寻找的是所谓的“哈弗斯线”或“大圆”距离公式。另外:这取决于你需要多精确。如果你正在做一个商店查找应用程序,哈弗森公式是好的。如果你正在为一座桥梁做工程规划,你需要学习地图投影;地球不是完美的球形。这将有助于格式化您的公式,使其可读性。此外,你要寻找的是所谓的“哈弗斯线”或“大圆”距离公式。另外:这取决于你需要多精确。如果你正在做一个商店查找应用程序,哈弗森公式是好的。如果你正在为一座桥梁做工程规划,你需要学习地图投影;地球不是完美的球形。谢谢,我来看看。谢谢,我来看看