版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Giser_D/article/details/81806703
lid=require("LuaiData")
local function s2i(str) --转成 idata所需的格式
return lid.String(str)
end
--start
if not lid.isDocumentActived() then
print('未打开文档')
return
end
entList = 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 then
lid.iDataPrintf(s2i('选择失败'))
return
end
if entList:size() == 0 then --表示含DLTB的实体个数
lid.iDataPrintf(s2i('指定图层没有实体'))
return
end
m = 0
for 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