【二次开发】CityMaker数据操作——空间查询

本文详细介绍了在CityMaker中进行二次开发时如何实现空间查询,包括原理、.Net和JS的实现代码,以及空间过滤对象坐标系的重要注意事项。通过空间关系过滤器ISpatialFilter接口,支持多种空间关系类型,如 envelopes、intersects、within 和 contains。在实际应用中,需注意Geometry坐标系与featureDataset坐标系的匹配,以确保查询结果的准确性。
摘要由CSDN通过智能技术生成

**

空间查询

**

一、原理

通过空间关系查询和定位空间实体是地理信息系统不同于一般数据库系统的功能之一。空间关系查询不改变数据库的存储。CityMaker SDK空间关系过滤器类ISpatialFilter接口,用于空间查询,可获取或设置空间过滤对象、空间列名称、空间关系谓词。其所支持的空间关系类型如下:

enum gviSpatialRel  空间关系谓词 

枚举值: 
gviSpatialRelEnvelope  通过Envelope进行相交查询 

gviSpatialRelEquals  相等:相比较的两个几何体类型相同,并且各自顶点集合中的顶点个数相等,在平面上的坐标相等 

gviSpatialRelIntersects  不相离:相比较的两个几何体至少有一个公共的顶点。对相比较的两个几何体的类型不做要求。 

gviSpatialRelTouches  相邻:相比较的两个几何体在边界上至少有一个公共顶点,但是内部没有公共顶点。对相比较的两个几何体的类型不做要求。 

gviSpatialRelCrosses  相交:相比较的两个几何体的共享部分但不是全部的内部点集,相交部分的几何体维度小于相比较的两个几何体中的一个或者两个。 

gviSpatialRelWithin  被包含:Base Geometry在Comparison Geometry的内部,与Contains相反 

gviSpatialRelContains  包含:Comparison Geometry在Base Geometry的内部,与Within相反 

gviSpatialRelOverlaps  部分覆盖:相比较的两个几何体有相同的维度,他们有部分但不是全部的点是公共的,并且相交部分的几何体与相比较的两个几何体有相同的维度

二、实现代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值