首页 / 浏览问题 / 组件GIS / 问题详情
.net桌面组件开发三维缓冲区绘制
2EXP 2023年01月11日
 BufferAnalyst3DParameter bufferAnalyst3DParameter = new BufferAnalyst3DParameter();
            bufferAnalyst3DParameter.EndType = SuperMap.Realspace.SpatialAnalyst.BufferEndType.Round;
            bufferAnalyst3DParameter.BufferDistance = radius;
            bufferAnalyst3DParameter.BufferQuality = 100;
            //调用创建缓冲区方法
            GeoPoint3D center = new GeoPoint3D(CenterPoint3D);
            GeoModel3D geoModel = Geometrist3D.CreateBuffer(center, bufferAnalyst3DParameter, scene.PrjCoordSys) as GeoModel3D;
            geoModel.ConvertToGeoModel3D(true);
            GeoStyle3D g = new SuperMap.Data.GeoStyle3D();
            geoModel.Style3D = g;
            g.AltitudeMode = SuperMap.Data.AltitudeMode.RelativeToGround;
            scene.TrackingLayer.Add(geoModel, "缓冲区");
            scene.Refresh();
            Model model = geoModel.Model;

如何在场景里面把这个缓冲区绘制出来

1个回答

您好,想在场景里添加数据有两种。

1.将数据集以图层添加到场景中

2.在场景的跟踪图层中添加几何对象

对于模型数据集,建议您使用第一种方法,第一方法的话,那您需要把创建的几何对象添加到模型数据集中,保存数据集更新,刷新场景(已将模型数据集作为图层添加到场景中)即可。

建议使用第一种方式,模型数据相对复杂,使用跟踪图层的话对程序的性能负担、数据管理、缓存释放都不是太稳定。

iDesktop桌面端使用的同样是第一种逻辑,

绘制逻辑:新建模型数据集-设置坐标系-添加到场景-打开编辑-绘制模型对象

缓冲逻辑:创建结果模型数据集并设置坐标系-读取需要缓冲的数据集-遍历对象(三维缓冲-缓冲结果存放到结果模型数据集中)-保存更新结果模型数据集-将数据集添加到场景中查看

希望可以帮助到您。
10,513EXP 2023年01月11日
有没有代码让我参考一下

具体三维缓冲没有,但是像添加图层,编辑数据集这种,建议您可以查看范例代码。

下载iObject.net的完整包,在sampleCode目录中是有范例工程的(与bin目录同级),

如果初次进行组件开发,也可以结合917书院的免费入门课程一起使用。

http://edu.supermap.com/#/lessonInfo?id=37a971657a5e4d8c8b478e4819ea547c

...