用C#写一个灵活的要素Feature属性Properties质检WebAPI接口(一)

需求概述

某项目中,要对宗地、自然幢数据进行质检。质检规则非常多,大致可以分为几类:一是要求某一属性字段值要么为空,要么为指定值;二是要求为某一属性字段值要么为空,要么从指定的集合中取值;三是要求当某一字段取值不为空时,某些字段也不能为空;四是要求当某一字段取值不为空,某一字段的取值必须为该字段值的某一位或某几位。

设计思路

把规则搞成配置文件,程序只负责解析规则,检查数据,以及输出结果。上述规则中,前两个可以归为一类,即检查属性值本身是否满足某些特定规则,这个规则可以是空值限定,可以是指定取值集合(包括分割符),也可以是正则表达式,并且三者互相独立;后两个虽然都是字段关系检查,但仍可细分为两类,一个是非空限定,一个是取值限定。

因此,我们需求三个配置文件,一个命名为CheckValue.json,用于保存数据质检规则,一个CheckRestriction.json,用于保存空值限定规则,一个CheckRelation.json,用于保存取值限定规则。

接口参数

传入的是GeoJSON格式的Feature对象即要素,但其真正质检的对象是其属性。参数中亦包含所属要素类名称,由此取得对应的规则。

返回值

返回合并后的不符合规则的属性质检结果条目集合即可,并且以OBJECTID区分不同要素。

猜你喜欢

转载自blog.csdn.net/a_dev/article/details/80676990