Gis开发重点

Gis开发重点
Gis开发重点

Gis开发

ArcGIS的体系结构:

ArcEngine功能层次由以下5部分组成:

基本服务:由GIS核心ArcObjects构成。几乎所有的GIS应用程序都需要,如几何体和显示。

数据存取:对许多栅格和矢量格式的数据进行存取,包括GeoDatabase。

地图表达:创建和显示带有符号、标注的地图以及专题地图的ArcObjects对象。

开发组件:快速应用开发的高级用户接口控件和综合帮助系统。

运行时选项:与标准功能或其他高级功能一起部署的部件。

标准Engine功能:

地图浏览、地图制作、数据查询、数据分析

所有的开发控件

—MapControl, PageLayout, Toolbar, TOC, ArcReader

对所有矢量和栅格数据源的读权限、对Shapefile和pGDB的写权限

读/写MXD文件

ArcGIS Engine类库

System类库是ArcGIS系统结构中最底层的类库。

System类库包含了构成为ArcGIS的其他类库提供服务的组件。

System类库中定义了大量开发者可以实现的接口,如AoInitializer对象就是在System类库中定义的,所有开发者必须使用这个对象来初始化ArcGIS Engine。

SystemUI

包含用户界面组件接口定义。如:Icommand、Itool和IToolControl接口。

开发者使用这些接口来扩展UI组件。

包含的一些使用工具对象,通过使用这些对象来简化用户界面的开发,如Icommand和Itool 这样的接口就在这里定义。

Geometry

处理存储在要素类中的要素形状。如:Point、MultiPoint、Polyline、Polygon等。

存储构成几何要素的子要素。如:Segement、Path、Ring等。

存储几何要素的空间参考对象。包括:投影坐标和地理坐标系统等。

Display

用于控制地图显示。

包含用于显示GIS数据的对象。

包含符号、颜色等用来控制显示的对象。

包含交互操作时提供给用户显示回馈的对象,如MoveEnvelopeFeedback。

Carto

包含操作2D地图的对象。

支持2D地图的创建和显示。

提供Map和PageLayout等基础对象。

提供MapDocument对象来操作地图文档。

使用ArcGIS Engine可以开发多种应用程序。

独立的非可视化应用程序。如控制台和实用工具应用程序。

独立的可视化应用程序。如Wiondows和基于控件的应用程序。

嵌入式应用程序。如嵌入到现有的应用程序中的组件。

跨平台的上述应用程序。用Java或C++编写。

ArcGIS Engine控件概念

嵌入式组件

一每个ArcGIS控件都是嵌入式组件,可以拖放到可视化设计环境提供的容器窗体或对话框中。一旦放在了容器内,就可以改变ArcGIS控件的大小和位置,以便与其他嵌入式组件一起为应用程序提供用户界面。

属性页

一旦控件被放入了容器中,就可以使用右键点击该控件来弹出属性页面,可以方便的访问控件的属性和方法,减少代码的编写工作量

伙伴控件

一这种类型的ArcGIS控件不能单独使用,需要和另外一个控件一起协同工作。

一ToolbarControl和TOCControl是伙伴控件

一对应的伙伴控件一般为:MapControl、PageLayoutControl、ReaderControl、SceneControl 或GlobeControl控件。

一可以通过属性页面来设置伙伴控件的关联属性。

控件命令

一ArcGIS Engine提供了一系列的命令、工具和菜单与ArcGIS控件系统工作。如放大、缩小、漫游等等。

一开发人员也可以通过创建自己定义的命令、工具和菜单来使用ArcGIS Engine提供的命令集。

一可以使用HookHelper、GlobeHookHelper和SceneHookHelper等对象来简化自定义的命令。

按照控件的功能,AE控件可以分为3类:

制图控件:MapControl、PageLayoutControl等

MapControl控件

MapControl对应于ArcMap Desktop 应用中的“数据”。MapControl控件中封装了Map 对象,用于管理控件的外观、显示属性和地图属性、管理、添加数据图层,装载地图文档,显示、绘制跟踪图层。

它实现的主要接口有IMapControlDefault、IMapControl2、IMapControl3、IMapControlEvents

PageLayoutControl控件

PageLayoutControl控件主要用于页面布局与制图。对应于ArcMap Desktop 应用中的“页面布局”视图,该控件封装了PageLayout类。

PageLayoutControl控件不能添加地图图层或地理数据,必须通过MXD文件来加载需要处理的数据。

PageLayoutControl控件主要实现IPageLayoutControlDefault、IPageLayoutControl、IPageLayoutControl2、IPageLayoutControlevents等接口。

框架控件:TOCControl、ToolbarControl等

图层树控件(TOCControl)

TOCControl用来管理图层的可见性和标签的编辑。TOCControl需要一个“伙伴控件”一起工作,“伙伴控件”可以是一个MapControl、PageLayoutControl、ReaderControl、SceneControl或者GlobeControl。

“伙伴控件”能够在设计的时候通过TOCControl的属性页设置。或者在程序运行中通过SetBuddyControl方法来设置。

“伙伴控件”都实现了ITOCBuddy接口。TOCControl利用“伙伴控件”来显示交互性的树结构目录,包括“伙伴控件”的地图、图层、符号等内容。

工具栏控件(ToolbarControl)

ToolbarControl需要与一个“伙伴控件”一起工作。“伙伴控件”可以是一个MapControl,PageLayoutControl,SceneControl或者是GlobeControl。

“伙伴控件”能够在设计的时候通过ToolbarControl的属性页设置。

ToolbarControl实现了ARCGIS中的所有功能,如果想使这些功能进一步扩展,难度很大。三维控件:GlobeControl、SceneControl等

创建菜单控件& PageLayoutControl 的使用

可被各控件加载的文档类型

ArcGIS Engine类库:

DataSourcesFile

包含用于基于文件数据源的GeoDatabase API实现。

基于文件的数据源包括:shapefile、coverage、TIN、CAD、SDC、StreetMap和VPF。

开发者不能扩展DataSourcesFile。

GeoDatabase

为ArcGIS支持的所有数据源提供了一个统一编程模型。

定义了许多由ArcObjects架构中更高级的数据源提供者实现的接口。

开发者可以扩展地理数据库,以支持特定类型的数据对象。

该类库还支持PlugInDataSource对象添加的自定义矢量数据源。

地图控件与布局控件同步

在ArcMap中,能够很方便地进行MapView和Layout View两种视图的切换,而且二者之间的数据是同步显示的。

Arcgis Engine中,可以通过MapControl和PageLayoutControl的关联实现两者的同步显示。实现这一功能的核心接口是IObjectCopy,该接口提供了Copy方法用于地图的复制Overwrite 方法用于地图写入PageLayoutControl控件的视图中。

布局控件中添加图例和比例尺

添加图例uid类别为esriCarto.legend

添加比例尺需要将uid的类别设为”esriCarto.ScaleLine“或者esriCarto.ScaleText”

TOC控件图层操作&鹰眼功能设计

Ilayer是所有图层类都实现的接口,该接口定义了所有图层的公共方法和属性;IBasicMap 是IMap接口的一个子集,可用于管理Map对象中的Layer对象等。

在ArcMap中,要调整图层的现实顺序,只需要简单的鼠标拖拽就可以完成,既简单又直观。但是TOCControl控件并未实现此功能。本实例即实现此功能。

在本实例中主要利用TOCControl控件的OnMouseDown、OnMouseUp两个事件和HitTest()、Update()方法。

OnMouseDown事件方法的主要功能是获取源图层pMovelayer。

OnMouseUp事件方法的主要功能是:

1) 获取目标图层及其索引号;

2) 利用IMap提供的Movelayer(pMoveLayer, Toindex)将源图层pMoveLayer移到目标图层(Toindex)的下方;

3)使用ITOCControl提供的Update()方法更新TOCControl控件中显示的内容。

Envelope对象

Envelope也称包络线,是一个矩形区域,是每个几何形体的最小外接矩形。每个Geometry都拥有一个Envelope。

IEnvelope是包络线对象的主要接口。它定义了Xmax、Xmin、Ymax、Ymin、Height 和Width等属性,用于获取或设置一个存在的包络线对象的空间坐标。

IEnvelope接口提供了一些方法,例如:

Expand:用于按比例缩放包络线的范围。

Offset:是一个偏移方法,通过一个设定的(X,Y)移动包络线。

CenterAt:通过改变包络线的中心点来移动包络线。

PutCoords:通过指定的坐标点来构造包络线。

Map对象

Map对象是ArcEngine的主要组成部分。Map对象既是数据的管理容器,同时也是数据显示的主要载体。

Map对象的主要接口有IMap、IActiveView、IActiveViewEvents、IMapBookmark、IGraphicsContainer、ITableCollection等。

Imap接口主要用于管理Map对象中的layer对象。常用的方法或属性包括:ActiveGraphicsLayer:地图的活动图形图层,如果没有则会自动创建一个存放图形的图层。AddLayer:向地图中添加单个图层;

AddMapSurround:向图层中添加辅助图形元素(如:比例尺、图例等)

ClearLayer:从地图中移除所有图层。

ClearSelection:清除地图选择集。

DeleteLayer:从Map中删除图层。

DeleteMapSurround:从地图中删除辅助图形元素。

DistanceUnits:地图的距离单位。

FeatureSelection:地图中选择的要素。

LayerCount:地图中图层的数目。

Layers:地图中的图层集合。

IGraphicsContainer接口主要用于管理图形元素(包括图形元素和框架元素)。IGraphicsContainer接口提供了以下主要方法:

AddElement: 添加元素、UpdateElement: 更新元素、DeleteElement: 删除元素

IActiveView接口是Map对象最主要、最常用接口之一,该接口定义了Map对象的数据显示功能。可以在Map上绘制图形、改变视图范围等。

Arc Engine中PageLayout和Map对象都实现这个接口,分别代表了布局视图和数据视图。

IActiveView接口提供的主要属性和方法有:

Extent属性:用于返回Map对象当前的视图范围,是一个Envelope对象。

FullExtent属性:用于返回视图的全图范围。

ScreenDisplay属性:用于指向一个ScreenDisplay对象

PartialRefresh方法:该方法通过指定esriViewDrawPhase参数,可以实现不同方式的局部刷新。

Layer对象

Map对象是用来装载地理数据的,而这些数据又是以图层的形式放入地图对象中,Layer 作为地图图层的装载单位。

Layer本身没有装载数据,其作用是获得数据的引用,用于管理数据源的连接。

Ilayer是所有图层类都实现的接口。

Point对象

Point对象代表一个0纬的具有X、Y坐标的几何对象。

Ipoint接口定义了Point对象的属性和方法,Point可以使用PutCoords方法创建,也可以使用IConstructPoint接口来创建。

Element对象

Element对象就是地图上不保存到数据库中的元素。例如DrawShape和DrawText方法绘制的图形都是Element对象。

IElement是所有图形元素和框架元素类都能实现的接口。

LineElement和MarkElement是最简单的图形元素。ILineElement接口只提供了一个Symbol属性,用于设置线的样式。IMarkElement接口也只提供一个Symbol ,用于设置点的样式。

FillShapeElement是一个抽象类,该类泛化出CircleElement、EllipseElement、PolygonElement 和RectanguleElement等。

该类实现了IFillShapeElement接口,通过接口提供的Symbol属性可以设置元素的样式,Symbol必须是Ifillsymbol对象。

MapSurround对象

MapSurround是一个修饰地图的辅助图形元素对象,该对象会根据Map对象的变化而做出反应。例如地图视图范围发生变化后,ScaleBar对象也会自动调整。

Color对象

Color对象是一个抽象类,它又泛化为5个类:CmykColor、GrayColor、HlsColor、HsvColor 和RgbColor,它们分别对应的接口为:ICmykColor、IGrayColor、IHlsColor、IHsvColor和IRgbColor。

专题地图制作

分层设色法使用的主要对象及接口:

ColorRamp对象

在专题地图制作中,我们常常会用到一个颜色带,而不是单一的颜色。

ArcEngine中ColorRamp类的对象就是用于产生颜色带,它实现了IColorRamp接口,定义了一系列颜色带公共方法。

ColorRamp还有4个子类,分别是:AlgorithmicColorRamp、RandomColorRamp、MultipartColorRamp和PresetColorRamp。

AlgorithmicColorRamp颜色带是通过指定起始和终止的颜色,中间的颜色通过规则计算,生成一组有序颜色带。

RandomColorRamp颜色带是在给定的颜色范围内,随机生成一组颜色带,这个颜色范围是HSV颜色模型的。

MultipartColorRamp颜色带是用多种叠加方法生成一组颜色带。

PresetColorRamp颜色带是根据预设颜色进行调整,生成一组颜色带。

Symbol对象

Symbol就是用来在地图上修饰要素或者图形元素的对象。

GIS中的离散实体分为3种:点、线、面。ArcEngine中分别用MarkerSymbol、LineSymbol 和FillSymbol来表示,此外还有:TextSymbol用于文字标注,3Dchart符号用于显示饼图等3维对象。

MarkerSymbol对象是用于修饰点对象的符号。它拥有12个子类:ArrowMarkerSymbol、BarChartSymbol、CharacterMarkerSymbol、PieChartSymbol等等。

所有的MarkerSymbol类都实现了IMarkerSymbol接口,定义了Angle、Color、Size、Xoffset、Yoffset等属性。

LineSymbol对象是用于修饰线型几何对象的符号。

ILineSymbol作为其接口,定义了两个公共属性:Color和Width。

LineSymbol类是抽象类,该类泛化出8个类:CartographicLineSymbol、HashLineSymbol、MarkerLineSymbol、MultiLayerLineSymbol、PictureLineSymbol、SimpleLine3DSymbol、SimpleLineSymbol和TextureLineSymbol。

GradientFillSymbol使用渐变颜色进行填充,该类实现了IGradientFillSymbol接口。

ColorRamp属性用于设置这个渐变填充符号的颜色带,在设置颜色条的时候,IntervalCount属性设置用户使用的颜色梯度。

Style属性用于设置渐变填充的样式,系统提供了4种样式:esriGFSLine、esriGFSRectangular、esriGFSCircular和esriGFSBuffered,它们决定了符号是采用线、矩形、圆形或缓冲的填充方法。

专题地图常用表示方法及设计

几种常用表示法使用的主要对象及接口:

FillSymbol对象

DotDensityFillSymbol是一种基于数据的点密度填充符号。

它一般与DotDensityRenderer着色对象一起使用,由MarkerSymbol组成的随机位置点来显示数据属性,而面积内的点的个数则由DotDensityRenderer对象计算出来。

该对象实现了IDotDensitySymbol接口,通过该接口可以设置填充符号的属性,如Marker的数量、尺寸、颜色等属性;BackgroundColor用于设置填充区域的背景颜色。Color 属性设置点的颜色,OutLine属性用于设置点的外框。

3DChartSymbol

3DChartSymbol是一个抽象类。它包含3个子类:BarChart、PieChart、StackedChart。

3DChartSymbol实现了多个接口,如:IChartSymbol、IBarChartSymbol、IPieChartSymbol 和IStackedChartSymbol。

IChartSymbol接口主要用于计算一个ChartSymbol对象中的柱状和饼状部分的尺寸。

使用3D符号着色时,符号可能不止一种,这时可以使用ISymbolArray接口来管理一个着色对象中的多个参与着色的符号对象。

BarChartSymbol对象实现了IBarChartSymbol接口,该对象使用不同类型的柱子来表示一个要素的不同属性。柱子的高度代表该属性值的大小。

VerticalBar属性用于确定使用水平还是垂直的柱子。Width和Spacing属性可以设置柱子间的空隙,Axes属性设置每个柱子的轴线。

PieChartSymbol对象实现了IPieChartSymbol接口。该接口定义了饼图的外观属性。例如ClockWise属性确定饼图中的着色方向,True则对应顺时针分布;UseOutline属性设置为True时,可设置饼图外框轮廓线。

AE中提供了多个着色对象用于生成专题图,可以使用标准着色方案,也可以自定义着色方案。标准着色方案都是对一个图层中的所有要素进行渲染。如果要对图层中的部分要素单独着色,则可以通过对这些要素绘制图形元素或将需着色的对象放入选择集中,为选择集创建一个新图层,然后对新图层着色的方法来实现。

SimpleRenderer

该方法是使用单一符号进行着色分类,不涉及对要素图层数据的分析处理。对同一图层中的所有元素使用同一种符号。

ClassBreakRenderer

该方法是也称为分级着色法,通过要素图层中要素的某个数值字段的值,根据用户设定将,这些值分为多个等级,每个级别用不同的Symbol显示。

ClassBreakRenderer对象实现了IClassBreakRenderer接口,该接口提供了分级显示的

属性和方法,例如:Field属性设置分级着色的字段,BreakCount属性用于设置分级的数目。

ChartRenderer

ChartRenderer方法使用饼图或者柱状图来显示一个要素的多个属性。

该对象实现了IChartRenderer接口,该接口提供了ChartSymbol方法设置着色对象的符号,Label属性用于设置Legend的标签。

该方法可比较一个要素的不同属性,因此需要获取着色图层的一个或多个字段,可通过RendererField对象来操作,该类实现了IRendererField接口,可通过AddField方法来添加字段。

地图要素的选择& 空间分析

空间查询是GIS的基本功能之一,主要分为两类:基于属性查询和基于空间位置查询(空间关系查询)

字符型字段查询

基于字符型字段的语句通常使用“=”和“LIKE”进行SQL查询,若我们确切知道某字段的值,则可用“=”。例如查找美国佛罗里达州的表达式为:“State_name =‘Florida’”。但大多数情况下不能确定某个要查询字段的确切值,那么通过使用“LIKE”进行模糊查询,例如查找美国所有开头为A的州,则表达式为:“State_name”LIKE ‘A%’。

数值型字段查询

基于数值型字段的语句通常使用比较操作符和运算符来完成,其中比较操作符包括>,<,>=,<=几种; 运算符包括+,-,*,/。

如查找面积大于1500 km2的林地的表达式为“Area > 1500 ”。

有时,一些特殊的查找仅仅靠字段值的比较是不能完成的,此时引入运算符来完成任务。

如查找人口密度小于或者等于25人/km2的城市的表达式为“POP2000 / Area<=25 ”。高级查询

应用中经常采用复合式多标准查询,条件之间用“AND”,“OR”和“NOT”来连接,还有“IN”操作符。

如查找面积大于100 km2的红树林。此查询需满足两个条件:面积大于100 km2 ;树种是红树林。需要用AND操作符,AND代表所有的条件都为真,表达式为:“VEGETATION=‘红树林’”AND “AREA>100 ”。

QueryFilter 对象与SpatialFilter 对象

在关系型数据库中,查询条件是通过SQL 语句的Where 子语句来完成的。

在ArcEngine 中不能直接使用SQL 语句,但ArcGIS Engine 提供了QueryFilter和SpatialFilter 两个过滤器对象来配合完成查询条件的设置,从而查询到想要的数据。QueryFilter 过滤器主要用于对属性数据查询条件的设置,它主要实现IQueryFilter 接口从而实现属性查询功能。

AE中空间查询主要用到IspatialFilter接口,属性查询主要用到IqueryFilter接口。QueryFilter组件类指定一个属性查询过滤器,利用该过滤器可以从要素集中筛选出满足条件的对象。对应的AddField方法用于向输出字段集中添加一个字段,WhereClause用于获取或设置查询过滤条件。

空间拓扑运算:

空间拓扑描述的是地理对象的空间位置关系,即相邻、重合、连通等等。

拓扑是在同一个要素集(FeatureDataset)下的要素类之间的关系的集合。

在ESRI提供的数据存储方式中,Coverage和GeoDatabase能够建立拓扑,而Shape 格式的数据不能建立拓扑。

AE中提供了ITopplogicalOperator接口用于拓扑运算。该接口通过对已存在的几何对象做空间拓扑运算,以产生新的结合对象。实现该接口的类有:Point、Multipoint、Polyline和Multipatch等等。

ITopplogicalOperator接口在GIS开发中应用非常广泛,其主要的方法有:

方法名称说明

Boundary几何图形对象的边界

Buffer对几何图形对象进行缓冲区空间拓扑操作Clip对几何图形对象进行裁剪空间拓扑操作

ConstructUnion 高效的合并多个枚举几何对象与单个几何对象合并为单个几何对象,这对于大量几何对象的合并非常高效

ConvexHull构建几何对象的凸边形Cut切割几何对象

Difference 一个几何图形减去它与另一个几何图形相交的部分

Intersect两个同维度几何对象的交集部分Simplify使几何对象拓扑一致

SymmetricDifference 对称差分将两个几何图形的并集部分减去两个几何图形交集的部分

Union合并两个同维度的几何对象为单个几何对象

Boundary方法用于几何图形对象的边界操作。要注意的是多边形的边界是组成它的Polyline 对象,Polyline对象的边界是组成它的顶点Point对象,Point对象的边界则为空。

Buffer方法用于几何图形缓冲区拓扑操作,Buffer方法用于给一个高级几何对象生成一个缓冲区。无论Polygon、Polyline还是Point,它们的缓冲区都是具有面积的几何对象。

Clip方法用于对几何图形对象进行裁剪空间拓扑操作。它是用一个Envelope对象对一个几何对象进行裁剪,操作结果是几何对象被Envelope对象所包围的部分。

Difference方法用于从一个几何图形中减去其与另一个几何图形相交的部分,生成两个几何对象的差集。

ConstructUion方法用于将多个枚举对象与单个几何对象合并成为单个几何对象。

Union方法用于将两个同维度的几何对象合并为单个几何对象,Union方法和ConstructUion 都用于合并几何对象,所不同的是Union合并两个同维度的几何对象,后者是将多个几何对象与单个几何对象合并为单个几何对象。

Intersection方法用于获取两个同维度的几何对象的交集部分。

SymmetricDifference(对称差分)方法可将两个几何图形的并集部分减去两个几何图形的交集的部分。

什么是空间关系?

空间关系是GIS的重要理论问题之一,在GIS数据建模、空间查询、空间分析、空间推理、制图综合、地图理解等过程中起着重要作用。目前国际上对空间关系的研究主要集中在空间关系的语义问题、空间关系描述、空间关系表达、基于空间关系的查询分析等方面。空间关系主要包括距离关系、方向关系、拓扑关系及空间关系相似性等。

地理要素之间的空间区位关系可抽象为点、线(或弧)、多边形(区域)之间的空间几何关系。

空间关系运算主要用到Irelationaloperator和IProximityOperator 接口,通过该接口的方法获取两个几何对象之间的关系是否存在。

IRelationalOperator

几何对象之间都存在空间上的某种关联关系,例如:包含、相交、相等、相接等。

AE中这些关联关系都可以通过IRelationalOperator接口来获得。

关系运算是在两个几何对象之间进行,通过IRelationalOperator 的某个方法返回一个布尔值来说明这两个几何对象是否存在这种关系。

所有支持Itopologicaloperator的几何对象,也实现了IRelationalOperator接口,其中包括Envelope对象。

IRelationalOperator 的主要方法有:

空间关系运算(2)空间插值

空间关系运算:IProximityOperator

IProximityOperator 接口用于获取两个图形的距离,以及给定一个点,求另一个几何图形上离给定点最近的点。

该接口的主要方法有:QueryNearestPoint、ReturnDistance和ReturnNearestPoint。

ReturnDistance方法用于返回两个几何对象间的最短距离。

QueryNearesPoint方法用于查询获取几何对象上离给定输入点的最近距离的点的引用。

ReturnNearestPoint方法用于创建并返回几何对象上离给定输入点的最近距离的点。

空间插值常用于将离散点的测量数据转换为连续的数据曲面,它包括内插和外推两种算法。前者是通过已知点的数据计算同一区域内其他未知点的数据,后者则是通过已知区域的数据,求未知区域的数据。

主要的内插方法有:反距离加权(Inverse Distance Weighted)、全局多项式(Global Polynomial Interpolation)、全局多项式(Local Polynomial Interpolation)、径向基函数(Radial Basis Funtions)、克里金内插(Kriging )

克里金法广泛地应用于地下水模拟、土壤制图、地层模型、储层横向预测、煤层分布检测等领域。

原理:它首先考虑的是空间属性在空间位置上的变异分布.确定对一个待插点值有影响的距离范围,然后用此范围内的采样点来估计待插点的属性值。该方法在数学上可对所研究的对象提供一种最佳线性无偏估计(某点处的确定值)的方法。它是考虑了信息样品的形状、大小及与待估计块段相互间的空间位置等几何特征以及品位的空间结构之后,为达到线性、无偏和最小估计方差的估计,而对每一个样品赋与一定的系数,最后进行加权平均来估计块段品位的方法。但它仍是一种光滑的内插方法在数据点多时,其内插的结果可信度较高。

IDL(Interactive Data Language)—强大的交互式数据处理开发语

语法简单的第四代数据可视化语言

?面向矩阵的语言

-代码少

-速度快

?功能强大,简单易学,很少的几行代码就能实现其他语言很难实现的功能

?进行科学数据分析、可视化表达和跨平台应用开发的高效软件和理想工具。

?方便ENVI二次开发

桌面版开源GIS软件有GRASS,UDIG,OSSIM,QGIS,MapWindows,gvSIG,Kosmo,JUMP/JCS,SAGA,ILWIS,SharpMap等,目前GRASS已经覆盖了大多数GIS功能,UDIG 产品优势在于地图编辑,QGIS用户界面友好。

Good luck.

相关主题
相关文档
最新文档