首页 / 浏览问题 / 组件GIS / 问题详情
iObject .NET的点云生成缓存代码是怎么写的?
20EXP 2020年08月27日

使用产品:iObject.NET 10i

我的代码:

            PointCloudCacheBuilder cacheBuilder = new PointCloudCacheBuilder();
            cacheBuilder.CacheName = "DY";
            cacheBuilder.CategoryField = PointCloudCategoryField.Intensity;
            cacheBuilder.FileType = CacheFileType.S3M;
            cacheBuilder.OutputFolder = @"F:\asd";
            PointCloudFileInfo pointCloudFileInfo = new PointCloudFileInfo();
            PrjCoordSys prjCoordSys = new PrjCoordSys();
            prjCoordSys.FromFile(@"D:\xx2000坐标系.xml", PrjFileType.SuperMap);
            pointCloudFileInfo.SrcPrjCoordSys = prjCoordSys;
            pointCloudFileInfo.PointDataUnit = DataUnit.Meter;
            Dictionary<string, List<string>> groups = new Dictionary<string, List<string>>();
            List<string> files = new List<string>();
            files.Add(@"D:\PonitCloud.las");
            groups.Add("group",files);
            pointCloudFileInfo.GroupFileNames = groups;
            pointCloudFileInfo.PointDataSeparator = DataSeparator.SPACE;
            pointCloudFileInfo.PointInfoType = PointCloudInfoType.XYZ;
            pointCloudFileInfo.PointDataRGBMode = DataRGBMode.RGB_0_1;
            cacheBuilder.PointCloudTileSplitType = ImageTilingMode.Global;
            cacheBuilder.TilePyramidSplitType = PyramidSplitType.QuadTree;
            cacheBuilder.ProcessType = ProcessFileType.Normal;
            if (cacheBuilder.Build())
            {
                System.Diagnostics.Debug.WriteLine("成功");
            }
            else
            {
                System.Diagnostics.Debug.WriteLine("失败");
            }

在执行到cacheBuilder.CategoryField = PointCloudCategoryField.Intensity;时会出现异常

我想问下为什么会这样。还有可以的话请给我一份点云缓存的示例代码。

3 个回答

数据有用idesktop试过生成缓存吗
4,620EXP 2020年08月27日
试过,成功生成缓存
那组件参数是完全按照idesktop里面设置的一一对应过去的吗?还有,dll是否用的是同一个版本,可以将程序的dll引用为idesktop中bin路径下的dll。是同一套
组件参数是对应的。dll改成idesktop下后也是出现了同样的问题
我也遇到一样的问题,请问您解决了吗,我用的是iObject9D
5EXP 2020年09月28日
同样遇到了这个问题

参考https://ask.supermap.com/69829?show=69829#q69829 中可运行的代码,发现是参数赋值顺序的问题,CategoryField最后赋值就可以了

经过粗略测试CategoryField的赋值至少要在ProcessFileType之后
12EXP 2023年05月03日
...