MapX4.5新功能培训教程

上传人:仙*** 文档编号:242537248 上传时间:2024-08-27 格式:PPTX 页数:38 大小:161.97KB
返回 下载 相关 举报
MapX4.5新功能培训教程_第1页
第1页 / 共38页
MapX4.5新功能培训教程_第2页
第2页 / 共38页
MapX4.5新功能培训教程_第3页
第3页 / 共38页
点击查看更多>>
资源描述
单击以编辑母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,*,8/27/2024,38,8/27/2024,38,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.AddIntegerField method - 增加浮点类型的字段 Fields.AddLogicalField method - 增加整数类型的字段 Fields.AddNumericField method - 增加数字类型的字段 Fields.AddSmallIntField method - 增加短整数类型的字段 Fields.AddStringField method - 增加字符类型的字段,删除字段,Fields.Remove method - 删除一个字段 Fields.RemoveAll method,- 删除所有字段,创建新表 - LayerInfo对象,LayerInfo.type,常数,miLayerInfoTypeTemp = 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 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 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 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, 日期型) 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,LayerInfo.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,支持日期类型,MapX,4.5,支持,Date,类型的字段,还有 Numeric 和 String类型的字段.也就是说,若从外部数据源引入数据到数据集时,日期类型的字段将作为日期类型被引入,而不是以字符串类型引入,或者不引入。日期的格式由控制面板上区域设置中的日期来定义。,Dim DateFld As Date,定义数据源,OdbcQueryInfo.ConnectString = odbc;,OdbcQueryInfo.DataSource = “gcgl” oracle数据库,OdbcQueryInfo.SqlQuery = select * from team,定义绑定层,bindlayer.layername = Team,bindlayer.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,下作紧缩时,只能事先创建一个带结构的空表。然后将记录加入到空表中。在,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,LayerInfo.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.Remove (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, filespec,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,注意:,Set 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 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 MapXLib.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 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/circle),矩形(rectangle),圆角矩形(round rect),文本(text) 2、对象处于被选中且可编辑状态。 3、Map控件处于获得焦点状态。,选择节点,:,选择工具(miSelectTool,) 1. Click鼠标,选择一个 2. Ctrl+Click:在选择与不选择间切换;选择多个;或选择范围的首点 3. Shift+Click: 选择范围的尾点,离首点距离最短 4. Shift+Ctrl+click:选择范围的尾点,离首点距离最长,编辑模式:由Map1.FeatureEditMode来设置,图元编辑模式 - 拖动四个句柄,改变图元的形状:Map1.FeatureEditMode = miEditModeFeature,,默认值,节点编辑模式: Map1.FeatureEditMode = miEditModeNode 移动或删除重叠的节点模式:Map1.FeatureEditMode = miEditModeNode | miMoveDuplicateNodes | miDeleteDuplicateNodes 增加节点模式: Map1.FeatureEditMode = miEditModeNode | miEditModeAddNode,FeatureEditMode的常量设置,miEditModeFeature = 0x1 miEditModeNode = 0x2 miMoveDuplicateNodes = 0x4 miDeleteDuplicateNodes = 0x8 miEditModeAddNode = 0x40,增加节点,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.FeatureEditMode = miEditModeNode Or miEditModeAddNode,End Sub,移动或删除,单个图元上的节点,而与之邻接的图元上的节点并不移动或删除。,Formmain.Map1.FeatureEditMode = miEditModeNode,Formmain.Map1.SetFocus 获取焦点,移动,相邻图元,重叠,(重合)的,节点,Formmain.Map1.FeatureEditMode = miEditModeNode or miMoveDuplicateNodes,Formmain.Map1.SetFocus 获取焦点,删除相邻图元重叠(重合)的节点,Formmain.Map1.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_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(obj, 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 + ;PWD= + 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 = 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.AddParameter(toolkit,COleVariant(ORAINET);,layerInfo.AddParameter(query,COleVariant(Select * from,China);,layerInfo.AddParameter(cache,COleVariant(ON);,layerInfo.AddParameter(mbrsearch,COleVariant(OFF);,layers.RemoveAll();,layers.Add(layerInfo);,连接Oracle8.1.6VC6.0,缓冲区Cache,ON -,下载数据放在内存和磁盘(*.map,*.id),这将有助于提高选择速度、刷新速度,平移,放大的操作的速度。缺点下载速度较OFF慢。平移若超出缓冲区所存的数据范围,将从数据库中读取数据,这将影响缩小及平移的速度。,OFF ,下载速度快,选择速度慢、平移和缩小、放大慢,MBR Search,ON -,在从数据库载入数据时要占用一定的时间,。,下载Oracle8i的各参数含义,PII 333 64M 数据表为31002条记录情况下:,cashe MBRsearch Time,off off 0:0:56,on on 0:3:56,on off 0:2:12,off on 0:1:20,不同参数设置时下载时间对比,增加图元-PRINX,Dim rv As New MapXLib.RowValue,Dim rvs As New MapXLib.RowValues,Set ftr = FtrFac.CreateRegion(points, Map1.DefaultStyle),Set rv.Dataset = Map1.Datasets.Item(1),Set rv.Field = Map1.Datasets.Item(1).Fields(mi_prinx),rv.Value = Str(Map1.Layers(ToolBars.Combo1).AllFeatures.Count + 1),rvs.Add rv,lyr.AddFeature ftr, rvs,谢谢!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!