ArcGis Engine 开发,怎么在PageLayout控件中panel中动态添加控件多个MapFram,并显示MapControl控件中不同图层的地图

第一章 Arc Engine 介绍
第二章 Arc Engine结构
一、Arc Engine包含的主要库文件
1、System库
ArcGIS结构中最底层的库,包含为其它库提供服务的组件。
2、SystemUI
包含为用户界面组件(在ArcEngine中可以进行扩展)定义的接口,包括:ICommand, ITool, 和ItoolControl接口。
3、Geometry
处理存储在要素类或其它图形元素中的几何图形要素。我们经常遇到的基本几何目标有Point, MultiPoint, Polyline 和Polygon
4、Display
包含显示地理数据的像,如:symbols,colors 等。我们通常通过类似Map或PageLayout对像提供的视图(view)来访问Display
包含用来连接到ArcGIS Servers的对像。我们可以通过GISServerConnection对象访问ArcGIS Server。
用来将图形输出到设备上,如printers、plotters和hardcopy formats(如:EMF,JPG,BMP等)。可扩展
7、GeoDatabase
为geodatabase提供API函数。可以扩展以支持特定数据格式(Features, Classes, etcetera),可通过PlugInDataSource对象加入自定义的矢量数据源。Geodatabase支持的本地数据类型无法扩展
8、GISClient
用来接受ArcIMS和ArcGIS Server.提供的网络服务。
9、DataSourcesFile
包含以文件为数据源的(shapefile,coverage, TIN, CAD, SDC, StreetMap, and VPF)部分GeoDatabase API函数的实现。
10、DataSourcesGDB
包含以数据库为数据源(Microsoft Access、ArcSDE―IBM DB2, Informix, Microsoft SQL Server, and Oracle)部分GeoDatabase API函数的实现。
11、DataSourcesOLEDB
包含以Microsoft OLE DB为数据源的部分GeoDatabase API函数的实现。该库文件只在Microsoft Windows操作系统上存在。
12、DataSourcesRaster
包含以栅格数据为数据源的部分GeoDatabase API函数的实现。
13、GeoDatabaseDistributed
为企业geodatabase提供数据输入输出工具
创建和显示地图。
15、Location
包含支持地理编码和处理路径事务有关的对象
16、NetworkAnalysis
提供populating包含网络数据的地理数据库和网络分析的对象。
17、Controls
用来借助ArcGIS功能创建或扩展应用程序。它通过封装ArcObjects和提供一组上层(coarser grained)的APE函数简化了开发过程。虽然,它封装了底层(fine grained)的ArcObjects,但并没有限制对其访问。其中MapControl 和PageLayoutControl分别封装了Carto库的Map和PageLayout对象。ReadControl同时封装了Map和PageLayout对象,并且提供了简单的API函数。如果地有图发布授权,开发人员可以访问内部对象,如同访问Map和PageLayout控件。该库还包含了实现内容表(a table of contents)的TOCControl控件和实现主要(hosting)命令及工具的ToolbarControl控件。
开发人员可以使用这些控件创建自己的命令和工具来扩展该库。Controls库中的HookHelper对象支持扩展。
18、GeoAnalyst
包含支持核心空间分析功能的对象。这些功能在SpatialAnalyst 和3Danalyst库中都使用到。
19、3Danalyst
包含3D Scenes中运行的对象,就像Carto库中包含2D maps中的对象。
20、GlobeCore
包含操作globe数据的对象。
21、SpatialAnalyst
包含对栅格和适量数据进行空间分析的对象。
第三章 使用ArcGIS控件开发应用程序
第一节 使用ArcGIS控件
一、ArcGIS控件介绍
ArcGIS控件是一组高级开发组件,首先可以让开发人员利用ArcGIS功能建立和扩展应用程序,然后是提供一个用户界面。包含下列控件:
. MapControl―similar to the 'data' PageLayoutControl ToolbarControl
TOCControl (Table of Contents Control)
SceneControl
GlobeControl
ReaderControl
有两种方法使用这些控件来创建应用程序:(1)、将控件嵌入到已有程序中,使其具有地理信息功能;(2)、使用控件创建单独的应用程序。不管使用哪种方法,单独的ArcGIS控件都可以嵌入到一个应用程序或TOCControl中,并且ToolbarControl可以用来与另外一个ArcGIS控件协作以提供应用程序框架部分。
二、使用ArcGIS控件
为了使用ArcGIS控件有效地创建应用程序,我们首先必须弄清一些对所有控件都适用的一般性问题和概念。
1、可嵌入式组件(Embeddable Components)
2、属性页面(Property Pages)
3、ArcObjects
每个ArcGIS控件都通过封装coarse grained ArcObjects(仍然可以访问finer grained ArcObjects)简化了开发过程。例如,pageLayoutControl封装了PageLayout对象,PageLayou包含至少一种MapFrame元素,MapFrame包含一个Map,Map可以包含多个栅格(raster),要素(feature),或自定义的Layer对象。每个ArcGIS控件都为封装了ArcObjects中使用频繁的属性和方法提供了快捷方式。例如,MapControl的SpatialReference属性,就是Map对象的SpatialReference属性的快捷方式。每个ArcGIS控件还有执行普通任务的帮助方法(helper methods)。例如,MapControl有AddShapeFile方法。
4、事件(Events)
5、Buddy Controls
ToolbarControl和TOCControl分别与其它的“buddy control”协同工作。典型的“buddy control”有MapControl,PageLayoutControl, ReaderControl, SceneControl, or GlobeControl。设置“buddy control”可以在设计期设置(如果控件属性页)或在运行期用SetBuddyControl方法。
6、控件命令(CONTROL COMMANDS)
ArcGIS Engine提供了一系列的命令、工具和菜单与ArcGIS控件一起使用。例如,有一套地图漫游、要素选取和图形化命令与MapControl和PageLayoutControl协同工作。类似的还有一套SceneControl, GlobeControl和 ReaderControl命令。由于应用程序使用一个单独的控件,这些命令通过用运行时创建一个新的命令实例并将控件传递给命令的OnCreate事件可以直接与控件工作。当应用程序使用ToolbarControl与一个“buddy control”一起工作阅读:1275回复:5
pagelayout从mapcontrol中读取数据并打印输出
发布于: 15:34
&P&pagelayout控件能不能从mapctrol中读取图层,或者说通过sde读数据库中的图层数据。&/P&
&P&现在用.net+AE写系统,需要打印输出,就是说在mapcontrol中进行的操作如符号化制作专题地图、加标记在地图上等,现在需要打印这些符号状态,把mapcontrol中这些符号及地图都读到pagelayout 中,再在pagelayout中进行下一步的布局编辑,如加指北针等,最后打印输出。&/P&
&P&想法一:把mapcontrol中把数据导出成图像文件格式,再打印,缺点是不能再进行布局&/P&
&P&想法二:把mapcontrol中加的标记等操作记录下来,再在pagelayout中显示出来&/P&
&P&难点:现在不知道如何加载除mxd文件以外的地图数据到pagelayout中,记录操作也繁琐&/P&
&P&谁能给点思路哈,先谢了&/P&
铜币10608枚
<span class="lou J_floor_copy" title="复制此楼地址"
data-hash="read_楼#
发布于: 15:41
查看帮助里的CopyFocusMap Sample
微信:gisworld
(请注明来自GIS帝国论坛)
GIS的麦田守望者,希望和大家交流。
<span class="lou J_floor_copy" title="复制此楼地址"
data-hash="read_楼#
发布于: 17:14
&P&谢谢你,但这个sample是从pageLayout中复制内容到mapcontrol中,源代码为&/P&
&P&//Get IObjectCopy interface&BR& & IObjectCopy objectCopy = new ObjectCopyClass(); &/P&
&P& & //Get IUnknown interface (map to copy)&BR& & object toCopyMap = axPageLayoutControl1.ActiveView.FocusM&/P&
&P& & //Get IUnknown interface (copied map)&BR& & object copiedMap = objectCopy.Copy(toCopyMap);&/P&
&P& & //Get IUnknown interface (map to overwrite)&BR& & object toOverwriteMap = axMapControl1.M&/P&
&P& & //Overwrite the MapControl&#039;s map&BR& & objectCopy.Overwrite(copiedMap, ref toOverwriteMap);&/P&
&P&我要的是从mapcontrol中复制到pageLayout中, 我试着改了一下,还是不行,pageLayout中没有东西阿&/P&
&P&这个是为什么?&/P&
&P&我改的:&/P&
&P& & & & & & IObjectCopy objectCopy = new ObjectCopyClass();&/P&
&P& & & & & & &//Get IUnknown interface (map to copy)&BR& & & & & & &object toCopyMap = map.M//mapControl&/P&
&P& & & & & & &//Get IUnknown interface (copied map)&BR& & & & & & &object copiedMap = objectCopy.Copy(toCopyMap);&/P&
&P& & & & & & &//Get IUnknown interface (map to overwrite)&BR& & & & & & &object toOverwriteMap = pageLayoutCtrl.ActiveView.FocusM//pageLayoutControl&/P&
&P& & & & & & &//Overwrite the MapControl&#039;s map&BR& & & & & & &objectCopy.Overwrite(copiedMap, ref toOverwriteMap);&/P&
&P&先谢了!!!!!!!!!!!!!!!!!!!!!!&/P&
<span class="lou J_floor_copy" title="复制此楼地址"
data-hash="read_楼#
发布于: 17:28
&P&忘记刷新了,呵呵,谢谢了哈&/P&
&P&再次感谢你!&/P&
铜币10608枚
<span class="lou J_floor_copy" title="复制此楼地址"
data-hash="read_楼#
发布于: 17:29
&P&详细请看&/P&
&P&&a href=&/bbs/dispbbs.asp?BoardID=62;ID=39594& target=&_blank& &/bbs/dispbbs.asp?BoardID=62;ID=39594&/A&&/P&
&P&Private Sub CopyFocusMap()&BR&&#039; &Dim i As Integer&/P&
&P&&#039; &For i = 0 To m_pPMap.LayerCount - 1&BR&&#039; & &PageLayoutControl1.ActiveView.FocusMap.AddLayer m_pPMap.layer(i)&BR&&#039; &Next&BR& & &&#039;获取 IObjectCopy 接口&BR& & &Dim pObjectCopy As IObjectCopy&BR& & &Set pObjectCopy = New ObjectCopy&/P&
&P& & &&#039;获取 IUnknown 接口 (源“Map”)&BR& & &Dim pToCopyMap As IUnknown&BR& & &Set pToCopyMap = frmMap.map1.ActiveView.FocusMap &#039;m_pPactiveview.FocusMap&/P&
&P& & &&#039;获取 IUnknown 接口 (参与复制的源“Map”)&BR& & &Dim pCopiedMap As IUnknown&BR& & &Set pCopiedMap = pObjectCopy.Copy(pToCopyMap)&/P&
&P& & &&#039;获取 IUnknown 接口 (目的“Map”)&BR& & &Dim pToOverwriteMap As IUnknown&BR& & &Set pToOverwriteMap = PageLayoutControl1.ActiveView.FocusMap&/P&
&P& & &&#039;复制 Map&BR& & &pObjectCopy.Overwrite pCopiedMap, pToOverwriteMap&/P&
&P& & &&BR& & &&#039;设置 PageLayoutControl 的 Extent&BR& & &BR& & &PageLayoutControl1.Extent = frmMap.map1.Extent &#039;m_pPactiveview.Extent &&#039;&#039;hzm&BR& & &BR& & &&#039;刷新显示&BR& & &PageLayoutControl1.Refresh esriViewGraphics&/P&
&P&End Sub&/P&
微信:gisworld
(请注明来自GIS帝国论坛)
GIS的麦田守望者,希望和大家交流。
<span class="lou J_floor_copy" title="复制此楼地址"
data-hash="read_楼#
发布于: 15:42
&img src=&images/post/smile/dvbbs/em02.gif& /&
您需要登录后才可以回帖,&或者&当前位置: &
基于C#语言的ArcGIS Engine开发基础与技巧
滚动鼠标滚轴,图片即可轻松放大、缩小
基于C#语言的ArcGIS Engine开发基础与技巧(图1)
电&&&&&&话:
开&&&&&&本:16开
页&&&&&&数:303页
字&&&&&&数:502.400千字
I&&S&&B&&N:2
售&&&&&&价:59.00元
Copyright(C)
孔夫子旧书网
京ICP证041501号
海淀分局备案编号c#ArcGIS Engine实例开发-桌面GIS应用程序框架的建立
1.新建项目
2.添加控件
选择工具箱中的“ArcGIS Windows Forms”节,将“ToolbarControl”控件拖入窗体,并将其属性中的Dock设置为Top。
选择工具箱中的“菜单和工具栏StatusStrip”,将其拖入到窗体。
选择工具箱中的“容器SplitContainer”容器拖入窗体,并将其属性中的Dock设置为Fill。
将TabControl控件拖入Panel1,将Alignment属性设置为Bottom,Dock属性设置为Fill。
选择“图层”选项卡,拖入TOCControl控件,设置Dock属性为Fill。
选择“属性”选项卡,拖入PropertyGrid
控件,用于属性的查询和设置。
选择“地图”选项卡,拖入MapControl控件,设置Dock属性为Fill。
选择“制版”选项卡,拖入PageLayoutControl控件,设置Dock属性为Fill。
拖入LicenseControl控件拖入到窗体的任意地方。
3.绑定控件
分别右击ToolbarControl、TOCControl控件,将Buddy设置为axMapControl1
4.添加工具栏上工具vcD4KPHA+09K791Rvb2xiYXJDb250cm9so6zRodTxobDK9NDU"Items”,点击Add,添加需要的工具即可
5.编译运行,我这里用中国地图的shp来打开演示。热销排行榜
1.2.3.4.5.6.7.8.9.10.
最近浏览的其他商品
浏览更多同类商品
【 】??????????
ArcGIS Engine 组件式开发及应用
地理信息技术实训系列教程
科学出版社发行部
出版日期:
读者对象:
¥39.60&&&
立刻节省:¥15.40
所属分类:
&&& 内容简介
&&& &ArcGIS Engine组件式开发及应用&是西安科技大学为地理信息系统本科专业开设的
&&& 一门专业课。本书在积累作者近年来讲授这门课经验的基础上,结合具体GIS软件项目开发
&&& 实践,采用c#语言编写应用实例,并以ArcGIS Engine9.3和10.0为开发平台编写而成,系
&&& 统讲述了ArcGIS Engine组件式开发的方法和具体应用。
&&& 全书共11章,内容涉及AreGIS Engine基础、使用ArcGlS Engine控件编程、几何形体
&&& 对象Geometry、地图组成、空间数据符号化、空间数据管理、空间分析、空间数据编辑、
&&& 地图输出、基于ArcGIS Server的WebGIS开发和三维可视化及三维分析。对每部分所涉及
&&& 的接口,实现接口的类,以及对应的属性和方法均进行了详细介绍。为便于读者理解和练刘,
&&& 在各部分还结合实际GIS项目开发实践,列举了大量采用c#语言编程实现的工程实例,突
&&& 出编程实践和具体应用,以使读者能有效了解和掌握AreGIS Engine开发的实战投术。
&&& 本书可作为地理信息系统及相关专业高年级本科生和研究生的教材,也可供各行业从事
&&& ArcGIS Engine软件开发工程技术人员参考。
ArcGIS Engine基础1.1
ArcGIS Engine概述1.2
ArcGIS Engine组件库1.3
阅读对象模型图1.3.1
ArcGIS Engine中的类与对象1.3.2
类与类的关系1.4
组建对象模型1.4.1
软件开发历史1.4.2
组件对象模型1.5
使用控件构建独立应用程序1.5.1
程序功能描述1.5.2
程序控件设计1.5.3
代码编写1.6
ArcGISlo.0的新增功能第2章 使用AreGIS Engine控件编程2.1
MapControl控件2.1.1
主要接口2.1 2
用MapControl控件加载地理数据2.1.3
鼠标与控件的交互2.1.4
数据选择2.1.5
实现鹰眼功能2.2
PageLayoutControl控件2.2.1
用PageLayoutControl操作Mxd文件2.2.2
PageLayout与MapControl联动2.3
TOCControl控件2.3.1 TOCControl控件概述叩2.3.2
TOCControl控件应用开发实例2.4 ToolbarControl及相关对象2.4.1
概述2.4.2 ToolbarControl控件2.4.3
zoolbarltem第3章
几何形体对象Geometry第4章
地图组成第5章
空间数据符号化第6章
空间数据管理第7章
空间分析第8章
空间数据编辑第9章
地图输出第10章
基于ArcGIS Server的Web Gis开发第11章
三维可视化及三维分析
客服专线:010- 客服邮箱:
Copyright & 北发图书网 2007,
All Rights Reserved
北京北发电子商务股份有限公司 版权所有

我要回帖

更多关于 dthmlxgrid中添加控件 的文章

 

随机推荐