MapX4.5新功能培训(共39张).pptx

上传人(卖家):三亚风情 文档编号:3472697 上传时间:2022-09-04 格式:PPTX 页数:39 大小:330.14KB
下载 相关 举报
MapX4.5新功能培训(共39张).pptx_第1页
第1页 / 共39页
MapX4.5新功能培训(共39张).pptx_第2页
第2页 / 共39页
MapX4.5新功能培训(共39张).pptx_第3页
第3页 / 共39页
MapX4.5新功能培训(共39张).pptx_第4页
第4页 / 共39页
MapX4.5新功能培训(共39张).pptx_第5页
第5页 / 共39页
点击查看更多>>
资源描述

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

2、 method-增加浮点类型的字段 Fields.AddIntegerField method-增加浮点类型的字段 Fields.AddLogicalField method-增加整数类型的字段 Fields.AddNumericField method-增加数字类型的字段 Fields.AddSmallIntField method-增加短整数类型的字段 Fields.AddStringField method-增加字符类型的字段删除字段 Fields.Remove method-删除一个字段 Fields.RemoveAll method -删除所有字段 7/29/202247/29/20

3、224创建新表-LayerInfo对象 LayerInfo.type常数 miLayerInfoTypeTemp=6-临时表 miLayerInfoTypeNewTable=7-磁盘表 7/29/202257/29/20225创建新表 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 ta

4、ble 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(存在于内存)。7/29/202267/29/20226 miLayerInfoTypeNewTab FileSpec:Yes;String;Name of.tab file for new table.Name

5、: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.7/29/202277/29/20227示例示例 For i=1 To Grid1.Rows-1 If InStr(StrType,字符

6、型)0 Then flds.AddStringField StrName,NumWidthElseIf InStr(StrType,整型)Then flds.AddIntegerField StrNameElseIf InStr(StrType,短整型)Then flds.AddSmallIntField StrNameElseIf InStr(StrType,浮点型)Then flds.AddFloatField StrNameElseIf InStr(StrType,十进制型)Then flds.AddNumericField StrName,NumWidth,NumDecElseIf I

7、nStr(StrType,日期型)Then flds.AddDateField StrNameElseIf InStr(StrType,逻辑型)Then flds.AddLogicalField StrNameEnd If Next i7/29/202287/29/20228If Check2.Value=1 Then创建新表 LayerInfo.Type=7 miLayerInfoTypeNewTab LayerInfo.AddParameter filespec,filespec ElseIf Check2.Value=0 Then创建临时表 LayerInfo.Type=6 miLaye

8、rInfoTypeTemp 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 If7/29/202297/29/

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

10、定义绑定层 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 DateFld7/29/2022117/29/202211

11、紧缩在Mapx4.0下作紧缩时,只能事先创建一个带结构的空表。然后将记录加入到空表中。在Mapx4.5下可以使用LayerInfo 的创建带结构的临时表和新表的功能来完成紧缩的功能。7/29/2022127/29/202212 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 将表临时存放于内存 紧缩

12、7/29/2022137/29/202213LayerInfo.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 La

13、yerInfo=Nothing 紧缩7/29/2022147/29/202214从地图窗口删除原表 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紧缩7/29/2022157/29/202215

14、 创建新表 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 紧缩7/29/2022167/29/202216从地图窗口删除临时表从地图窗口删除临时表

15、 Formmain.Map1.Datasets.Remove(ds.Name)Formmain.Map1.Layers.Remove(lyr.Name)Formmain.Map1.Refresh 注意:Set ds=Nothing Set lyr=Nothing Set LayerInfo=Nothing紧缩7/29/2022177/29/202217SQL查询 Layer.search方法,使用Where子句,查询定位所需数据。Variable 对象和Variables集合:MapX4.5 在表达式中支持变量替换.通过Variable 对象和 Variables集合,一个表达式中将包含对任意

16、变量的引用,如字符串类型,feature对象类型的数据。Layer.search将之作为一个可选参数。7/29/2022187/29/202218地理运算符的使用 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 obj

17、ect2:object1与object2相交object1 PARTIALY_WITHIN object2:object1与object2相交.object1 WITHIN object2:object1的中心点在object2中.7/29/2022197/29/202219Dim f As MapXLib.FeatureDim v As New MapXLib.Variables 查找州中的某一个城市Set f=Map1.Layers.Item(“states”).Selection.Item(1)选择州 将城市的图层加入数据集Map1.Datasets.Add miDatasetLayer

18、,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 ftrs7/29/

19、2022207/29/202220节点编辑编辑条件编辑条件:1、具有节点的对象,如点(point),线(line),折线(polyline),区域(region)。节点可选择的对象有点,线,折线,区域。节点可增加的对象有点,线,面。不具有节点的对象有弧段(Arc),圆域(ellipse/circle),矩形(rectangle),圆角矩形(round rect),文本(text)2、对象处于被选中且可编辑状态。3、Map控件处于获得焦点状态。7/29/2022217/29/202221选择节点选择节点:选择工具(选择工具(miSelectTool)1.Click鼠标,选择一个 2.Ctrl+C

20、lick:在选择与不选择间切换;选择多个;或选择范围的首点 3.Shift+Click:选择范围的尾点,离首点距离最短 4.Shift+Ctrl+click:选择范围的尾点,离首点距离最长7/29/2022227/29/202222编辑模式:由编辑模式:由Map1.FeatureEditMode来设置来设置图元编辑模式-拖动四个句柄,改变图元的形状:Map1.FeatureEditMode=miEditModeFeature,默认值节点编辑模式:Map1.FeatureEditMode=miEditModeNode 移动或删除重叠的节点模式:Map1.FeatureEditMode=miEdi

21、tModeNode|miMoveDuplicateNodes|miDeleteDuplicateNodes 增加节点模式:Map1.FeatureEditMode=miEditModeNode|miEditModeAddNode7/29/2022237/29/202223FeatureEditMode的常量设置的常量设置miEditModeFeature=0 x1 miEditModeNode=0 x2 miMoveDuplicateNodes=0 x4 miDeleteDuplicateNodes=0 x8 miEditModeAddNode=0 x407/29/2022247/29/202

22、224 增加节点增加节点 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 Sub7/29/2022257/29/202225移动或删除移动或删除单个图元上的

23、节点,而与之邻接的图元上的节点并不移动或删除。Formmain.Map1.FeatureEditMode=miEditModeNode Formmain.Map1.SetFocus 获取焦点7/29/2022267/29/202226移动移动相邻图元重叠重叠(重合)的节点节点 Formmain.Map1.FeatureEditMode=miEditModeNode or miMoveDuplicateNodes Formmain.Map1.SetFocus 获取焦点7/29/2022277/29/202227删除相邻图元重叠(重合)的节点删除相邻图元重叠(重合)的节点 Formmain.Map

24、1.FeatureEditMode=miEditModeFeature or miDeleteDuplicateNodes Formmain.Map1.SetFocus 获取焦点7/29/2022287/29/202228新加函数新加函数用于创建专题图,标注,用于创建专题图,标注,SQL的表达式的表达式 Buffer DeformatNumber$Format$FormatDate$FormatNumber$StringCompare StringCompareIntl StringToDate ObjectType7/29/2022297/29/202229以buffer为例 region

25、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

26、.Layers.Item(USA).Search _ (buffer(obj,4,10,mi)contains entire varFirstState,vars)MsgBox ftrs.CountEnd Sub7/29/2022307/29/202230其他其他支持支持DAO 3.67/29/2022317/29/202231连接连接Oracle8.1.6VB6.0使用使用LayerInfo对象加入对象加入oracle8i数据数据。Dim lInfo As Object Set lInfo=CreateObject(mapx.layerinfo.4)lInfo.Type=4 Dim Conn

27、ectStr As String ConnectStr=SRVR=+Combo1+;UID=+txtUserName.Text+;PWD=+txtPassword.Text7/29/2022327/29/202232lInfo.AddParameter connectstring,ConnectStr lInfo.AddParameter name,TempConnect lInfo.AddParameter toolkit,ORAINETlInfo.AddParameter query,select OBJECT from states where 1=0 lInfo.AddParamete

28、r cache,OFF lInfo.AddParameter mbrsearch,ON g_map.Layers.Add lInfo Set lInfo=Nothing连接连接Oracle8.1.67/29/2022337/29/202233 CMapXLayers layers=m_ctrlMapX.GetLayers();CMapXLayers layers=m_ctrlMapX.GetLayers();CMapXLayerInfo layerInfo;CMapXLayerInfo layerInfo;layerInfo.CreateDispatch(MapX.LayerInfo.4);l

29、ayerInfo.CreateDispatch(MapX.LayerInfo.4);layerInfo.SetType(4);layerInfo.SetType(4);if(dlg.DoModal()=IDOK)if(dlg.DoModal()=IDOK)CString ConnectStr=CString ConnectStr=SRVR=;UID=dzn;PWD=dzn;SRVR=;UID=dzn;PWD=dzn;连接连接Oracle8.1.6VC6.07/29/2022347/29/202234 layerInfo.AddParameter(connectstring,COleVarian

30、t(ConnectlayerInfo.AddParameter(connectstring,COleVariant(ConnectStr);Str);layerInfo.AddParameter(name,COleVariant(USA);layerInfo.AddParameter(name,COleVariant(USA);layerInfo.AddParameter(toolkit,COleVariant(ORAINET);layerInfo.AddParameter(toolkit,COleVariant(ORAINET);layerInfo.AddParameter(query,CO

31、leVariant(Select layerInfo.AddParameter(query,COleVariant(Select*from from China);China);layerInfo.AddParameter(cache,COleVariant(ON);layerInfo.AddParameter(cache,COleVariant(ON);layerInfo.AddParameter(mbrsearch,COleVariant(OFF);layerInfo.AddParameter(mbrsearch,COleVariant(OFF);layers.RemoveAll();la

32、yers.RemoveAll();layers.Add(layerInfo);layers.Add(layerInfo);连接连接Oracle8.1.6VC6.07/29/2022357/29/202235缓冲区Cache ON-下载数据放在内存和磁盘(*.map,*.id),这将有助于提高选择速度、刷新速度,平移,放大的操作的速度。缺点下载速度较OFF慢。平移若超出缓冲区所存的数据范围,将从数据库中读取数据,这将影响缩小及平移的速度。OFF 下载速度快,选择速度慢、平移和缩小、放大慢MBR SearchON-在从数据库载入数据时要占用一定的时间。下载下载Oracle8iOracle8i的各参

33、数含义的各参数含义7/29/2022367/29/202236PII 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不同参数设置时下载时间对比7/29/2022377/29/202237增加图元增加图元-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,rvs7/29/2022387/29/202238谢谢!7/29/2022397/29/202239演讲完毕,谢谢观看!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(MapX4.5新功能培训(共39张).pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|