ArcGIS+Engine+的开发与部署看过.docx

上传人:b****2 文档编号:577843 上传时间:2023-04-29 格式:DOCX 页数:17 大小:603.15KB
下载 相关 举报
ArcGIS+Engine+的开发与部署看过.docx_第1页
第1页 / 共17页
ArcGIS+Engine+的开发与部署看过.docx_第2页
第2页 / 共17页
ArcGIS+Engine+的开发与部署看过.docx_第3页
第3页 / 共17页
ArcGIS+Engine+的开发与部署看过.docx_第4页
第4页 / 共17页
ArcGIS+Engine+的开发与部署看过.docx_第5页
第5页 / 共17页
ArcGIS+Engine+的开发与部署看过.docx_第6页
第6页 / 共17页
ArcGIS+Engine+的开发与部署看过.docx_第7页
第7页 / 共17页
ArcGIS+Engine+的开发与部署看过.docx_第8页
第8页 / 共17页
ArcGIS+Engine+的开发与部署看过.docx_第9页
第9页 / 共17页
ArcGIS+Engine+的开发与部署看过.docx_第10页
第10页 / 共17页
ArcGIS+Engine+的开发与部署看过.docx_第11页
第11页 / 共17页
ArcGIS+Engine+的开发与部署看过.docx_第12页
第12页 / 共17页
ArcGIS+Engine+的开发与部署看过.docx_第13页
第13页 / 共17页
ArcGIS+Engine+的开发与部署看过.docx_第14页
第14页 / 共17页
ArcGIS+Engine+的开发与部署看过.docx_第15页
第15页 / 共17页
ArcGIS+Engine+的开发与部署看过.docx_第16页
第16页 / 共17页
ArcGIS+Engine+的开发与部署看过.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

ArcGIS+Engine+的开发与部署看过.docx

《ArcGIS+Engine+的开发与部署看过.docx》由会员分享,可在线阅读,更多相关《ArcGIS+Engine+的开发与部署看过.docx(17页珍藏版)》请在冰点文库上搜索。

ArcGIS+Engine+的开发与部署看过.docx

ArcGIS+Engine+的开发与部署看过

ArcGISEngine库

SystemSystemUI

GeoAnalyst

Geometry

3DAnalyst

Display

GlobeCore

Server

SpatialAnalyst

Output

GeoStatisticalAnalyst

Geodatabase

Publisher

GISClient

ArcReaderControl

GeoDatabaseDistributed

DataSourcesFile

DataSourcesOleDB

DataSourcesRaster

Cato

Location

NetWorkAnalysis

Controls

主要LibraryLibrary介绍介绍

System:

System库是ArcGIS框架中最底层的一个库,它包含了一些被其他库使用的一些组件。

SystemUI:

SystemUI库定义了一些在ArcGIS中被用户界面组件使用的类型。

象Icommand和Itool这样的接口就在这里定义。

Geometry:

几何库包含了核心的几何对象,比如点,面,线等。

在几何库中还定义和实现了空间参考的对象,包括投影坐标系和几何坐标系。

Display:

显示库包含了支持在输出设备上显示图形的组件,屏幕显示,符号,颜色等都在这个库中定义。

Controls:

控件库包含了应用程序开发中用到的控件,包括在控件中使用的命令和工具。

Carto

Carto库包含了为数据显示服务的对象。

PageLayout和Map对象在这个库中,以及支持各种数据类型的图层,渲染。

这个库中也包括了MxdServer和MapServer对象,它们通常被Server用来显示地图数据。

GeoDatabase

GeoDatabase包含了所有相关数据组织的定义类型。

要素,表,网络,TIN都在这个库中定义。

其中一些类型的实现在各自的数据来源的库中。

DataSourcesFile

DataSourcesFile库包含了为支持的矢量数据格式提供的工作空间工厂和工作空间.

DataSourcesGDB

DataSourcesGDB库包含了为存储在RDBMS中的矢量和栅格数据提供的工作空间工厂和工作空间。

GeoDatabaseDistributed

GeoDatabaseDistributed库包含了需要执行checkout/checkin的离线GeoDatabase的对象。

DataSourcesOleDB

DataSourcesOleDB库为通过OleDB方式提供的数据提供空组空间。

DataSourcesRaster

DataSourcesRaster包含了为基于文件方式的栅格数据提供的工作空间工厂和工作空间。

GISClient

GISClient库包含了作用于远程GIS服务的对象。

这些远程服务可以有ArcGISServer和ArcIMS提供。

Server库包含了连接ArcGISServer的对象,以及管理这个连接的对象。

GeoAnalyst

GeoAnalyst库包含了核心的空间分析功能,这些功能是在spatialAnalyst和3DAnalyst扩展都会用到的功能。

3DAnalyst

3DAnalyst库包含了数据的3d分析对象,也包括显示3d数据,在这个库中有一个控件SceneControl可用。

GlobeCore

GlobeCore库包含了globe数据分析的对象,也包含了显示globe数据,在这个库中有一个控件GlobeControl可用。

SpatialAnalyst

SpatialAnalyst库包含了在栅格和矢量数据上执行空间分析的对象。

控件控件

MapControl

PageLayoutControl

TocControl

ToolbarControl

SceneControl

GlobeControl

ReadControl

编程开始之前需要做什么?

阅读ArcGISEngineDeveloper向导!

了解ArcObjects编程的基础

具体步骤:

1.安装ArcGISEngine开发包.

2.决定你将开发的应用程序的类型

3.选择一种API和开发环境.

4.编写应用程序代码.

5.分发应用程序.

选择一种ArcGISEngineAPI

×APIs是到达底层的ArcObjects的函数

×不同的APIs使用的是相同的底层的对象和接口

×COM,.NET,Java,andC++.

使用.NETAPI编程

Requirements

–.NETFramework1.1

–ReferenceESRI.NETassemblies(.dlls)

..\ProgramFiles\ArcGIS\DotNet

PrimaryInteropAssemblies(PIA)

SignedbyESRI

RegisteredinGACwheninstalled

Typesofapplications

–Virtuallyanytype

–Windowsandcontrolbased

–Crossproduct:

DesktopandArcGISEngine

–Webaccessclasses

.Net环境中ArcGISEngine的开发实例

1在MicrosoftVisualStudio.NET.中引用相应的库,加载ArcGIS控件

2在控件中加入相应的地图文件

3添加工具条

4创建弹出式菜单

5创建一个子定义的工具

6自定义工具条

加载ArcGIS控件

1新建一个project

2在添加Components对话框中,选择ESRIMapControl,ESRIPageLayoutControl,ESRITOCControl,ESRIToolbarControl,在ToolBox中会以这样的图标出现

3在添加references对话框中,选择ESRICartoObjectLibrary,ESRIDisplayObjectLibrary,ESRIGeometryObjectLibrary,ESRISystemObjectLibrary,ESRISystemUIObjectLibrary

在Form中嵌入ArcGIS控件

1打开已有的Form

2通过双击或者拖动的方式把工具箱中的ArcGIS控件加入到From中

在MapControl和PageLayout中添加地图文档

×PrivateSubForm_Load()

‘在Pagelayout中检查和加载地图文档

DimsFileNameAsString

sFileName="..\..\..\Data\GulfofSt.Lawrence.mxd"

IfPageLayoutControl1.CheckMxFile(sFileName)Then

PageLayoutControl1.LoadMxFilesFileName

EndIf

×EndSub

PrivateSubPageLayoutControl1_OnPageLayoutReplaced(ByValnewPageLayoutAs

Variant)

‘加载相同的地图文档到MapControl中

MapControl1.LoadMxFilePageLayoutControl1.DocumentFilename

'SettheextentoftheMapControltothefullextentofthedata

MapControl1.Extent=MapControl1.FullExtent

EndSub

设置设置TOCControlTOCControl,ToolBarControlToolBarControl和

PageLayoutControlPageLayoutControl的联系的联系

PrivateSubForm_Load()

'在Pagelayout中检查和加载地图文档

DimsFileNameAsString

sFileName="..\..\..\Data\GulfofSt.Lawrence.mxd"

IfPageLayoutControl1.CheckMxFile(sFileName)Then

PageLayoutControl1.LoadMxFilesFileName

EndIf

‘设置联系

TOCControl1.SetBuddyControlPageLayoutControl1

ToolbarControl1.SetBuddyControlPageLayoutControl1

EndSub

在ToolBarControlToolBarControl中添加工具中添加工具

DimsProgIDAsString

‘添加PageLayout中的浏览工具

sProgID="esriControlTools.ControlsPageZoomInTool"

ToolbarControl1.AddItemsProgID,,,True,,esriCommandStyleIconOnly

sProgID="esriControlTools.ControlsPageZoomOutTool"

ToolbarControl1.AddItemsProgID,,,False,,esriCommandStyleIconOnly

sProgID="esriControlTools.ControlsPagePanTool"

ToolbarControl1.AddItemsProgID,,,False,,esriCommandStyleIconOnly

‘添加Map浏览工具

sProgID="esriControlTools.ControlsMapZoomInTool"

ToolbarControl1.AddItemsProgID,,,True,,esriCommandStyleIconOnly

sProgID="esriControlTools.ControlsMapZoomOutTool"

ToolbarControl1.AddItemsProgID,,,False,,esriCommandStyleIconOnly

sProgID="esriControlTools.ControlsMapPanTool"

ToolbarControl1.AddItemsProgID,,,False,,esriCommandStyleIconOnly

为PageLayout创建弹出式菜单

菜单定义

OptionExplicit

Privatem_pToolbarMenuAsIToolbarMenu‘菜单定义

PrivateSubForm_Load()

‘创建新的菜单

Setm_pToolbarMenu=NewToolbarMenu

‘在菜单中添加命令

m_pToolbarMenu.AddItemsProgID,,,False,esriCommandStyleIconAndText

sProgID="esriControlTools.ControlsPageZoomOutFixedCommand"

m_pToolbarMenu.AddItemsProgID,,,False,esriCommandStyleIconAndText

sProgID="esriControlTools.ControlsPageZoomWholePageCommand"

m_pToolbarMenu.AddItemsProgID,,,False,esriCommandStyleIconAndText

sProgID=

"esriControlTools.ControlsPageZoomPageToLastExtentBackCommand"

m_pToolbarMenu.AddItemsProgID,,,True,esriCommandStyleIconAndText

sProgID=

"esriControlTools.ControlsPageZoomPageToLastExtentForwardCommand"

m_pToolbarMenu.AddItemsProgID,,,False,esriCommandStyleIconAndText

‘把此菜单与PageLayoutControl挂钩

m_pToolbarMenu.SetHookPageLayoutControl1

EndSub

PrivateSubPageLayoutControl1_OnMouseDown(ByValbuttonAsLong,ByVal

shiftAsLong,ByValxAsLong,

ByValyAsLong,ByValpageXAsDouble,ByValpageYAsDouble)

‘右键弹出菜单

Ifbutton=vbRightButtonThen

m_pToolbarMenu.PopupMenux,y,PageLayoutControl1.hWnd

EndIf

EndSub

使得在TOCControl中的标注可编辑

TOCControl1.LabelEdit=esriTOCControlManual

在MapControlMapControl上画图形上画图形

PrivateSubMapControl1_OnAfterDraw(ByValdisplayAs

Variant,ByValviewDrawPhaseAsLong)

DimpViewDrawPhaseAsesriViewDrawPhase

pViewDrawPhase=viewDrawPhase

IfpViewDrawPhase=esriViewForegroundThen

‘刷新前景的时候画

MapControl1.DrawShapem_pEnvelope,m_pFillSymbol

EndIf

EndSub

创建一个自定义的工具

创建一个ActiveXDll的工程

添加相关的引用

实现两个接口ICommand和ITool

编译注册

添加到对应的ToolBarControl中

自定义ToolBarControl

自定义ToolBarControl就意味着可以定制工具条

分发

PrivateSubForm_Load()

×

'CreateanewAoInitializeobject

Setm_pAoInitialize=NewAoInitialize

Ifm_pAoInitializeIsNothingThen

MsgBox"Unabletoinitialize.Thisapplicationcannotrun!

"

UnloadForm1

ExitSub

EndIf

'Determineiftheproductisavailable

Ifm_pAoInitialize.IsProductCodeAvailable(esriLicenseProductCodeEngine)=esriLicenseAvailableThen

Ifm_pAoInitialize.Initialize(esriLicenseProductCodeEngine)<>esriLicenseCheckedOutThen

MsgBox"Theinitializationfailed.Thisapplicationcannotrun!

"

UnloadForm1

ExitSub

EndIf

Else

MsgBox"TheArcGISEngineproductisunavailable.Thisapplicationcannotrun!

"

UnloadForm1

ExitSub

EndIf

EndSub

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2