一直对ModuleBuilder的迭代器理解不够透彻,趁着年底这几天没什么事,重新温习了下ArcGIS Desktop的帮助文档。细细品读之后,发现迭代器的功能还是非常强大的,需要配合ModuleBuilder的整个框架来使用,特别是for、while循环需要配合自定义变量来使用。这块对于编程出身的很多开发者来说,比较难以理解,至于为什么后面我们再细聊。
首先,ModuleBuilder中包含了迭代功能,目的是为了帮助开发者实现自动化多次重复执行某个过程。很多语言都提供了迭代的功能,譬如for、while循环。我们以一个场景为例:现在有一个盗窃案件的点图层,想要同时调取出每个案件一公里范围内的视频探头。如果用程序代码的话,以下代码就可以实现(以Java代码的编写风格为例):
代码一
for(int i;i<fs.length;i++){
//首先对每个点要素执行缓存分析,距离为两公里,bufferAreaFeatures为缓冲的范围
bufferAreaFeatures = buffer(inputFeatures,outFeatures,"2 Kilometers");
//然后再以bufferAreaFeatures作为空间查询条件,和视频探头图层进行相交查询
videoFeastureSet = queryTask(viedioLayer,bufferAreaF