MapX4.5新功能培训(ppt 38页).ppt_第1页
MapX4.5新功能培训(ppt 38页).ppt_第2页
MapX4.5新功能培训(ppt 38页).ppt_第3页
MapX4.5新功能培训(ppt 38页).ppt_第4页
MapX4.5新功能培训(ppt 38页).ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MapX4.5新功能培训教程,创建新表,数据类型 字符串 miTypeString = 0 数字 miTypeNumeric = 1 日期 miTypeDate = 2 整型 miTypeInt = 3 短整型 miTypeSmallInt = 4 浮点型 miTypeFloat = 5 逻辑类型 miTypeLogical = 6,增加字段的方法 Fields.Add method - 增加字段 Fields.AddDateField method - 增加日期类型字段 Fields.AddFloatField method - 增加浮点类型的字段 Fields.AddIntegerFiel

2、d method - 增加浮点类型的字段 Fields.AddLogicalField method - 增加整数类型的字段 Fields.AddNumericField method - 增加数字类型的字段 Fields.AddSmallIntField method - 增加短整数类型的字段 Fields.AddStringField method - 增加字符类型的字段 删除字段 Fields.Remove method - 删除一个字段 Fields.RemoveAll method - 删除所有字段,创建新表 - LayerInfo对象 LayerInfo.type常数 miLaye

3、rInfoTypeTemp = 6 - 临时表 miLayerInfoTypeNewTable = 7 - 磁盘表 ,创建新表 LayerInfo参数 layerinfotype ; parameter ; required ; type miLayerInfoTypeTemp: Name: No; String; Name of the added layer ; Default: LayerX”。 Fields:No ; Fields collection ; Specifies the column(s) the table will have。 Features:Yes, if no

4、fields ; Features collection ; Specifies the rows to fill the table with ; Default: none。TableStorageType:No ; String ; Default: Native,Valid options: Native(临时tab表), MemTable(存在于内存)。, miLayerInfoTypeNewTab FileSpec:Yes ; String ; Name of .tab file for new table. Name:No ; String ; Name of the added

5、 layer ; Default: built on filespec. Fields:No ; Fields collection ; Specifies the column the table will have. Features:Yes,if no Fields ; Features collection; Specifies the rows to fill the table with ; Default: NONE .,示例 For i = 1 To Grid1.Rows - 1 If InStr(StrType, 字符型) 0 Then flds.AddStringField

6、 StrName, NumWidth ElseIf InStr(StrType, 整型) Then flds.AddIntegerField StrName ElseIf InStr(StrType, 短整型) Then flds.AddSmallIntField StrName ElseIf InStr(StrType, 浮点型) Then flds.AddFloatField StrName ElseIf InStr(StrType, 十进制型) Then flds.AddNumericField StrName, NumWidth, NumDec ElseIf InStr(StrType

7、, 日期型) Then flds.AddDateField StrName ElseIf InStr(StrType, 逻辑型) Then flds.AddLogicalField StrName End If Next i,If Check2.Value = 1 Then创建新表 LayerInfo.Type = 7 miLayerInfoTypeNewTab LayerInfo.AddParameter filespec, filespec ElseIf Check2.Value = 0 Then创建临时表 LayerInfo.Type = 6 miLayerInfoTypeTemp La

8、yerInfo.AddParameter TableStorageType, MemTable 临时文件保存在磁盘上还是内存。 End If LayerInfo.AddParameter Name, layername LayerInfo.AddParameter Fields, flds If Option_AddToDataset = True Then 加入数据集 LayerInfo.AddParameter AutoCreate, 1 LayerInfo.AddParameter DatasetName, Text1.Text End If,支持日期类型,MapX4.5 支持Date

9、类型的字段,还有 Numeric 和 String类型的字段.也就是说,若从外部数据源引入数据到数据集时,日期类型的字段将作为日期类型被引入,而不是以字符串类型引入,或者不引入。日期的格式由控制面板上区域设置中的日期来定义。,Dim DateFld As Date 定义数据源 OdbcQueryInfo.ConnectString = odbc; OdbcQueryInfo.DataSource = “gcgl” oracle数据库 OdbcQueryInfo.SqlQuery = select * from team 定义绑定层 bindlayer.layername = Team bind

10、layer.LayerType = miBindLayerTypeXY bindlayer.RefColumn1 = lng 坐标字段-经度 bindlayer.RefColumn2 = “lat” 坐标字段-纬度 绑定 Set ds = Formmain.Map1.Datasets.add(miDataSetODBC, OdbcQueryInfo, team, Team, , bindlayer) DateFld = ds.Value(1, ds.Fields.Count)读出第一行日期值 MsgBox DateFld,紧缩,在Mapx4.0下作紧缩时,只能事先创建一个带结构的空表。然后将记

11、录加入到空表中。在Mapx4.5下可以使用LayerInfo 的创建带结构的临时表和新表的功能来完成紧缩的功能。,Set lyr = Formmain.Map1.Layers(ToolBbo1.Text) Set ds = Formmain.Map1.Datasets.add(6, lyr) 获取被紧缩表的路径及表名 filespec = Formmain.Map1.Layers.Item(ToolBbo1.Text).filespec layername = lyr.Name 将表临时存放于内存,紧缩,LayerInfo.Type = 6 miLayerInfoTypeTemp LayerI

12、nfo.AddParameter TableStorageType, MemTable 临时文件保存在磁盘上还是内存。 LayerInfo.AddParameter Name, lyrpack LayerInfo.AddParameter Fields, ds.Fields LayerInfo.AddParameter Features, lyr.AllFeatures Formmain.Map1.Layers.add LayerInfo, LayerPos 注意: Set LayerInfo = Nothing,紧缩,从地图窗口删除原表 Formmain.Map1.Datasets.Remo

13、ve (ds.Name) Formmain.Map1.Layers.Remove (lyr.Name) Formmain.Map1.Refresh Set lyr = Nothing Set ds = Nothing Set lyr = Formmain.Map1.Layers(lyrpack) Set ds = Formmain.Map1.Datasets.add(6, lyr) 从磁盘删除原表 Kill filespec,紧缩,创建新表 LayerInfo.Type = 7 miLayerInfoTypeNewTab LayerInfo.AddParameter filespec, fil

14、espec LayerInfo.AddParameter Name, layername LayerInfo.AddParameter Fields, ds.Fields LayerInfo.AddParameter Features, lyr.AllFeatures Formmain.Map1.Layers.add LayerInfo, LayerPos,紧缩,从地图窗口删除临时表 Formmain.Map1.Datasets.Remove (ds.Name) Formmain.Map1.Layers.Remove (lyr.Name) Formmain.Map1.Refresh 注意: S

15、et ds = Nothing Set lyr = Nothing Set LayerInfo = Nothing,紧缩,SQL查询,Layer.search方法,使用Where子句,查询定位所需数据。 Variable 对象和Variables集合: MapX4.5 在表达式中支持变量替换.通过Variable 对象和 Variables集合,一个表达式中将包含对任意变量的引用,如字符串类型,feature对象类型的数据。Layer.search将之作为一个可选参数。,地理运算符的使用 object1 CONTAINS object2:object2的中心点在object1中 object1

16、 CONTAINS_ENTIRE object2:object2完全在object1中. object1 CONTAINS_PART object2: object1与object2相交. object1 ENTIRELY_WITHIN object2:object1完全在object2中. object1 INTERSECTS object2:object1与object2相交 object1 PARTIALY_WITHIN object2:object1与object2相交. object1 WITHIN object2:object1的中心点在object2中.,Dim f As Map

17、XLib.Feature Dim v As New MapXLib.Variables 查找州中的某一个城市 Set f = Map1.Layers.Item(“states”).Selection.Item(1) 选择州 将城市的图层加入数据集 Map1.Datasets.Add miDatasetLayer, Map1.Layers(us cities), citiesds. v.Add “var1”, f 加入 feature 变量 v.Add “svar”, “TX” 加入string 变量 v.Add “dvar”, Date 加入 date 变量 查找并将结果放入features

18、collection Set ftrs = Map1.Layers.Item(us cities).Search(obj within var1 and year(dvar) = 2000 and state svar , v) 高亮显示 Map1.Layers.Item(us cities).Selection.Replace ftrs,节点编辑,编辑条件: 1、具有节点的对象,如点(point),线(line),折线(polyline),区域(region)。节点可选择的对象有点,线,折线,区域。节点可增加的对象有点,线,面。不具有节点的对象有弧段(Arc),圆域(ellipse/circ

19、le),矩形(rectangle),圆角矩形(round rect),文本(text) 2、对象处于被选中且可编辑状态。 3、Map控件处于获得焦点状态。,选择节点: 选择工具(miSelectTool ) 1. Click鼠标,选择一个 2. Ctrl+Click:在选择与不选择间切换;选择多个;或选择范围的首点 3. Shift+Click: 选择范围的尾点,离首点距离最短 4. Shift+Ctrl+click:选择范围的尾点,离首点距离最长,编辑模式:由Map1.FeatureEditMode来设置图元编辑模式 - 拖动四个句柄,改变图元的形状:Map1.FeatureEditMode

20、 = miEditModeFeature,默认值节点编辑模式: Map1.FeatureEditMode = miEditModeNode 移动或删除重叠的节点模式:Map1.FeatureEditMode = miEditModeNode | miMoveDuplicateNodes | miDeleteDuplicateNodes 增加节点模式: Map1.FeatureEditMode = miEditModeNode | miEditModeAddNode,FeatureEditMode的常量设置miEditModeFeature = 0 x1 miEditModeNode = 0 x

21、2 miMoveDuplicateNodes = 0 x4 miDeleteDuplicateNodes = 0 x8 miEditModeAddNode = 0 x40,增加节点 Private Sub Command1_Click() Map1.Layers.Add c:program filesmapinfomapx 4.0mapsusa.tab Map1.Layers.Item(1).Editable =True Map1.Layers.Item(1).ShowNodes = True Map1.CurrentTool = miSelectTool Map1.FeatureEditMo

22、de = miEditModeNode Or miEditModeAddNode End Sub,移动或删除单个图元上的节点,而与之邻接的图元上的节点并不移动或删除。 Formmain.Map1.FeatureEditMode = miEditModeNode Formmain.Map1.SetFocus 获取焦点,移动相邻图元重叠(重合)的节点 Formmain.Map1.FeatureEditMode = miEditModeNode or miMoveDuplicateNodes Formmain.Map1.SetFocus 获取焦点,删除相邻图元重叠(重合)的节点 Formmain.M

23、ap1.FeatureEditMode = miEditModeFeature or miDeleteDuplicateNodes Formmain.Map1.SetFocus 获取焦点,新加函数,用于创建专题图,标注,SQL的表达式 Buffer DeformatNumber$ Format$ FormatDate$ FormatNumber$ StringCompare StringCompareIntl StringToDate ObjectType,以buffer为例 region object= Buffer( inputobject, resolution, width, unit

24、_name ) Private Sub BufferState_Click() Dim ftr As MapXLib.Feature Dim ftrs As MapXLib.Features Dim vars As New MapXLib.Variables 获取第一个州 Set ftr = Map1.Layers.Item(USA).AllFeatures.Item(1) vars.Add varFirstState, ftr 对图层 “USA”中每个对象做距离为 10 英里的buffer Set ftrs = Map1.Layers.Item(USA).Search _ (buffer(o

25、bj, 4, 10, mi) contains entire varFirstState, vars) MsgBox ftrs.Count End Sub,其他,支持DAO 3.6,连接Oracle8.1.6VB6.0,使用LayerInfo对象加入oracle8i数据。 Dim lInfo As Object Set lInfo = CreateObject(mapx.layerinfo.4) lInfo.Type = 4 Dim ConnectStr As String ConnectStr = SRVR= + Combo1 + ;UID= + txtUserName.Text + ;PW

26、D= + txtPassword.Text,lInfo.AddParameter connectstring, ConnectStr lInfo.AddParameter name, TempConnect lInfo.AddParameter toolkit, ORAINET lInfo.AddParameter query, select OBJECT from states where 1=0 lInfo.AddParameter cache, OFF lInfo.AddParameter mbrsearch, ON g_map.Layers.Add lInfo Set lInfo =

27、Nothing,连接Oracle8.1.6,CMapXLayers layers = m_ctrlMapX.GetLayers(); CMapXLayerInfo layerInfo; layerInfo.CreateDispatch( MapX.LayerInfo.4); layerInfo.SetType(4); if(dlg.DoModal()=IDOK) CString ConnectStr = SRVR=;UID=dzn;PWD=dzn;,连接Oracle8.1.6VC6.0,layerInfo.AddParameter(connectstring,COleVariant(ConnectStr); layerInfo.AddParameter(name,COleVariant(USA); layerInfo.AddPara

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论