POSTGIS - 从另一个 table 更新 table

POSTGIS - update table from another table

我创建了一个多边形 table(多边形),名称和点(使用多边形值)

"Z";"010300000001000000050000008D67A2989451494092D9774AA9990840D757B77796514940469AC495BD99084092772ABA97514940A7A9214E80990840131D769D95514940E65E4E736C9908408D67A2989451494092D9774AA9990840"

"A";"010300000001000000050000006260C20D9D5149402CC94B48B5990840862238899C514940FCF785FCD89908402A183A1B97514940F2295B7FA69908401893A3A597514940CF447D37829908406260C20D9D5149402CC94B48B5990840"

我有另一个 table (latlon),其中包含超过百万条记录的纬度和地段列

 lat            lon 
50.6375524  3.075079145
50.6374046  3.075292678
50.6373605  3.075188391
50.6373628  3.075185017

我必须在点 "poly" table

的帮助下更新 latlon table 中的列(区域名称)

下面的 select 语句给出了一条记录的正确输出。

SELECT name FROM zone WHERE ST_Contains(polygon, ST_GeomFromText('POINT(50.6375524  3.075079145)')); 

有人可以帮我在 POSTGIS 中编写一个 UPDATE 查询来获取更多的经纬度值吗?

UPDATE latlon
SET zonename = zone.name
FROM zone
WHERE ST_Contains(zone.polygon, ST_SetSRID(ST_MakePoint(lon, lat), 4326));

这假设您的坐标采用 WGS84 格式(即原始 GPS 坐标)。你的多边形应该在同一个坐标系中;如果不是,请将 SRID 值 4326 更改为您的多边形正在使用的值。