这两天参加了个学校举办的一个GIS制图和系统设计的比赛,用ArcEngine+c# 做了个演示用的“城市购房分析GIS系统” 。
系统需要实现的空间分析功能:
所寻求的买房区域要满足以下条件
(1) 离主要交通要道200米之外,以减少噪声(ST为道路数据中类型为交通要道的要素)。
- 在商业中心的服务范围之内,服务范围以商业中心规模的大小(属性字段为YUZHI)来确定。
- 距名牌高中750米之内,以便小孩上学便捷。
- 距名胜古迹500米之内,环境幽雅。
(2) 对每个条件进行缓冲区分析,将符合条件的区域取值为1,不符合条件的取值为0,得到各自的分值图。 (需要实现增加删除编辑相关要素字段)
(3) 运用空间叠置分析对上述4个图层叠加求和,并分等定级,确定适合的区域。
设计的系统主界面:(是想用Metro风格的,扁平化UI设计看起来舒服)
针对要素图层的字段值进行空间查询,由选择要素生成缓冲区,也可以由图层生成(通过设定缓冲距离或字段进行动态缓冲区生成),调用的GP工具。其中根据字段动态生成缓冲区,在ArcMap里有问题,调用的GP工具实现也有问题。具体表现为在ArcMap里不响应,在自己做程序里程序死掉。问题不解?
以下是根据各要素条件生成的缓冲区图:
- 道路要素(根据ST字段代表的主干道生成缓冲区)
- 学校要素缓冲区(750m)
- 名胜古迹缓冲区(500m)
- 商业中心缓冲区(那个根据字段动态生成始终有问题,随后改为500m)
- 商业中心,学校,名胜古迹三者缓冲区求交
- 用道路来擦除交集要素缓冲区
另外再做了一些其他东西,如字段计算器之类的,不过主要还是实现空间分析方面。都是基于属性表的求交,擦除,缓冲分析,而不光是几何图像的位置关系。