专栏名称: CityMaker
CityMaker是国内领先的国产三维地理信息软件(3DGIS)平台和解决方案提供商,提供三维地理数据整合管理、浏览展示、服务发布、地形管理发布等多款专业应用软件产品、增值服务、整体解决方案等等。
目录
相关文章推荐
GiantPandaCV  ·  再读MLA,还有多少细节是你不知道的 ·  3 天前  
GiantPandaCV  ·  使用NCU和Cursor ... ·  2 天前  
GiantPandaCV  ·  PyTorch博客 《使用 Triton ... ·  3 天前  
51好读  ›  专栏  ›  CityMaker

3D GIS空间和属性综合查询

CityMaker  · 公众号  · 3D  · 2017-05-08 18:01

正文



查询是GIS中最常见的基本功能之一,前面两节我们重点介绍了两种常用的空间查询方法。很多情况下 ,查询过程更为复杂,在空间查询的基础上还需要进一步结合属性查询才能满足要求,因此今天我们重点介绍一下结合了空间和属性查询两种方式的综合查询方法,这里选择两个常见的查询内容举例说明。



查询指定范围内超高建筑


查询指定范围内超过一定高度的建筑需要同时满足两个查询条件:空间上满足在指定范围内和属性满足高度超过指定值。首先设置空间查询条件,即下图黄色区域为搜索区。



接下来设置属性查询条件,即指定查询字段和过滤条件,如高度(height字段值)大于指定值(23m)。




由此得到在该范围内所有高度大于指定高度(23m)的建筑,如下图粉色高亮显示的建筑即为最终查询结果。




查询道路两侧低矮建筑


查询道路两侧一定缓冲距离内层数满足要求的建筑同样需要同时满足两个查询条件:空间上满足在道路缓冲半径内和属性满足层数不超过指定值。首先设置空间查询条件,即下图红色区域为缓冲范围内。



接下来设置属性查询条件,即指定查询字段和过滤条件,如层数(level字段值)小于等于指定值(8)。



由此得到在该道路两侧25m内所有层数不超过8层的建筑,如下图粉色高亮显示的建筑即为最终查询结果。




综合查询的实现方法


进行空间和属性的综合查询可以直接在Builder和Explorer Pro中查询:



也可以在开发中实现,主要的代码如下:


ISpatialFilter filter=new SpatialFilter();

filter.GeometryField="Geometry";

filter.SpatialRel=gviSpatialRel.gviSpatialEnvelope

filter.Geometry=polygon;

filter.WhereClause="属性过滤条件";

IFdeCursor cursor=fc.Search(filter,false);






 想了解更多? 
 那就赶紧来关注我们 

长按二维码 关注我们

加入我们官方QQ讨论群,参与更多互动分享

CityMaker软件技术分享群

189406624