MapX4.5新功能培训教程(PPT38)(1)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

11MapX4.5新功能培训教程22创建新表数据类型字符串miTypeString=0数字miTypeNumeric=1日期miTypeDate=2整型miTypeInt=3短整型miTypeSmallInt=4浮点型miTypeFloat=5逻辑类型miTypeLogical=633增加字段的方法Fields.Addmethod-增加字段Fields.AddDateFieldmethod-增加日期类型字段Fields.AddFloatFieldmethod-增加浮点类型的字段Fields.AddIntegerFieldmethod-增加浮点类型的字段Fields.AddLogicalFieldmethod-增加整数类型的字段Fields.AddNumericFieldmethod-增加数字类型的字段Fields.AddSmallIntFieldmethod-增加短整数类型的字段Fields.AddStringFieldmethod-增加字符类型的字段删除字段Fields.Removemethod-删除一个字段Fields.RemoveAllmethod-删除所有字段44创建新表-LayerInfo对象LayerInfo.type常数miLayerInfoTypeTemp=6-临时表miLayerInfoTypeNewTable=7-磁盘表55创建新表LayerInfo参数layerinfotype;parameter;required;typemiLayerInfoTypeTemp:Name:No;String;Nameoftheaddedlayer;Default:LayerX”。Fields:No;Fieldscollection;Specifiesthecolumn(s)thetablewillhave。Features:Yes,ifnofields;Featurescollection;Specifiestherowstofillthetablewith;Default:none。TableStorageType:No;String;Default:Native,Validoptions:Native(临时tab表),MemTable(存在于内存)。66miLayerInfoTypeNewTabFileSpec:Yes;String;Nameof.tabfilefornewtable.Name:No;String;Nameoftheaddedlayer;Default:builtonfilespec.Fields:No;Fieldscollection;Specifiesthecolumnthetablewillhave.Features:Yes,ifnoFields;Featurescollection;Specifiestherowstofillthetablewith;Default:NONE.77•示例Fori=1ToGrid1.Rows-1IfInStr(StrType,字符型)0Then•flds.AddStringFieldStrName,NumWidth•ElseIfInStr(StrType,整型)Then•flds.AddIntegerFieldStrName•ElseIfInStr(StrType,短整型)Then•flds.AddSmallIntFieldStrName•ElseIfInStr(StrType,浮点型)Then•flds.AddFloatFieldStrName•ElseIfInStr(StrType,十进制型)Then•flds.AddNumericFieldStrName,NumWidth,NumDec•ElseIfInStr(StrType,日期型)Then•flds.AddDateFieldStrName•ElseIfInStr(StrType,逻辑型)Then•flds.AddLogicalFieldStrName•EndIf•Nexti88•IfCheck2.Value=1Then‘创建新表•LayerInfo.Type=7'miLayerInfoTypeNewTab•LayerInfo.AddParameterfilespec,filespec•ElseIfCheck2.Value=0Then’创建临时表•LayerInfo.Type=6'miLayerInfoTypeTemp•'LayerInfo.AddParameterTableStorageType,MemTable'临时文件保存在磁盘上还是内存。•EndIf•LayerInfo.AddParameterName,layername•LayerInfo.AddParameterFields,flds•IfOption_AddToDataset=TrueThen’加入数据集•LayerInfo.AddParameterAutoCreate,1•LayerInfo.AddParameterDatasetName,Text1.Text•EndIf99支持日期类型MapX4.5支持Date类型的字段,还有Numeric和String类型的字段.也就是说,若从外部数据源引入数据到数据集时,日期类型的字段将作为日期类型被引入,而不是以字符串类型引入,或者不引入。日期的格式由控制面板上区域设置中的日期来定义。1010•DimDateFldAsDate•‘定义数据源•OdbcQueryInfo.ConnectString=odbc;•OdbcQueryInfo.DataSource=“gcgl”‘oracle数据库•OdbcQueryInfo.SqlQuery=select*fromteam•‘定义绑定层•bindlayer.layername=Team•bindlayer.LayerType=miBindLayerTypeXY•bindlayer.RefColumn1=lng'坐标字段-经度•bindlayer.RefColumn2=“lat”‘坐标字段-纬度•‘绑定•Setds=Formmain.Map1.Datasets.add(miDataSetODBC,OdbcQueryInfo,team,Team,,bindlayer)•DateFld=ds.Value(1,ds.Fields.Count)’读出第一行日期值•MsgBoxDateFld1111紧缩在Mapx4.0下作紧缩时,只能事先创建一个带结构的空表。然后将记录加入到空表中。在Mapx4.5下可以使用LayerInfo的创建带结构的临时表和新表的功能来完成紧缩的功能。1212•Setlyr=Formmain.Map1.Layers(ToolBars.combo1.Text)•Setds=Formmain.Map1.Datasets.add(6,lyr)•'获取被紧缩表的路径及表名•filespec=Formmain.Map1.Layers.Item(ToolBars.combo1.Text).filespec•layername=lyr.Name'将表临时存放于内存•紧缩1313•LayerInfo.Type=6'miLayerInfoTypeTemp•LayerInfo.AddParameterTableStorageType,MemTable'临时文件保存在磁盘上还是内存。•LayerInfo.AddParameterName,lyrpack•LayerInfo.AddParameterFields,ds.Fields•LayerInfo.AddParameterFeatures,lyr.AllFeatures•Formmain.Map1.Layers.addLayerInfo,LayerPos‘注意:SetLayerInfo=Nothing紧缩1414•'从地图窗口删除原表•Formmain.Map1.Datasets.Remove(ds.Name)•Formmain.Map1.Layers.Remove(lyr.Name)•Formmain.Map1.Refresh•Setlyr=Nothing•Setds=Nothing•Setlyr=Formmain.Map1.Layers(lyrpack)•Setds=Formmain.Map1.Datasets.add(6,lyr)•'从磁盘删除原表•Killfilespec紧缩1515•‘创建新表•LayerInfo.Type=7'miLayerInfoTypeNewTab•LayerInfo.AddParameterfilespec,filespec•LayerInfo.AddParameterName,layername•LayerInfo.AddParameterFields,ds.Fields•LayerInfo.AddParameterFeatures,lyr.AllFeatures•Formmain.Map1.Layers.addLayerInfo,LayerPos•紧缩1616•从地图窗口删除临时表•Formmain.Map1.Datasets.Remove(ds.Name)•Formmain.Map1.Layers.Remove(lyr.Name)•Formmain.Map1.Refresh•'注意:•Setds=Nothing•Setlyr=Nothing•SetLayerInfo=Nothing紧缩1717SQL查询Layer.search方法,使用Where子句,查询定位所需数据。Variable对象和Variables集合:MapX4.5在表达式中支持变量替换.通过Variable对象和Variables集合,一个表达式中将包含对任意变量的引用,如字符串类型,feature对象类型的数据。Layer.search将之作为一个可选参数。1818地理运算符的使用object1CONTAINSobject2:object2的中心点在object1中object1CONTAINS_ENTIREobject2:object2完全在object1中.•object1CONTAINS_PARTobject2:object1与object2相交.•object1ENTIRELY_WITHINobject2:object1完全在object2中.•object1INTERSECTSobject2:object1与object2相交•object1PARTIALY_WITHINobject2:object1与object2相交.•object1WITHINobject2:object1的中心点在object2中.1919•DimfAsMapXLib.Feature•DimvAsNewMapXLib.Variables•查找州中的某一个城市•Setf=Map1.Layers.Item(“states”).Selection.Item(1)‘选择州•‘将’城市‘的图层加入数据集•Map1.Datasets.AddmiDatasetLayer,Map1.Layers(uscities),citiesds.•v.Add“var1”,f‘加入feature变量•v.Add“svar”,“TX”‘加入string变量•v.Add“dvar”,Date‘加入date变量•‘查找并将结果放入featurescollection•Setftrs=Map1.Layers.Item(uscities).Search(objwithinvar1andyear(dvar)=2000andstatesvar,v)•‘高亮显示•Map1.Layers.Item(uscities).Selection.Replaceftrs2020节点编辑编辑条件:1、具有节点的对象,如点(point),线(line),折线(polyline),区域(region)。节点可选择的对象有点,线,折线

1 / 38
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功