摘要: 当我们编写AE程序时,通常会遇到需要存储某个AE对象的情况,比如Layer,Element,Map,Legend,NorthArrow等等这些举个例子说明一下:在我们编辑Featurelayer时,我们可以容易的将Feature存储在Featureclass中,同样,如果我们向Graphicscontainer中添加了Element,我们也希望可以容易的存储Element这样每次加载时可以将Ele...阅读全文
posted @ 2009-02-26 08:49 王者之魂 阅读(1977) 评论(0) 编辑
摘要: 编写ArcGIS程序时经常遇到向Toolbar中添加诸如TextBox等组件的需求,本文介绍向ArcGIS Toolbar添加任意windows组件的方法。新写一个类CommandCustomControl,该类实现ICommand接口和IToolControl接口,在引用CommandCustomControl窗体中添加一个windows组件,比如Label、textbox、combobox,然...阅读全文
posted @ 2009-02-13 09:29 王者之魂 阅读(1772) 评论(1) 编辑
摘要: 三、二维与三维集成及互动1三维ActiveX控件集成到二维部分欲将ActiveX控件集成到二维部分,首先必须将二维部分分割成左右两个视图,然后将ActiveX控件插入到其中一个视图中,详细实现如下。1、分割MFC视图(View)。首先建立一个继承自CFormView的视图COpenGL,该视图即是三维ActiveX控件的载体;然后建立一个继承自CSplitterWnd的类CMySplitter,该...阅读全文
posted @ 2009-01-16 13:22 王者之魂 阅读(2462) 评论(5) 编辑
摘要: 二、技术路线和功能简介 1、二维部分本系统二维部分使用VC提供的MFC与ArcGIS Engine组件实现。在MFC中使用ArcGIS Engine的控件、接口和方法必须遵循一定的步骤,并不像VB、DoNet中那样方便,下面详细介绍在MFC中应用ArcGIS Engine的步骤。1、引入ArcGIS Engine控件库文件(*.ocx)和组件库文件(*.olb)。控件库中定义了与控件相关的接口,组...阅读全文
posted @ 2009-01-15 09:06 王者之魂 阅读(2870) 评论(3) 编辑
摘要: 一、前言众所周知,二维GIS技术发展了近四十年,伴随着计算机软硬件以及关系型数据库的飞速发展,二维GIS技术已日臻完善。在对地理信息的分析功能上有着无可比拟的优势。一些宏观的地理信息,一维的地理信息,如河流、公路等,以及二维的地理信息,如植被、湖泊、人口数量等,在对这些地理信息的分析和处理上,比较适合采用二维GIS系统。二维GIS始于20世纪60年代的机助制图,今天它已经深入社会的各行各业,如土地...阅读全文
posted @ 2009-01-14 09:02 王者之魂 阅读(3051) 评论(2) 编辑
摘要: 本文是一些和layer相关的函数,如获得某一类型的所有layer,根据图层名获得layer,获得某layer所属的grouplayer等。''' <summary> ''' 得到pMap中所有的FeatureLayer图层 ''' </summary> ''' <param name="pMap">IMap对象</param> ''' <ret...阅读全文
posted @ 2009-01-09 08:17 王者之魂 阅读(705) 评论(0) 编辑
摘要: AE中toccontrol并不支持文件拖动加载,我写了一个类,可以支持toccontrol的文件加载,使用方法很简单首先在form的load事件中加入:Dim pC As New DragDropFilesTOCControlpC.DragDropAxTOCControl = AxTOCControl1pC.DragDropLoad()此时就可以向toccontrol中拖动文件,如shp、dem、...阅读全文
posted @ 2008-12-31 18:03 王者之魂 阅读(486) 评论(0) 编辑
摘要: 文件拖拽可以通过控件的drag属性进行设置,然后响应它的drag事件进行,但是有些控件并不支持文件拖拽有鉴于此,本文中写的是一个实现任意窗体、控件、组件响应文件拖拽的类,用法也很简单以Form为例,首先定义一个全局变量Private pDrag As DragDropFiles然后在form的load事件中pDrag.DragDropHwnd = Me.HandlepDrag.DragDropLo...阅读全文
posted @ 2008-12-31 17:38 王者之魂 阅读(2595) 评论(5) 编辑
摘要: 下面是获得style文件中对象的方法,它可以用于获得arcgis自带的或自己制作的style文件中的对象调用方法如下:获得color:GetStyleFileObjects("Civic.style", "Colors")获得Markersymbol:GetStyleFileObjects("Civic.style", "Marker Symbols")获得其他的对象依此类推。''' <su...阅读全文
posted @ 2008-12-31 15:47 王者之魂 阅读(572) 评论(0) 编辑
摘要: AE编程都会遇到闪烁图元的问题,Mapcontrol自带的FlashShape方法有很多束缚,不够灵活,而且闪烁必然伴随刷新,如果数据量大,还会遇到速度瓶颈下面介绍两种更为普适、更为高效、更为实用的方法:一、画笔方式闪烁图元''' <summary> ''' 异或方式闪烁选中的图元 ''' </summary> ''' <param name="pGeo">选中...阅读全文
posted @ 2008-12-26 16:04 王者之魂 阅读(992) 评论(2) 编辑
摘要: 一、移动text类型的element,并不像想象的一样,用IMoveTextFeedback 、IMoveTextAlongShapeFeedback 即可,我试过这种方法,但是行不通,或许是我的方法不对不过我用另一种方法实现了,如下:首先定义两个变量 Private m_PtStart As IPoint Private m_PtStop As IPoint在mousedown事件中加入 Dim...阅读全文
posted @ 2008-12-24 09:04 王者之魂 阅读(610) 评论(0) 编辑
摘要: 要实现任意对象List的排序,就要自己写一个类,实现IComparer(of T)接口,实现Compare方法,本例中以比较System.Drawing.Point的List为例,写了一个upComparerPoint的类,用于将存入List中的Point集合,按照"Y"从小到大排序当然,你可以写自己的类,用于实现自己的类对象的排序,这里给一个例子,供大家参考如下,其中用法是:Dim pPoint...阅读全文
posted @ 2008-12-09 09:16 王者之魂 阅读(575) 评论(0) 编辑
摘要: 本文对featureclass中插入和删除feature的几种方法进行了比较。一、插入单个feature,方法1和方法2差别不大方法1:''' <summary> ''' 向featureclass中插入feature ''' </summary> ''' <param name="pFeatureClass">要插入的featureclass</para...阅读全文
posted @ 2008-12-05 18:01 王者之魂 阅读(807) 评论(0) 编辑
摘要: 下面提供了用ADO.Net更新Geodatabase和Shapefile属性表的方法,其中只以更新某一列为统一的字符为例,当然你可以对其进行扩展,写不同的sql语句来满足你的要求''' <summary> ''' 更新MDB中某个Table的某一列为指定字符串 ''' </summary> ''' <param name="pDataBaseName">MDB路...阅读全文
posted @ 2008-12-05 08:43 王者之魂 阅读(501) 评论(2) 编辑
摘要: 该文章包括了VB中需要AddressOf操作符引用的API函数转到VB.Net中的处理方法和委托被垃圾回收的处理方法。VB:API函数SetWindowLong在VB中定义如下:Private Declare Function SetWindowLong& Lib "user32" Alias "SetWindowLongA" (ByVal hwnd&,ByVal nIndex&a...阅读全文
posted @ 2008-12-03 08:50 王者之魂 阅读(1292) 评论(0) 编辑