PostGIS 查询点在线上


1、缓冲区法:查询数据库fm表里,与坐标(12989691.512 4798962.444)相距0.0001米的数据(3857坐标系)

SELECT id FROM fm where st_intersects(st_transform(st_buffer(st_transform(st_geomfromtext('point(12989691.512 4798962.444)',3857),3857),1),3857),geom) ;
--如果坐标系统一,不用transform也可以
SELECT id FROM fm where st_intersects(st_buffer(st_geomfromtext('point(12989691.512 4798962.444)'),0.0001),geom) ;

2、缓冲区法:查询fm表里,与点要素geometry相距0.0001米的要素

--geometry(例:0101000000D34D62709FC66841FA7E6A9C7C4E5241)
SELECT id FROM fm where st_intersects(st_buffer('0101000000D34D62709FC66841FA7E6A9C7C4E5241',0.0001),geom) ;

3、空间分析法:ST_Intersects查看相交

--带业务逻辑
select t.gid,t.geom from fm t where t.gid  in (
          select a.gid from fm a,(select c.* from zy c where c.gid = up_temprow.gid) b where ST_intersects(a.geom,b.geom) 
        )
--简化
select t.gid,t.geom from fm t where t.gid  in (
          select a.gid from fm a,zy b where ST_intersects(a.geom,b.geom) 
        )

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM