我有2个表User_places,我可以在其中看到每个用户的家庭位置由2个独立的属性定义:经度和纬度。 我有第二个表属性'Area',它将每个邻域定义为多边形 - jsonb格式 - “[{”纬度“:XXXXX,”经度“:YYYYY},{”纬度“:ZZZZZ,”经度“:AAAAA },{ “纬度”:BBBBBB “经度”:CCCCC},{ “纬度”:DDDDD “经度”:EEEEE}]”
有人知道如何检查特定用户是否住在Postgresql的特定邻居中吗?
答案 0 :(得分:0)
我会假设你的postgresql副本上安装了Postgis?因为它具有postgresql的所有几何和地理功能扩展。
您可以使用ST_Contains检查某个点是否包含在给定的多边形中,这会返回一个布尔值。
select ST_Contains(neigbourhood.polygon,User_place.geom)
如果您在User_places表中没有geom point值,则可以使用ST_SetSRID函数和ST_MakePoint函数创建此值。
例如 - SELECT ST_SetSRID(ST_MakePoint(LAT, LON),SRID);
其中SRID是您正在使用的投影的参考,例如4326用于WGS 84`
我建议在postgresql中确保你的所有地理表都包含geoms,因为它使比较更容易。
作为参考,获得地理和几何数据库问题答案的好地方是https://gis.stackexchange.com/
答案 1 :(得分:0)
reload()