问题
等待回复
文章精选
许可中心
资源中心
漏洞批露表
注册
SuperMap技术问答社区
我要提问
智能推荐
相关问题
相关文章
推荐教程
三维场景,绘制了线段或多边形后,如何再去选中并编辑?
请问触发了三维场景对象的节点编辑后,如何编辑节点呢
三维场景下,矢量数据图层在界面上编辑时,如何删除?
二维场景下如何加载kml文件
二维场景下如何加载kml文件
如何将加载的kml航迹线作为飞行路线,沿此kml线实现飞行浏览?
请问三维场景的线要素可以编辑节点吗?
场景中的三维自定义专题图可以实现编辑功能吗?
热门标签
iserver
三维
idesktop
webgl
javascript
iclient
三维场景
三维模型
iobjects
倾斜摄影
android
imobile
发布服务
leaflet
net
iobject
二次开发
idesktop9d
supermap
许可
插件
js
java
组件
二维
ios
三维gis
组件开发
openlayers
cesium
所有分类
云GIS
3,400个
桌面GIS
3,477个
组件GIS
2,647个
移动GIS
1,443个
三维GIS
4,440个
WebGIS
557个
其他
1,060个
三维场景,加载kml文件后如何进行编辑操作?
我要提问
0
投票
Layer3DKML layerPipeLine = this.m_sceneControl.Scene.Layers.Add(@"i:\1.kml", Layer3DType.KML,true) as Layer3DKML;
layerPipeLine.IsEditable = true;
layerPipeLine.IsSelectable = true;
kml文件中的内容能够加载到场景中
IsEditable设置后,kml图层的线段无任何变化,鼠标点击后也无法编辑,官方有demo吗?
三维
编辑
kml
2月 12, 2020
分类:
307次浏览
|
用户:
lierisme
初出茅庐
(
45
分)
请
登录
或者
注册
后回答这个问题。
1个回答
0
投票
您好,直接获取kml里的元素,然后修改里面的节点即可
2月 12, 2020
用户:
邬袁凯
名扬四海
(
2,432
分)
不能直接在界面里操作吗?
“直接获取kml里的元素”是指什么?layerPipeLine.Features.GetFeatureArray(Feature3DSearchOption.AllFeatures)[0]
这个吗?
是不是不能象二维场景一般在界面里直接拖动节点进行线面的编辑?
三维里面数据集里的线开启可编辑可以像二维里的操作,kml,trackinglayer等需要获取线,然后改变节点,
kml里面获取几何要素是先获取kml的线的feature,然后获取feature里的geometry
"三维里面数据集里的线开启可编辑"—是指Layer3DKML里的feature中的geometry吗?没有找到类似IsEditable的设置用于开启线编辑?还是说“三维里面数据集”根本就不是Layer3DKML类,而是其他的什么类?
能否明确说下是哪个类的哪个方法吗?
不是指kml,是特指三维线数据集,数据源里的数据集,添加到场景里的,Layer3DDataset类
不知如何将Geometry3D数据导入到Layer3DDataset中,所以后来改用了Layer3DKML
新建一个dataset,类型为三维线数据集的,然后获取dataset里的recotdset,往recordset里面去新增geometry就行了,参考范例 安装目录\SampleCode\Data\RecordsetManage\RecordsetManage.csproj
Geometry3D geometry = e.Geometry;
Layer3DSettingVector setting = new Layer3DSettingVector();
setting.Style.AltitudeMode = AltitudeMode.ClampToGround;
setting.Style.LineColor = Color.Yellow;
setting.Style.LineWidth = 1.3;
Datasource ds = MapUtils.OpenDatasource(this.m_sceneControl.Scene.Workspace, "drawEdit");
DatasetVectorInfo datasetVectorInfo = new DatasetVectorInfo();
datasetVectorInfo.Type = DatasetType.Line3D;
datasetVectorInfo.IsFileCache = true;
datasetVectorInfo.Name = "line";
DatasetVector datasetVector = ds.Datasets.Create(datasetVectorInfo);
Recordset recordset = datasetVector.GetRecordset(true, CursorType.Dynamic);
bool f = recordset.AddNew(geometry);
recordset.Update();
datasetVector.PrjCoordSys = PrjCoordSys.FromEPSG(3857);
Layer3DDataset layerPipeLine = this.m_sceneControl.Scene.Layers.Add(datasetVector, setting, true, "pipeLine");
layerPipeLine.IsVisible = true;
layerPipeLine.IsEditable = true;
layerPipeLine.IsSelectable = true;
this.m_sceneControl.Scene.Refresh();
this.m_sceneControl.Refresh();
请看看是哪里有问题,界面不显示线段,这段代码是放在 m_sceneControl.Tracked 事件里的
请
登录
或者
注册
后再添加评论。
...