【转】ArcGIS10 .Net ArcObjects开发新特性

核心提示:ArcGIS10 .Net ArcObjects开发新特性

1 整合的AO SDK
在ArcGIS10中,AO只有一个SDK。它将原先ArcGIS Desktop,ArcGIS Engine .Net SDKs以及ArcGIS Server上的AO整合到一起。ArcObjects SDK for .Net包括文档,例子,开发者工具以及开发AO的VS模板等。它主要聚焦在三个方面的AO应用。
(1) Building add-ins for ArcGIS Desktop (桌面扩展开发)
(2)Building stand-alone application (创建独立应用程序-Engine开发)
(3) Developing with ArcGIS Server (ArcGIS Server上的AO开发)
 
2 架构上的变更
ArcGIS10有一些明显的产品架构上变更。新架构最明显的优势是独立存在的ArcGIS Desktop和Engine runtime。你可以将ArcGIS Desktop和Engine安装在不同的目录下。你同样可以分别为Engine和Desktop打补丁。但是这种构架的变化要求你将你的Engine程序以及自定义组件绑定到你机器上指定的产品。
 
独立应用程序既可绑定到Desktop也可以绑定到Engine的runtime。你必须在使用AO之前做绑定。
绑定到ArcGIS Engine,你可以使用以下的代码:
[C#]
//Insert this line before invoking any ArcObjects to bind Engine runtime.
ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);
[VB.NET]
[VB.NET]
'Insert this line before invoking any ArcObjects to bind Engine runtime.
ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine)
绑定到ArcGIS Desktop,你可以使用以下的代码:
[C#]
//Insert this line before invoking any ArcObjects to bind Desktop runtime.
ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop);
[VB.NET]
'Insert this line before invoking any ArcObjects to bind Desktop runtime.
ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop)
同样,自定义的COM组件也必须在机器上注册成Engine或者Desktop的组件。这个可以使用ESRI的ESRIRegAsm的工具来注册。
· Desktop—ESRIRegAsm /p:desktop "C:\Test\MyCustomAssembly.dll"
· Engine—ESRIRegAsm /p:engine "C:\Test\MyCustomAssembly.dll"
 
其它架构上的显著变化还有以下几点:
(1)ArcGIS安装路径
之前版本,ArcGIS Desktop,ArcGIS Engine Runtime, SDKs以及ArcGIS Server都是安装在<指定安装目录>\ArcGIS文件夹下。在10版本中,ArcGIS 产品都有自己独立的安装目录,这些安装目录在:
             ArcGIS Desktop: <your specified location>\ArcGIS\Desktop10.0
             ArcObjects SDK: <your specified location>\ArcGIS\DeveloperKit10.0
             ArcGIS Engine Runtime: <your specified location>\ArcGIS\Engine10.0
             ArcGIS Server: <your specified location>\ArcGIS\Server10.0
(2)ESRI policy files
ESRI不再为分发policy files(安全证书),如果迁移程序,你必须将你的程序在ArcGIS10上重新编译并且测试部署。
(3)ESRI registry keys
如果你使用ESRI的注册项来询问ArcGIS Product的安装目录,那么这些项在这个版本中已经发生变化。
 
3 支持的平台
除了支持原有的操作系统,例如windows vista以及windows xp,ArcGIS10还支持Windows7。使用ArcGIS10的.Net Framework开发的应用程序需要.Net Framework 3.5 SP1。这个可以参照网站上所提供的System Requirement。
4 新的要素
(1)ArcGIS Engine浮动许可
在之前的版本中,ArcGIS Engine每台机器支持单个用户,现在浮动许可机制允许Engine的应用程序从一个拥有一定许可数的License服务器上取许可。
(2)使用Add-in用定制桌面应用
你可以使用add-in来定制桌面应用。Add-in提供了简单并且轻量的方式来定制应用,例如自定义工具,按钮,菜单,浮动面板以及停靠窗口,combo boxes以及扩展等。Add-in是基于每一个用户安装的,安装的时候并不需要管理权限。Add-in可以非常容易通过e-mail以及下载等方式在用户以及机构内分享。这部分的内容详细参见Building add-ins for ArcGIS Desktop。
(3)使用Python进行地图自动化
新的Python库- arcpy提供了命令用于和地图文档以及图层交互。你可以使用这些命令创建Python脚本来使用这些命令来打开地图文档和图层,查询以及改变内容,然后打印,导出以及保存修改后的地图文档。这些命令对于多文档的工作流的执行也非常有用,比如更新地图数据源,制作图层信息报告。你可以将多个文档数据导出合成一个图集,生成PDF或者直接打印出来。
 
(4)Geoprocessing工具的异步执行
从ArcGIS 9.2开始,开发人员就可以使用IGeoprocessor2.Excute方法来运行地处理工具,但是执行时应用程序是暂时挂起的。在ArcGIS10中,新的IGeoprocessor2.ExecuteAsysnc方法允许在程序后台运行GP工具,换句话说,当GP执行的时候,应用程序可以继续响应和处理用户的交互。当然,在一个运行程序中,你可以在后台执行多个地处理工具。
(5)移动物体的GraphicTracker
新的GraphicTracker APIs允许你2D和3D中在不闪烁的情况下跟踪动枋移动对象。每一个移动对象都可以分配一个文本标注以及文本符号。GraphicTracker执行的时候是最小化显示刷新的,并且当移动要素增加或者减少是非常平滑的。除此之外,移动对象可以是透明,高亮以及指定方向的,甚至按照Z值漂浮。要素符号可以根据符号大小来缩入或者当大比例尺展示的时候,自动收缩。
 
(6)Basemap图层改进导航和显示的效率
BaseMap Layer是一种特殊的图层组用于可视化以及漫游时存储参考图层,比如影像图,街道以及地块。Basemap layer使用优化的绘制逻辑并且提供了连续绘制的方案,使你漫游地图变得更加简单。程序中可以使用BasemapLayer类来创建,它的添加和删除方式跟其它的图层是一样操作的。
(7)可视化空间数据集
ArcGIS10中提供对空间数据库例如SQL Server2008只读访问的查询类和查询Cursor。Query类实现了ITable和IFeatureClass接口,并且可以像其它的GDB Dataset一样为客户端所用。有Geometry字段的Query Class还可以被添加到map中以图层的方式来进行展现。Query Layer可以跟其它的图层一样被保存和共享并且可以用作GP工具的输入。
(8)ArcGIS中时间可视化
ArcGIS10中支持时态可视化。要素图层,Graphic图层和其它图层可以基于时间属性渲染。许多图层可以用已经存在的时间相关数据。多个图层可以同时参于时间视图。ArcGIS提供时间控制要素,但是同样可以用程序的方式来控制地图。
(9)编辑增强
编辑有以下增强
A:用户接口:
ArcGIS Dekstop中的编辑环境提供了更加简单流程化的工作流。编辑任务框的工具,编辑目标以及草图工具的工作流通过模板,编辑工具,创建工具以及形状创建器来提供。编辑部件最明显的变化是这些用户体验。详细参照:Migrating desktop editing customizations to ArcGIS 10。
B:模板
要素模板是ArcGIS编辑环境中的一个中心思想。编辑器基于要素模板来创建要素。要素模板提供了一种简单的方式来简化创建要素的工作流。因为许多属性都是预定义的,所以用户可以选择一个模板,这样许多步骤都是自动的,让用户的工作更加容易。
C:捕捉
ArcMap和ArcGIS Engine开发人员可以使用新的捕捉环境。捕捉环境允许你自定义的工具也可以捕捉,并不仅限于编辑器中的工具。捕捉环境可以通过ArcMap中获取或者通过ArcGIS Engine的esricontrols中获取。
D:TOC的自定义
TOC窗体和视图在10中重新架构。TOC的视图,如显示源现在都成为TOC工具条上的一个按钮,和以前的版本不一样。TOC窗体现在成为可停靠框架的一部分,可以任意停靠。自定义TOC View可以通过IContentsViews接口来扩展,它提供了两个属性例如按钮的图标以及按钮的Tooltip。
 
(10)显示高级MapTips表达
Display Field是用于Identify windows进行要素Identify以及提供MapTips提供Text。你可以使用IDisplayExpressionProperties自定义MapTips的字符串。使用Display Expression,你可以连接或者改变一个或者多个字段的属性值并且包含额外的字符串来显示高级的MapTips。显示表达式可以包含VB或者JS脚本来添加处理MapTips的逻辑。
 
(11)属性驱动符号化
你可以基于它的属性值来定义图层的符号,主要有:
A:旋转点要素符号
原来的Rotation Renderer在10中已增强,它支持基于要素属性字段的旋转或者是基于特定表达式的旋转。你可以任意在0-360这个区间范围内旋转点符号。IRotationRenderer2接口提供了方法来旋转二维Map以及3D View中的点要素。在Scene或者Globe中,rotation支持x,y,z三个轴方向。尽管如此,在Map中只支持二维平面。
B: 点要素的大小
大小渲染接口允许你基于一个属性字段值或者表达式来指定要素符号的大小。你可以指定任意的你认为合理的大小。接口是ISizerRenderer,它在二三维中都适用。
(12)改进打印支持
在ESRI.ArcGIS.Carto库中新添加PrintandExport类来简化打印和地图输出。当使用PrintAndExport类来打印和导出地图,输出的质量会自动由Export或者Printer对象的ResampleRatio属性中得到并且应用于当前视图。
 
(13) 图标支持PNG 和 Alpha-blending
ArcGIS10中支持更高质量的图标,例如Alpha-blending位图或堵PNG格式。这些图标在安装AO SDK的时候就一并安装了,在进行Engine和桌面开发的时候就可以使用了。
本篇文章来源于GIS动力站|www.gispower.org 原文链接:http://www.gispower.org/article/arcgis/ao/2010/91/109119225675I3ID075C23AGK9AH1G.html

posted @ 2011-01-04 09:50    阅读(949)  评论(0编辑  收藏  举报