如何知道该点位于postgresql中的geom(多多边形)中

如何知道该点位于postgresql中的geom(多多边形)中,sql,postgresql,gis,postgis,Sql,Postgresql,Gis,Postgis,如何知道点是否位于多边形内。我已经写了这个查询,但不知怎么的,它现在正在通过我给出的点工作,它在多边形内部 SELECT area, id st_contains(geom, ST_GeomFromText('POINT(-497680.2968362156 7868611.618275354)', 27700)) FROM soil_shp where area = 'some_area' 附言:我没有收到任何错误。只是返回false。虽然它假定在一个id中返回true 有谁能帮我做错事

如何知道点是否位于多边形内。我已经写了这个查询,但不知怎么的,它现在正在通过我给出的点工作,它在多边形内部

SELECT area, id
st_contains(geom, ST_GeomFromText('POINT(-497680.2968362156 7868611.618275354)', 27700))  
FROM soil_shp
where area = 'some_area'
附言:我没有收到任何错误。只是返回false。虽然它假定在一个id中返回true


有谁能帮我做错事吗?提前感谢。

假设
区域
不是另一个几何体:

为了只过滤给定多边形内部的记录,必须在
WHERE
子句中调用
ST_Contains

考虑以下数据示例

CREATE TEMPORARY TABLE tmp (
  id INT,
  geom GEOMETRY(POLYGON,4326)
);

INSERT INTO tmp VALUES 
  (1,'SRID=4326;POLYGON((-4.52 54.29,-4.40 54.29,-4.40 54.25,-4.52 54.25,-4.52 54.29))'),
  (2,'SRID=4326;POLYGON((-4.71 54.11,-4.63 54.11,-4.63 54.09,-4.71 54.09,-4.71 54.11))');

注:上部多边形内部的点对应于
SRID=4326;点(-4.46 54.27)
位于上图中,仅用于图示

WHERE
子句中放置
ST_Contains
,将“丢弃”结果集中不重叠的多边形:

SELECT id FROM tmp
WHERE ST_Contains(geom,'SRID=4326;POINT(-4.46 54.27)');

 id 
----
  1

我们需要知道多边形,它是几何格式的。我将如何分享geom?就像EWKB或EWKT一样。