所谓的地理处理,实际上是对空间数据的处理,也就是我们通常意义上所知道的空间分析。当然,地理处理不仅仅是我们常用所理解的空间分析那么简单功能,例如做一些缓冲区,做一些clip或merge操作了。ArcGIS的地理处理包括了所有的空间分析的结合,利用地理处理,我们能够做非常复杂的模型建立,例如我们做一个最佳选址分析,做一个森林火的扩散模型分析等,都需要用到大量的空间分析步骤和数据,这整个过程都可称为地理处理。
实际上地理处理并不是一个新的概念。伴随GIS平台的开始,地理处理就已经存在了。在ESRI的产品线发展过程中,地理处理一直在桌面产品中应用比较深入,开发组件从最早的MapObjects到后来的Engine,再到ArcGIS Server一开始并不能很好的运用地理处理的功能,我们需要一个地图分析工具,就需要读懂ArcObjects的模型,写许多的代码最终达到这个功能。在ArcGIS9.2系列里,地理处理结合在这些AO的产品框架体系当中,为我们带来了极大的方便。
下面主要从三个方面去了解GeoProcessing:
1).Desktop: 在桌面应用中,GP直观的表现为ArcToolbox里面的工具集,每一个工具都可以是一个地理处理。光有此理解还是不够的。我们还必须知道Model Builder;Model Builder可以按流程处理多个地理操作操作,其主要特点是自定义,流程化,所见即所得。符合现在的SOA思想。如图:
此外,地理处理也可以通脚本,命令窗口来实现。因为接触不多所以没去深入研究。
2).AO:
在ArcGIS中,地理处理可以通过脚本语言如Python,JScript来运行工具,同样的也可以通过系统语言,如C++,Java, DOTNET等来执行。
在9.2的ArcObjects对象模型图中提供了Geoprocessor对象模型。这里主要用来调用ESRI地理处理对象库,包括了许多IGeoProcessor接口和GeoProcessor的对象类。GeoProcessor类是在ArcGIS中执行任何地理处理工具的简单访问节点,包括扩展模块。GP通过客户化的ArcGIS Engine 应用程序来执行已经存在的GP工具(models, scripts, custom tools).
GP其实也是通过AO接口来实现地理处理,等于把整个处理代码段封装起来,进而提高了组件的粒度;用户只要写出工具执行所需的几个参数就可以实现其功能。(只需告诉它做什么而不用告诉它怎么做)。这也是ArcEngine9.2的新特征。如下,做一个Clip指需要4行代码(9.2之前
(本文已被浏览 次)