我正在尝试访问一个点并为其获取检查器名称。通过其自身进行的查询工作正常,但是我需要经度和纬度作为变量,因为Lng和Lat会发生变化。
这就是我所拥有的
DO $$
DECLARE
longitude text := -4.323966436509;
latitiude text := 51.857052145748;
BEGIN
--RAISE NOTICE '% %', longitude, latitiude;
SELECT inspectors_name as Name
FROM ccc_transport_streets."Inspectors_Areas_polygon"
WHERE ST_Contains(geom, ST_Transform (ST_GeometryFromText('POINT(lonitude latitiude)',4326), 27700));
END $$;
但是我收到错误消息:-
错误:解析错误-无效的几何提示:“ POINT(lo)<-解析 几何中位置8处的误差
我也将数据类型更改为float。任何新的Postgresql想法。
答案 0 :(得分:1)
要创建点,请使用st_makepoint()函数。然后为该点设置SRID,然后检查多边形是否包含该点。
DO $$
DECLARE
longitude numeric := -4.323966436509;
latitiude numeric := 51.857052145748;
BEGIN
--RAISE NOTICE '% %', longitude, latitiude;
SELECT inspectors_name as Name
FROM ccc_transport_streets."Inspectors_Areas_polygon"
WHERE ST_Contains(geom, ST_setSRID (st_makePOINT (longitude, latitiude),4326)
);
END $$;