gpt4 book ai didi

php - 使用st_distance在mysql中按距离对用户进行排序

转载 作者:行者123 更新时间:2023-11-29 02:57:35 25 4
gpt4 key购买 nike

我已经阅读了一些这方面的资料,但是几乎没有任何关于在 mysql 中使用点和 st_distance 函数来完成它的信息。我想这是有道理的,因为根据 http://bugs.mysql.com/bug.php?id=70494直到去年中旬才记录下来。我见过的几乎所有解决方案都使用单独的 long 和 lat 列,然后将它们放入 haversine 公式中,如下所示:sorting distance in MySQL PHP由于几何数据类型和空间函数的存在,这似乎是一种非常困惑的实现方式。

到目前为止我的 table 是:

用户名 - varchar

位置 - Point(1 1) 或类似的东西

我想选择一个用户,然后显示离他们最近的 10 个左右的用户。是否可以完全通过 SQL 使用点和 st_distance 函数来完成此操作,还是我必须进行一些更改并改用半正弦公式?

最佳答案

Is it possible to do this entirely through SQL using points and the st_distance function, or will I have to make some changes and use the haversine formula instead?

根据 Geometry Class 记录:

Geometry is the root class of the hierarchy. It is a noninstantiable class but has a number of properties, described in the following list, that are common to all geometry values created from any of the Geometry subclasses.

[ deletia ]

All calculations are done assuming Euclidean (planar) geometry.

[ deletia ]

For example, in different coordinate systems, the distance between two objects may differ even when objects have the same coordinates, because the distance on the planar coordinate system and the distance on the geocentric system (coordinates on the Earth's surface) are different things.

因此 MySQL 的空间扩展(包括其 ST_Distance() 函数)不能用于计算 geodesics例如great-circle distance ,这就是你所追求的。正如您所推断的那样,您将不得不使用类似 Haversine 的公式。相反。

Google Developers 网站上有一个很好的教程:Creating a Store Locator with PHP, MySQL & Google Maps .

关于php - 使用st_distance在mysql中按距离对用户进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28853778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com