问题描述
给出某个点A以及某固定长度radius,想要得到在以该固定长度为半径的圆内,共存在多少个点。似乎使用下面两个函数都能得到结果,只是实际使用之后,发现两个函数得到的结果有一定程度的误差。希望对postgis有研究的朋友能给一些提示或建议。谢谢!selectcount(t1.A)fromtablet1,tablet2wherest_distance_sphere(t1.A,t2.A)<=radiusandt1.no=x(t1.A为中心。)selectcount(t1.A)fromtablet1,tablet2whereST_DWithin(t2.A,t1.A,radius)(t1.A为中心。)其中,表内的地理对象A是POINT类型的,以毫秒为单位,而半径radius以米为单位。
解决方案
解决方案二:
补充一下,由于使用A以毫秒为单位,所以曾经在使用DWithin()函数的时候尝试把半径变换为毫秒。得到的结果已经很接近了,但是很遗憾的是,还是没能得到完全一致的结果。selectcount(t1.A)fromtablet1,tablet2whereST_DWithin(t2.A,t1.A,radius*1/1852*1/60*3600000)
时间: 2024-08-17 18:43:45