我试图在一个15码的正方形内对类似的值进行分组(因此是特定的值)。
这是通过取一个纬度/经度值,从中减去或添加另一个值来完成的,如果该条件大于/小于该值,则将分组
我使用PHP尝试过,使用以下代码从mySQL数据库中选择数据:
$summarisedData = mysql_query("SELECT P_ID,COUNT(*)
FROM road_awareness
WHERE
(
(
(
LAT - '$value[LAT]' < (0.006858/69)
AND
LAT - '$value[LAT]' > (-0.006858/69)
)
OR
(
LAT + '$value[LAT]' < (0.006858/69)
AND
LAT + '$value[LAT]' > (-0.006858/69)
)
)
AND
(
(
LON - '$value[LON]' < 0.006858/(cos($lat*M_PI/180)*69)
AND
LON - '$value[LON]' > -0.006858/(cos($lat*M_PI/180)*69)
)
OR
(
LON + $value[LON]' < 0.006858/(cos($lat*M_PI/180)*69)
AND
LON + '$value[LON]' > -0.006858/(cos($lat*M_PI/180)*69)
)
)
)
GROUP BY LAT, LON");
这个代码非常粗糙,有很多重复的代码,我不确定它是否正确。如果有任何帮助,我将不胜感激。
可能最好在road_awareness
中的每条记录上预先计算一些"扇区"值(每个15平方码),而不是在查询之前确定$value[LAT]/$value[LON]属于哪个扇区并按扇区选择。