Php Mysql组'';关闭'';浮动(横向/纵向)

Php Mysql组'';关闭'';浮动(横向/纵向),php,mysql,sql,Php,Mysql,Sql,背景/ 目前,我们有一个100左右的Lat/Lng,可以映射到谷歌地图上。目的是通过从数据库中选择彼此相距几米以内的La/Lo值来显示热点位置 然后将使用组值找到中心点,并在热点地图上画一个圆 当前设置/ 目前我们请求的数据只有id(int)、La(float)、Lo(float) 概念/ 我“认为”需要的是这个 Select * from table Group by ( ( La + 0.30 && La - 0.30) && ( Lo

背景/

目前,我们有一个100左右的Lat/Lng,可以映射到谷歌地图上。目的是通过从数据库中选择彼此相距几米以内的La/Lo值来显示热点位置

然后将使用组值找到中心点,并在热点地图上画一个圆

当前设置/

目前我们请求的数据只有id(int)、La(float)、Lo(float)

概念/

我“认为”需要的是这个

Select * from table
Group by ( 
          ( La + 0.30 && La - 0.30) &&  ( Lo + 0.30 && Lo - 0.30) 
         )

首先,地球不是一个正方形,所以要获得精确的距离,你需要使用哈弗斯函数(查找),然而,对于几米的距离,精度可能并不重要

其次,格度之间的距离在110.574到111.694公里之间变化,而经度之间的距离在111.32到0.0公里之间(是的,在两极为0.0公里)。在任何情况下,0.3在0到35000米之间-不完全是“几个”,除非你的热点在北极和/或南极

第三,忽略糟糕的地理位置,您正在摸索的SQL语句将需要交叉连接和计算距离排序,即使对于一个小数据集,也会非常慢-您需要考虑使用mysql对本地地理类型的任何支持。我知道SQLServer有它们,我怀疑MySQL也有

编辑


是的,请参见问题。

这是什么语法?它看起来像是C#和SQL之间的交叉,即胡言乱语。它只是伪概念代码。