mapbasic 完成紧缩图层

从网上查找到的,非常感谢作者,替我们维护解决了大问题 http://www.mygis.com.cn/codes/21-10237-10237.htm 代码: Include "mapbasic.def" Include "icons.def" Include "menu.def" '*********************************************************** Declare Sub Main Declare Sub packtable Declare Sub BatchPackTable Declare Sub Exit '*********************************************************** Sub Main     Create Menu "紧缩表" As          "(-",             "紧缩表"  +Chr$(9)+"Ctrl+M/W^M" Calling PackTable,          "(-",          "退出"Calling Exit     Alter Menu Bar Add "紧缩表"     Set Window Message Font ("宋体", 0, 10, Blue) End Sub '*********************************************************** Sub PackTable  Dim Ptable,LayName As String  Dim Winid,I,J,LayNums As Integer     Cls     onError GoTo ErrorType     If Not FrontWindow() Then         Note "没有图层,请打开图层......"         Exit Sub     End If     For j=1 To NumWindows()         If WindowInfo(FrontWindow(),Win_Info_Type)<>Win_Mapper Then             Close Window FrontWindow()         Else             Exit For         End If     Next     Winid=FrontWindow()     LayNums=MapperInfo(WinID, Mapper_Info_Layers)     Open File "c:/紧缩完的表.txt" For Output As #2     For I=1 To Laynums            LayName= LayerInfo(WinID,I,Layer_Info_Name)         If LayerInfo(WinID,I,Layer_Info_type)=Layer_Info_Type_Normal Then             Commit Table LayName                                                           Set Map Layer LayName Editable On             Ptable="Pack Table "+LayName+" Graphic Data "             Run Command Ptable             Print "已经将 ("+LayName+") 表紧缩完! "             Print #2, "已经将 ("+LayName+") 表紧缩完! "             If LayNums>1 Then                 Add Map Auto Layer LayName             Else                 Map From LayName             End If         End If     Next     Close File #2     Note "紧缩完毕!"     Exit Sub     ErrorType:         Exit Sub         Print "操作被取消!" End Sub '***********************************************************    Sub Exit     If Ask("Hi!你是否愿意退出?","是","否") = 1 Then         End Program     End If End Sub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值