我正在尝试将15平方码内的相似值分组(因此具体值)。
这是通过获取纬度/经度值,从中减去或添加另一个值来完成的,如果此条件大于/小于该值,则组
我通过使用以下代码从mySQL DB中选择数据来尝试使用PHP:
$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");
这段代码非常hacky,有很多重复的代码,我不确定它是否正确。非常感谢任何帮助。
答案 0 :(得分:0)
可能最好在road_awareness
中的每条记录上预先计算一些“扇区”值(每个15码方格),并且在查询之前确定哪个扇区落在你的$ value [LAT] / $ value [LON]并按部门选择。