如何显示点半径内的邮政编码结果
how to show results of postcodes within a radius of a point
您好,又遇到了另一个问题,哈哈,我有一个 table 有几列; 2其中经纬度和其他是犯罪类型,我需要做的是计算出从某个点开始的x米范围内有多少犯罪
我需要的是找出距离 E:307998m、N:188746m 这个点
250 米、500 米和 1 公里处发生的犯罪数量
帮助将不胜感激,甚至只是朝着正确方向的推动
谢谢
多么有趣的问题。以下内容可能有所帮助。
您可以使用毕达哥拉斯定理计算一个点(在本例中为 [100,100])和任何事件的距离,然后计算小于阈值且类型正确的总数。
# select * from test;
┌─────┬─────┬──────┐
│ x │ y │ type │
├─────┼─────┼──────┤
│ 100 │ 100 │ 1 │
│ 104 │ 100 │ 1 │
│ 110 │ 100 │ 1 │
│ 110 │ 102 │ 1 │
│ 50 │ 102 │ 2 │
│ 50 │ 150 │ 2 │
│ 50 │ 152 │ 3 │
│ 150 │ 152 │ 1 │
│ 40 │ 152 │ 1 │
│ 150 │ 150 │ 2 │
└─────┴─────┴──────┘
(10 rows)
select count(*) from test where sqrt((x-100)*(x-100)+(y-100)*(y-100))<30 and type = 1;
┌───────┐
│ count │
├───────┤
│ 4 │
└───────┘
(1 row)
您好,又遇到了另一个问题,哈哈,我有一个 table 有几列; 2其中经纬度和其他是犯罪类型,我需要做的是计算出从某个点开始的x米范围内有多少犯罪
我需要的是找出距离 E:307998m、N:188746m 这个点
250 米、500 米和 1 公里处发生的犯罪数量帮助将不胜感激,甚至只是朝着正确方向的推动 谢谢
多么有趣的问题。以下内容可能有所帮助。
您可以使用毕达哥拉斯定理计算一个点(在本例中为 [100,100])和任何事件的距离,然后计算小于阈值且类型正确的总数。
# select * from test;
┌─────┬─────┬──────┐
│ x │ y │ type │
├─────┼─────┼──────┤
│ 100 │ 100 │ 1 │
│ 104 │ 100 │ 1 │
│ 110 │ 100 │ 1 │
│ 110 │ 102 │ 1 │
│ 50 │ 102 │ 2 │
│ 50 │ 150 │ 2 │
│ 50 │ 152 │ 3 │
│ 150 │ 152 │ 1 │
│ 40 │ 152 │ 1 │
│ 150 │ 150 │ 2 │
└─────┴─────┴──────┘
(10 rows)
select count(*) from test where sqrt((x-100)*(x-100)+(y-100)*(y-100))<30 and type = 1;
┌───────┐
│ count │
├───────┤
│ 4 │
└───────┘
(1 row)