[转]MapX 操作总计

SET lyr=Nothing
SET Ftr=Nothing
End Select
(3)、样式更新
Dim NewStyle AS MapXLib.Style

On Error GoTo PrinterError

1、
TAB的数量分为二种多少:地图数据(Layers)、属性数据(Datasets)。关系:不可分割的一个数据集的两部分.
2、
数据加载:GST文件由GeosetManager40.exe程序生成。在程序接纳gsT文件:Map1.Geoset=Filepath+FileName
3、
难题:GST文件加载后,只是默认将地图数据加载,属性数据别的须求使用单独的吩咐举行加载,否则对属性数据的操作全体野鸡。加载:Map1.Datasets.ADD
属性数据集名称
4、 另一种加载方式:使用LayerInfo
对象,那种方法下加载地图数据源的地图集和性质集均可一直拔取。示例:
dim LayerInfo as MapXLib.LayerInfo
dim Lyr as Mpxlib.layer

三、查询

MainMap.Layers.Add LayerInfo ‘加载到指定的MapX对象中,立刻可直接使用

For j=1 to Flds.count
Lyr.KeyField= Flds.Item(J).Name
Ftrs.Item(j).Keyvalue =valueStr(J) ‘更新值列表
Ftrs.Item(j).Update True
Next

Printer.Print ” “
Printer.CurrentX = 0
Printer.CurrentY = 0
MainMap.PrintMap Printer.hDC, 0, 0, MainMap.Width * 100, MainMap.Height
* 100
Printer.NewPage
Printer.EndDoc
MainMap.Container.ScaleMode = iScaleMode
Exit Sub

SET ds = Nothing
SET Flds = Nothing
4、 创建表
(1) 临时表:
A、用MainMap.Layers.CreateLayer方法创设临时表。但以此临时表只有一个字段:GeoName(
Char 24)。程序运行进度中该表存放地点为系统临时文件夹下
B、使用LayerInfo对象成立临时表,可以指定字段。示例:

LayerInfo.AddParameter “AutoCreateDataset”, 1
LayerInfo.AddParameter “datasetname”, LayerName
Set LyrTemp = MapTemp.Layers.Add(LayerInfo, 1) ‘复制到其余Map对象

Lyr.Refresh
Lyr.Editable=False
MainMap.AuyoRedraw=True

Set Lyr=Mainmap.Layers.Item(LayerName)
Set Ftrs=Lyr.Selection.Clone ‘将方今图层中选定的会聚复制到Ftrs变量中
MainMap.AutoRedraw=False
Lyr.Editable=True
For J=1 to Ftrs.Count
Set Ftr=Ftrs.Item(J)
Ftr.Offset Xe,Ye
Ftr.Update True
Next
Lyr.Refresh
Lyr.Editable=False
MainMap.AutoRedraw=True

4、另存为图片文件
MainMap.ExportMap(App.Path+”Images”, miFormatJPEG) ‘输出当前地图窗口
参数设置:MainMap.ExportSelection=True
‘将入选部分以不相同于其余未入选地图局地款式出口

MainMap.AuyoRedraw=False
Lyr.Editable=True

Set Lyr = MainMap.Layers.Add(LayerInfo, 1)

在Professional里面,紧缩表用 Pack Table
语句完结。而在MapX中则需求选取临时图层,并用复制技术来完毕。示例:
‘紧缩当前Map对象中的所有图层
Dim LayerInfo As New MapXLib.LayerInfo
Dim Lyr As MapXLib.Layer
Dim LyrTemp As MapXLib.Layer
Dim Flds As MapXLib.Fields
Dim Ds As MapXLib.Dataset

Kill FilePath + LayerName + “.TAB”

Next

Dim I As Integer
Dim LayerName, FilePath As String

4、 测距
动用Map对象的Distance方法。怎么着测量任意多边形的周长?
应用累加的点子,还要选择图元节点集合。
Distancevalue=0
‘第四个点
Pnt.Set Ftr.Parts.Item(1).Item(1).X, Ftr.Parts.Item(1).Item(1).Y
For j=2 TO Ftr.Parts.Item(1).Count
‘累加
X1= Ftr.Parts.Item(1).Item(j-1).X
Y1= Ftr.Parts.Item(1).Item(j-1).Y
X2= Ftr.Parts.Item(1).Item(j).X
Y2= Ftr.Parts.Item(1).Item(j).Y
Distancevalue = Distancevalue +MainMap.Distance(X1, Y1, X2, Y2)
Next
‘多边形周长
Msgbox Distancevalue+” ”+MainMap.MapUnit

Set Ftrs=Lyr.SearchWithinFeature (TempCir,
miSearchTypePartiallyWithin)

5、 第二种加载数据格局:GST文件+ LayerInfo形式。示例:
应用三个MapX对象:MainMap、TempMap
TempMap.Geoset=GST文件
MainMap.geoset=””
TempMap.Refresh

′ The children of the layer are the individual

Dim Lyr As MapXLib.Layer
Dim LayerInfo As New MapXLib.LayerInfo
Dim Flds As New MapXLib.Fields

LayerInfo.Type = miLayerInfoTypeTemp
LayerInfo.AddParameter “FileSpec”, LayerName
LayerInfo.AddParameter “NAME”, LayerName
LayerInfo.AddParameter “Features”, Lyr.AllFeatures‘复制所有有效图元
LayerInfo.AddParameter “Fields”, Flds ’复制字段列表

2
园查找:在暂时图层上画一个不保留的圆,然后搜索被这些圆所包罗的持有图层的图元对象。
Dim Pnt AS MapXlib.Point
Dim TempCir AS MapXlib.Feature
Dim FeaFac AS MapXLIB.featurefactory

PrinterError:
If Err.Number = 482 Then
On Error Resume Next
CommonDialog1.Flags = &H40
CommonDialog1.ShowPrinter
Else
MsgBox ” 打印机存在不当,请纠正后重试。错误号:” + (Str(Err.Number)), ,
“失利”
End If

With NewStyle
‘设置样式
End With

1、属性的输出 输出到EXCEL表:
For I=1 to Flds.Count
Lyr.KeyFields=Flds.Item(i).Name
Excel(1,I).Cell=Ftr.Keyvalue
Next
2、复制、粘贴
Global CopyFtrs AS MapXlib.Features

LayerName = Lyr.Name

1、
制作你自己的连串的安装盘:可执行文件、须要系统文件、运行库文件、其他数据文件。
2、 单独的MapX安装盘:MapInfo MapX
Runtime安装程序,实际上是MapX控件安装程序(存在于MapX sdk包)
3、
注册:安装落成之后,运行GeosetManager40.exe程序得到硬件ID号,然后通过EMAIL的款式将该ID号发送到MapX产品供应商申请
正式的特许文件(mapx40.lic)。得到后覆盖原mapx40.lic文件即可。注意:硬盘格式化后该ID号失效。

′复制临时表数据到源表
Set LyrTemp = MapTemp.Layers.Item(LayerName)

Xe=X2-X1
Ye=Y2-Y1

十、GIS应用的分发

布局解析:做按照TAB文件的GIS系统
1、 鹰眼作用
(1) 建立七个Form对象,将五个Map对象分别位居那五个窗口对象中。
(2) 一个小窗口作为鹰眼窗口,大
窗口作为主地图窗口。鹰眼窗口中的Map对象的视野应很大,而主地图窗口的视野按照必要安装。
(3)
多个窗口中加载分歧的GST文件。需求的是主地图窗口的显示范围应为鹰眼窗口中某个矩形所含有的地图对象范围。
(4) A、在鹰眼窗口中画一个矩形(Rect为矩形对象),B、主地图窗口举行 Set
MainMap.Bounds = Rect
(5) 必要注意的是:鹰眼窗口与主地图窗口两者间的坐标投影系统应完全一致。

‘修改当前图层的每一个字段
For J=1 to Flds.Count
Lyr.KeyField= Flds.Item(j).Name ‘使近来图层指向J字段
‘更新当前图元的J字段值
Ftr.Keyvalue=NewvalueStr(J)
Ftr.Update True ‘并未写入硬盘
Next
Lyr.Refresh ‘保存修改到硬盘

1、
属性查找。Find、Search方法:注意的是Find方法只帮助TAB表文件,不帮衬空中数据表。
Find :与FoxPro中Locate定位命令想接近。
Search:支持SQL语句。写法:仅指SQL语句的WHERE
部分,且From语句中不得不有一个表——仅对单表举办操作:Select * from
LayerName WHERE ID LIKE “%北京%”
示例:
A、查找
Dim Ftrs AS MapXlib.Features ‘图元集合

Dim Xe,Ye AS Double ‘坐标偏移量

′ this data as a child of the feature

单独修改某个图元的样式:SET Ftr.Style=NewStyle,再用Update 即可
2、 成立一个线矩形
Dim Pnts AS MapXLib.Points

 

‘字段定义
Flds.AddStringField “ID”, 12
Flds.AddStringField “Name”, 50
Flds.AddNumericField “Deptch”, 12, 2
Flds.AddIntegerField “Length”

Lyr.KeyField=”ID”
Set Ftr=Ftrs.Item(J)

2
空间数据库中的索引技术用的是R_Tree技术,而不是原本一般意义上的B_Tree索引技术。
2 空间数据在Spatial中以地理特性音信形式存放。
2 在Oracle的版本中有如下必要注意事项:
a) Oracle
8.1.5以此本子中,首次引入Spatial组件。使用上相当不好:图形的体裁相当纯粹,且为黑白的而非彩色,上载地图数据时,数据丢失相当沉痛。存取数据时十分慢。在Spatial中机动创设prinx字段作为地图索引主关键字段
b) Oracle
8.1.6版本:图形为彩色的,扩展了体制的支撑,但不协理同一图层下的各种式(首要率领对象)。创立地图数据时,地图的坐标常发出偏移。属性数据更新
时,须求两遍刷新才能完整提交;地图数据数据提交时,其坐标发生偏移:向原点偏移,须要认为地单独将其活动到其先导创设地点。存取速度上或者相比较慢,离实
用尚有一定距离。在Spatial中机动创造mi_prinx字段作为地图索引主关键字段
2 Oracle
8.1.7本子:协理多种式,数据上载丢失非常小(唯有文本对象存在丢失的笔录)。在地图数据存取不是很大的时候,速度上得以被用户接受。
2 怎么样将MapInfo 的TAB表内容上传出Oracle 中?
a) 免费工具:easyloader6.7(Oracle
8.1.7),下载地址Oracle 1http://www.mapinfo.com.cn
/;
b) 怎样上载?注意:上载此前对Tab表展开压缩。
c) 在先后中怎么样选取空间数据库中的地图数据?
d)
添加地图时,必须指定字段mi_prinx的醒目值,且该值不可以为表中已存在的值。写入地图数据时,应将其整个NOT
NULL 字段值赋给,否则保存失利。
e) 示例:Tab表+空间数据表 的数据分布方式。

6种专题图:除独立值专题图绑定的字段类型可以是字符的以外,都不可能不是数字类型。与其余数据源绑定时,使用ODBC
调用ThemeDlg对话框可以让用户自己定义专题图。示例:
For Each ftr In lyr.Selection

3、 相交
认清八个图元是还是不是有交点以及交点坐标音讯。
(1)判断是或不是相交
IF Lyr.IntersectionTest( ftr1, ftr2, miIntersectFeature ) THEN
‘交点
END IF

‘修改属性
MainMap.AuyoRedraw=False
Lyr.Editable=True

5、 创立工具句柄
系统已经定义工具句柄都以平头(包含16进制)常数存在,句柄号大于1000和小于12骨干都为系统采取。
A. 定义常数:必须为全局变量
Global Const CreateSymbolTool = 13 ′创立节点
Global Const CreateLineTool = 15 ′创设管线
Global Const InfoTipTool = 16 ′音信工具
Global Const MoveFeature = 17 ′移动地图
Global Const ScaleDistanceTool = 18 ′测量两点间的距离

For I = MainMap.Layers.Count To 1 Step -1
′复制源表数据到临时表
Set Lyr = MainMap.Layers.Item(I)
Set Ds = Lyr.Datasets.Item(1)
Set Flds = Ds.Fields

系统是混合结构:对地图的走访使用的是文本访问格局,对属性数据的访问使用的是巨型数据库方式利用ID关联:在TAB表和数据库中有ID字段,多少个字段作为唯一值关联字段。(一对一的关系)。示例:

2、 空间查找
2 点查找:SearchAtPoint,结果集为Features类型
Dim Pnt AS MapXlib.Point

原贴地址:http://hi.baidu.com/story\_of\_water/blog/item/e47e90b66556eafc30add19f.html

需求:鹰眼功用、拓扑关系、分裂图形差距颜色显示、数据绑定、系统特性。

3、 上边创造对象中留存的标题:并未对其数额数据进行赋值
成立对象的同时创制其数额集合
Dim Pnt AS MapXLib.Point
Dim FeaFac AS MapXLib.FeatureFactory
Dim Lyr AS MapXLib.Layer
Dim Ftr AS MapXLib.Feature
Dim NewStyle AS MapXLib.Style
Dim ds AS MapXLib.Dataset
Dim Flds AS MapXLib.Fields

For i=1 to Ftrs.count
Set Ftr =Ftrs.Item(I)
SET Ftr.Style=NewStyle ‘更新样式
Ftr.Update True
Next

& “: ” & ftr.Keyvalue

Set lyr=mainmap.Layers.item(LayerName)
Set Ftrs=Lyr.Selection.Clone ‘复制选中集合
‘复制
For I=1 to Ftrs.Count
CopyFtrs.add Ftrs.Item(I)
Next

LayerInfo.AddParameter “AutoCreateDataset”, 1
LayerInfo.AddParameter “datasetname”, LayerName
Set Lyr = MainMap.Layers.Add(LayerInfo, 1)

四、对象编排

‘开始赋值
Set Lyr=MainMap.Layers.Item(LayerName)
Set Ftrs=Lyr.AllFeatures
Set NewStyle=Ftrs.Item(1).Style
‘设置样式
With NewStyle
.SymbolType = miSymbolTypeBitmap
.SymbolBitmapSize = 24
.SymbolBitmapTransparent = False
.SymbolBitmapName = “YIEL2-32.BMP”
End With
‘更新
MainMap.AutoRedraw=False
Lyr.Editable=True
SET Ftr.Style=NewStyle
Ftr.Update True
Lyr.Refresh
Lyr.Editable=False
MainMap.AutoRedraw=True

On Error Resume Next

Lyr.Refresh
Lyr.Editable=False
MainMap.AuyoRedraw=True

3、 分裂图形不同颜色突显
(1)更新样式
再组成临时图层就能够很好解决(使用图层刷新)。而且刷新时不会滋生整个Map对象的基础代谢(屏幕抖动)
(2)专题图 存在创新属性值后不可能实时刷新专题图的题材。
4、 数据绑定
对未绑定的属性集合使用 MainMap.Datasets.ADD
地图集合和性质集合为一个数目集合的不可分割的八个部分
5、 系统性能
速度是或不是为用户所接受、系统是不是稳定(界面必要)、修改数据数据的时候是或不是存在数据一致性维护难点、造价是或不是合理。
(1)速度:使用数据分布可以较好地解决:地图数据:地形图数据以文件格局存放,业务地图数据存放在空中数据库中;属性数据:全体存放在大型数据库中。

二、创造地图对象

七、在MapX下紧缩表

3、地图的打印
Dim iScaleMode As Integer

一、加载地图数据  

Set Lyr = MainMap.Layers.Add(LayerInfo, 1)

‘读取属性值
For I=1 to Ftrs.Count
Set Ftr=Ftrs.Item(I)
For j=1 to Flds.count
FldsName(J)=Flds.Item(J).Name ‘字段列表
Lyr.KeyField=FldsName(J)
valueStr(I,J)=Ftr.Keyvalue ‘值列表
Next
Next

‘粘贴(图形)
Set lyr_1=mainmap.Layers.item(LayerName_1)
Mainmap.AutoRedraw=False
Lyr_1.Editabled=True
For J=1 to CopyFtrs.Count
Lyr_1.AddFeature CopyFtrs.Item(J)
Next
Lyr_1.Refresh
Mainmap.AutoRedraw=True
Lyr_1.Editabled=False

With NewStyle
.LineColor=Rgb(0, 0,255)
End With
‘首个点
Pnt.Set X1,Y1
Pnts.add Pnt
‘第一个点
Pnt.Set X2,Y1
Pnts.add Pnt
‘第几个点
Pnt.Set X2,Y2
Pnts.add Pnt
‘第多个点
Pnt.Set X1,Y2
Pnts.add Pnt
‘第八个点
Pnt.Set X1,Y1
Pnts.add Pnt

For I=1 to Ftrs.Count
‘执行语句
Next

iScaleMode = MainMap.Container.ScaleMode
MainMap.Container.ScaleMode = 6

‘miSearchTypeCentroidWithin :宗旨点包蕴
‘miSearchTypePartiallyWithin :部分含有
‘miSearchTypeEntirelyWithin :全体包含

Pnt.Set X,Y
Set Ftrs=Lyr.SearchAtPoint(Pnt,miSearchResultAll)
For I=1 to Ftrs.Count
‘执行语句
Next
在意:点查找时,一般情状下结果集在一个之上的图层都设有。所以取值时应分别领取

‘绑定
SET Lyr=MainMap.Layers.Item(LayerName)
SET FeaFac=mainmap.featurefactory
‘设置点对象样式
With NewStyle
.SymbolType = miSymbolTypeBitmap
.SymbolBitmapSize = 24
.SymbolBitmapTransparent = False
.SymbolBitmapName = “YIEL2-32.BMP”
End With
Mainmap.AutoRedraw=False ‘禁止自动刷新
Lyr.Editable=True ‘置当前图层为可写状态
‘创制点对象
pnt.set X1,Y1
‘添加进当前图层
Set Ftr=FeaFac. CreateSymbol (Pnt,Newstyle) ‘创设符号
‘Set Ftr=FeaFac. CreateSymbol (Pnt,MainMap.DefaultStyle)
‘添加
Lyr.AddFeature Ftr
Lyr.Refresh
Mainmap.AutoRedraw=True
Lyr.Editable=False
‘释放
SET Pnt = Nothing
SET FeaFac = Nothing
SET Lyr = Nothing
SET Ftr = Nothing
‘以上代码放在MapX的ToolUsed事件下

‘修改样式
Dim NewStyle AS MapXlib.Style

′ features

Oracle,九、空间数据库

SET Ftr=MainMap.FeatureFactory. IntersectFeatures(Ftr1,Ftr2)
‘交点坐标新闻
For J=1 to Ftr.parts.item(1).count
X1= Ftr.parts.item(1).Item(J).X
Y1= Ftr.parts.item(1).Item(J).Y
Next

‘绑定
SET Lyr=MainMap.Layers.Item(LayerName)
SET ds=Lyr.Datasets.Item(1)
Set Flds=ds.Fields
SET FeaFac=mainmap.featurefactory
‘设置点对象样式
With NewStyle
.SymbolType = miSymbolTypeBitmap
.SymbolBitmapSize = 24
.SymbolBitmapTransparent = False
.SymbolBitmapName = “YIEL2-32.BMP”
End With
Mainmap.AutoRedraw=False ‘禁止自动刷新
Lyr.Editable=True ‘置当前图层为可写状态
‘创建点对象
pnt.set X1,Y1
‘制造图形
Set Ftr=FeaFac. CreateSymbol (Pnt,Newstyle) ‘创建符号
‘Set Ftr=FeaFac. CreateSymbol (Pnt,MainMap.DefaultStyle)
‘设置属性
For I=1 to Flds.Count
Lyr.KeyFields=Flds.Item(i).Name
Ftr.Keyvalue=valueStr(I) ‘那里并从未对字段类型举办判断
Next
‘其它一种方法:使用Rowvalues和Rowvalue对象
‘添加
Lyr.AddFeature Ftr
Lyr.Refresh
Mainmap.AutoRedraw=True
Lyr.Editable=False
‘释放
SET Pnt = Nothing
SET FeaFac = Nothing
SET Lyr = Nothing
SET Ftr = Nothing

除去图元:Lyr.DeleteFeature Ftr

Lyr.Selection.Add Ftrs
‘将近日询问所得的结果集添加到已部分结果集中,再全体高亮突显
C、对查询的结果集进行质量修改
演示程序:完毕的是Professional中信息工具作用
Dim ds AS MapXlib.Dataset
Dim Flds AS MapXlib.Fields
Dim Ftr AS MapXlib.Feature

′删除临时表
MapTemp.Layers.Remove (MapTemp.Layers.Count)
MapTemp.Refresh
Next

Next

For Each fld In ds.Fields

(2)、移动地图
先是制造一个移动工具句柄
MainMap.CreateCustomTool MoveFeature, miToolTypeLine, miPanCursor
在Map对象的ToolUsed事件的ToolNum参数为当前所激活的工具
捕捉MoveFeature工具句柄
‘传过来的参数:X1,Y1,X2,Y2
Select case ToolNum
……..
Case MoveFeature
Dim Lyr AS MapXlib.Layer
Dim Ftr AS MapXlib.Feature
Dim Ftrs AS MapXlib.Features

& ftr.Name & Str$(ftr.FeatureID), ftr.Name)

Set Lyr=MainMap.Layers.Item(LayerName)
Set ds=Lyr.Datasets.item(1)
Set Flds=ds.Fields
‘查找
SET Ftrs=Lyr.Search(“ID LIKE ““%北京%”””)
If Ftrs.count=0 then exit sub

‘创立线矩形
SET Ftr=FeaFac.CreateLine(Pnts,NewStyle)
Lyr.AddFeature Ftr
Lyr.Refresh

B. 使用CreateCustomTool成立新的工具句柄:
MainMap.CreateCustomTool CreateSymbolTool, miToolTypePoint,
miSymbolCursor
MainMap.CreateCustomTool CreateLineTool, miToolTypeLine, miCrossCursor
MainMap.CreateCustomTool InfoTipTool, miToolTypePoint, miCrossCursor
MainMap.CreateCustomTool MoveFeature, miToolTypeLine, miPanCursor
MainMap.CreateCustomTool ScaleDistanceTool, miToolTypeLine,
miPanCursor
C. 怎么着行使?
在Map对象的ToolUsed事件的ToolNum参数为当前所激活的工具
使当
前操作指向某作为:MainMap.CurrentTool=工具句柄号,如加大:MainMap.CurrentTool=miZoomInTool,移动图元:MainMap.CurrentTool=MoveFeature
操作实际的工具句柄时,执行该捕捉到的工具句柄的代码:
在ToolUsed事件中:

lyr.KeyField = fld.Name

‘SQL语句查找对应的习性音讯
SampleAdo.RecordSource =”Select a.id as id,b.name as name from Table1 a,
Table2 b WHERE (a.id=b.id) AND ( a.id LIKE ‘%“ +Ftr.Keyvalue+“%’)”

(1)、对质量的编制
紧要使用Fields对象。示例:
Dim Flds AS MapXlIB.Fields

Set Lyr = Nothing
Set Ds = Nothing
Set Flds = Nothing
Set LayerInfo = Nothing

Flds.AddStringField “ID”, 12
Flds.AddStringField “Name”, 50
Flds.AddNumericField “Deptch”, 12, 2
Flds.AddIntegerField “Length”

Set Lyr = Nothing
Set LayerInfo = Nothing

SET Ftrs=Lyr.Search(“ID LIKE ““%北京%”””)
For I=1 to Ftrs.Count
‘执行语句
Next
B、高亮突显
Lyr.Selection.Replace Ftrs
‘将眼前询问所得的结果集所有高亮彰显(隐含执行:Lyr.ClearSelection语句)——参加selection集合
闪烁:不可能用Selection,否则会对总体显示屏举办全方位刷新(抖动)。使用更新Style的法子举行选定图元的闪光。
记事图元的老样式:Set Oldsytle=Ftr.Style

LayerInfo.Type = miLayerInfoTypeTab ‘加载表的花色
LayerInfo.AddParameter “FileSpec”, FilePath + LayerName + “.TAB”
‘加载表的方方面面径名
LayerInfo.AddParameter “NAME”, LayerName ‘地图集的别名
LayerInfo.AddParameter “AutoCreateDataset”, 1 ‘是还是不是加载属性数据集
LayerInfo.AddParameter “datasetname”, LayerName ‘属性数据集别名

(2)系统是不是平安(界面必要):A、字段全体用英文,B、地图拓扑关系在进入系统从前举办要求的验证,C、文件地图数据中字段数减去到细微,可使
访问属性频率大大减弱,可使得保障其他用户访问时不会大方产出访问拒绝的气象;D、数据交由时尽量使用事务机制:
事务初阶:
Lyr.BeginAccess,事务停止:Lyr.EndAccess;E、数据修改提交时尽量使用批量交付。至于界面要求,应珍贵知足从地图对象获
取相关的必要。
(3)数据一致维护:遵守图元优先的基准。图形对象必须首先存在,其他有关新闻在此基础上创制。注意:
2 修改时应先修改地图对象,后交付属性消息
2 删除时应先删除其余音信,最终删除图形新闻
(4)造价
那里首要指平台用度。A、现有数量格式,B、功效须求:空间分析是还是不是复杂、地图图层是或不是分散、系统中地图输出的身分要求、系统中计算分析复杂程度是或不是较麻烦、直接的阳台应用用户数(并发数)。

QueryTree.Nodes.Add ftrNode, tvwChild, , lyr.KeyField _

(2)获取相交点坐标音信
‘交点
Dim Ftr AS MapXlib.Feature

For I=1 to TempMap.Layers.Count
FileName=TempMap.Layers.Item(I).Filespec
‘直接引用LayerInfo格局加载地图数据到MainMap
Next

六、专题图

MainMap.Layers.Remove (I)
MainMap.Refresh

′删除源表
Set Lyr = Nothing
FilePath = MainMap.Layers.Item(I).Filespec
LayerName = Mid(FilePath, InStr(1, FilePath, “Maps” + 6, Len(FilePath) –
InStr(1, FilePath, “Maps”)
FilePath = Mid(FilePath, 1, InStr(1, FilePath, “Maps” + 5)
LayerName = Mid(LayerName, 1, Len(LayerName) – 4)

′ Each feature has data attached to it; add


LayerInfo.Type = miLayerInfoTypeNewTable
LayerInfo.AddParameter “FileSpec”, FilePath + “” + FileName
LayerInfo.AddParameter “NAME”, LayerName
LayerInfo.AddParameter “Fields”, Flds

2、 拓扑关系
实在就是图元与图元的空中关系。说历史:原来建立拓扑关系采用的是性质关联。
点查询、圆查询、矩形查询、多边形查询等那么些是属于不难空间关系的相比较。而对拓扑关系的查询多数情状下行使Parts对象来缓解。
Ftr1与另一个Ftr2的上空关系:先找到Ftr1的其止节点,然后以这么些节点为着力画一个不行小的圆,在这几个圆范围内的某部设备可认为与该Ftr1相连。
判断某个图元在指定图层上的交接对象集合:
Set Ftrs=Lyr.SearchWithinFeature (SearchFtr,
miSearchTypePartiallyWithin)

八、怎样和重型数据库关联

Set ftrNode = QueryTree.Nodes.Add(lyrNode, tvwChild,lyr.Name _

必备:创设地图对象,必须运用FeatureFactory对象
1、 创立一个点目的
点目的有一个坐标点(X,Y),点目的变量是Point类型,点目的的样式(Style)是符号样式。
Dim Pnt AS MapXLib.Point
Dim FeaFac AS MapXLib.FeatureFactory
Dim Lyr AS MapXLib.Layer
Dim Ftr AS MapXLib.Feature
Dim NewStyle AS MapXLib.Style

Pnt.Set X,Y
Set tempcir=FeaFac.CreateCircularRegion(miCircleTypeMap ,Pnt,1,
MainMap.MapUnit,,)

十一、构造一个GIS应用系统

SET Pnt =Nothing
set TempCir =Nothing
set FeaFac =Nothing


LayerInfo.Type = miLayerInfoTypeTemp
LayerInfo.AddParameter “FileSpec”, FileName
LayerInfo.AddParameter “NAME”, LayerName
LayerInfo.AddParameter “Fields”, Flds

Set Lyr = Nothing
Set LayerInfo = Nothing

LayerInfo.Type = miLayerInfoTypeNewTable
LayerInfo.AddParameter “FileSpec”, FilePath + LayerName + “.TAB”
LayerInfo.AddParameter “NAME”, LayerName
LayerInfo.AddParameter “Features”, LyrTemp.AllFeatures
LayerInfo.AddParameter “Fields”, Flds

五、输出

(2) 成立永久表
Dim Lyr As MapXLib.Layer
Dim LayerInfo As New MapXLib.LayerInfo
Dim Flds As New MapXLib.Fields

Select Case ToolNum
Case MoveFeature
‘执行代码
End Select

相关文章