postgresql+postgis 测试数据以及函数

数据解释:
共三种数据,三张表,分别为点线面数据,其中:
pois4547为点数据,这里我假设其为兴趣点位表
roads4547为线数据,这里我假设其为道路表
buildings4547为面数据,这里我假设其为建筑物表
数据可从我上传的csdn资源下载:
点击跳转页面下载

1.例子:查询’宝安机场水渠污水口’点位附近400米的建筑物数据,(数据点位位置如下图所示黄点)

select *,ST_AsText(buildings4547.geom) from buildings4547 
join pois4547
on ST_DWithin(buildings4547.geom,pois4547.geom,400)
where pois4547.name='宝安机场水渠污水口'

结果:如下图所示可查询到三个建筑物面:
其中包括最大的 “机场基地”面,以及肉眼可看到的黄色点位附近的 “宝安机场水渠”面跟“宝安机场水渠工作室”面

postgresql+postgis 测试数据以及函数_第1张图片
2.例子,查询’宝安机场水渠污水口’点位附近400米的建筑物数据和道路数据,(数据点位位置如上图所示黄点)

测试1:
postgresql+postgis 测试数据以及函数_第2张图片

select buildings4547.name,raods4547.name,pois4547.name from buildings4547   
join pois4547
on ST_DWithin(buildings4547.geom,pois4547.geom,400) 
join raods4547
on ST_DWithin(raods4547.geom,pois4547.geom,400)
where pois4547.name='宝安机场水渠污水口'

测试2

postgresql+postgis 测试数据以及函数_第3张图片

select b.geom,c.geom,b.name,c.name from 
pois4547 as a,
raods4547 as b,
buildings4547 as c
where ST_DWithin(b.geom,a.geom,400)
and
ST_DWithin(c.geom,a.geom,400)
and
a.name='宝安机场水渠污水口'

你可能感兴趣的:(gis数据,工具等,postgresql)