Lua脚本实现检查外业核查地类图斑

版权声明:本文为博主原创文章,未经博主允许不得转载。 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

猜你喜欢

转载自blog.csdn.net/Giser_D/article/details/81806703