分类: GIS预览模式: 普通 | 列表

11

11

AE小程序

一些小程序

查看更多...

Tags: GIS

分类:GIS | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 909

11

11

选择集的秘密

map对象在ARCMAP里面是一个核心的组成部分,我们需要认识到MAP对象具有两面性,一方面是数据的容器,一方面是数据的显示器,做容器的时候,实现的是imap接口;做显示器的时候,实行的是iactiveview接口。要素选择集不是特殊的对象,仅仅是要素的特殊状态。

查看更多...

Tags: GIS

分类:GIS | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 680

11

11

再谈要素选择集

在我们查询数据的过程中,一直遇到选择集的问题。我们知道,要得到符合某种准则的数据,一般而言有两种不同的手段,一是使用select方法,它返回的是一个指向数据的Cursor对象;另一种是构造选择集(SelectionSet),然后在选择集中再得到Cursor,后者虽然走了弯路,但是在显示的效果上却比前者好,即得到的要素选择集在Map上会呈高亮显示。
我们通过IMap::SelectByShape方法得到过选择集,使用要素图层的IFeatureSelection接口也可以得到选择集,但是这些都仅仅是在“表面”探讨,那么,要素选择集在地理数据库中到底表现为什么东西呢?
SelectionSet对象是程序获得的被选择的行对象集合,这些行只能来自单个表或要素类,但是一个表或者要素类可以产生多个选择集对象。选择集有两种形式,它要么是基于与被选择的行对象的OID集合,要么就是一个实实在在的行对象本身,在后面这种情况下,选择集会提供方法让程序员与在选择集中的行对象进行交互。至于使用何种方式来得到选择集,我们可以使用SelectionType属性来设置。
选择集的类型如果是esriSelectionIDSet,那代表选择集使用的是一个OID集合,这些OID值可能保存在一个物理表中,也可能保存在内存中,这取决于数据源的类型;当它为esriSelectionTypeSnapShot时,它表明选择集使用的是保存在内存中的实际的行对象;如果是esriSelectionTypeHybird,那情况就比较灵活,当选择数量少的时候选择集使用在内存中的行对象,当数量多时则使用OID集合。
使用标识集合(如OID集合)可以表示数目巨大的选择集,它也是程序最常使用的一种方式,当数据源每一次被选择的对象还需要进行查询的时候,这种方式可以保证选择集是动态的,而且在数据源改变的时候自动变化。Snapshot类型选择集数度最快,而且一但选择集构造完成后就不再要求与数据源发生查询,但是它对少量数据是有效的,如果选择的数据多,占用内存大时,它的优势就发挥不出来了;Hybird类型选择集包含了前两者的有点,它可以依据选择数据的大小而自动选用不同的选择方式,但是这个选择数据的大小并不能由程序来控制。

查看更多...

Tags: GIS

分类:GIS | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 615

09

20

空间查询的实现

空间查询是一个经常要用到的功能,它是通过给定一定的范围,查询得到在这个空间范围内的要素的查询方式。下面的代码是在返回鼠标点击点周围长宽100个地图单位的矩形范围内的要素。

查看更多...

Tags: GIS

分类:GIS | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 605

07

11

selection code test

The code of one button which will perform the function of select by attribute.

using the map that arcgis provided :world

test1:

Dim selectstr As String
          selectstr = """CITY_NAME"" ='Nanchang'"
          Dim gp As Geoprocessor = New Geoprocessor
          ''利用SelectLayerByAttribute
          Dim SelectByAttribute As SelectLayerByAttribute = New SelectLayerByAttribute
          SelectByAttribute.in_layer_or_view = Form1.AxMapControl1.Map.Layer(0)
          SelectByAttribute.selection_type = "NEW_SelectION"
          SelectByAttribute.where_clause = selectstr
          gp.Execute(SelectByAttribute, Nothing)

查看更多...

Tags: GIS

分类:GIS | 固定链接 | 评论: 1 | 引用: 0 | 查看次数: 858

07

09

PartialRefresh时出现了“要求对象”错误

用PartialRefresh时居然出现了“要求对象”的错误,明明我已经加了object了!探索中……

查看更多...

Tags: GIS

分类:GIS | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 610

07

09

AE编程连接ArcSDE

用AE编写程序连接ArcSDE时总是说“Entry for SDE instance not found in services file”,按网上说法把services文件改了还是一样,非常郁闷。今天查看Arcgis帮助时偶然发现:
Provider=ESRI.GeoDB.OLEDB.1;Location=server name;Data Source=database name; User Id=user name;Password=password; Extended Properties=WorkspaceType= esriDataSourcesGDB.SDEWorkspaceFactory.1;Geometry=WKB|OBJECT;Instance=ArcSDE service;Version=ArcSDE version
居然程序里面的Instance是指服务名(或端口号)!!!差点晕倒!!修改过后成功连接。看来以后遇到问题多看帮助文档才是上策。(无奈Arcgis的帮助都是英文的,很难看懂。)

查看更多...

Tags: GIS

分类:GIS | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1853

07

08

如何知道已实现接口具体属于哪个类

在C:\ArcGIS\DeveloperKit\tools\路径下有一个LibraryLocator.exe文件,这个就是方便查找新类库的工具,输入接口名字查找就行了。

Tags: GIS

分类:GIS | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 792
幻の小屋
软件&技术