作者:mobiledu2502902041 | 来源:互联网 | 2023-09-09 15:35
lidrequire(LuaiData)localfunctions2i(str)--转成idata所需的格式returnlid.String(str)end--start
lid=require("LuaiData")local function s2i(str) --转成 idata所需的格式return lid.String(str)
end--start
if not lid.isDocumentActived() thenprint('未打开文档')return
endentList = lid.iDataEntityList() --表示所有实体列表当前为Empty
nameList = lid.StringList()
nameList:push_back(s2i('DLTB')) --根据图层名 pushBack到列表中
err=lid.iDataSSGetX(entList, nameList, false, 0) --err类似于bool
if not err==lid.iData.eOk thenlid.iDataPrintf(s2i('选择失败'))return
endif entList:size() == 0 then --表示含DLTB的实体个数lid.iDataPrintf(s2i('指定图层没有实体'))return
endm = 0for i=0,entList:size()-1 do e = entList[i]v = e:getXData(s2i('WYMARK')) --获取每个实体外业核查标记数值 保存到v if v:toInt() == 1 then m = m + 1 -- 判断外业核查标记数值是否为1 记录对应检查个数m
else
end
end
percentCheck = string.format("%.3f",m/(entList:size()) ) -- 获得已检查图斑所占比例并保留三位小数
lid.BasicUI.InformationBox(s2i('外业核查地类图斑结果'),s2i('当前已外业核查地类图斑数量为:'..tostring(m)))
lid.BasicUI.InformationBox(s2i('外业核查地类图斑结果'),s2i('核查地类图斑所占比例为:'..tostring(percentCheck)))entList = nil --释放内存
nameList = nil