2016-08-15 80 views
2

我创建了一个多边形表(聚)与名称和积分另一个表(使用多边形值)POSTGIS - 从

"Z";"010300000001000000050000008D67A2989451494092D9774AA9990840D757B77796514940469AC495BD99084092772ABA97514940A7A9214E80990840131D769D95514940E65E4E736C9908408D67A2989451494092D9774AA9990840" 

"A";"010300000001000000050000006260C20D9D5149402CC94B48B5990840862238899C514940FCF785FCD89908402A183A1B97514940F2295B7FA69908401893A3A597514940CF447D37829908406260C20D9D5149402CC94B48B5990840" 

我有另一个表(latlon)与纬度和很多列超过更新表万条记录

lat   lon 
50.6375524 3.075079145 
50.6374046 3.075292678 
50.6373605 3.075188391 
50.6373628 3.075185017 

我有一个点的“聚”中的帮助更新latlon表中的列(区域名称)

下面的SELECT语句是否给出正确输出一个记录。

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

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

回答

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

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

+0

是的,SRID值是4326.谢谢你,帕特里克。 – ckp