首页 / 浏览问题 / 组件GIS / 问题详情
如何添加GeoPlacemark到DatasetVector
45EXP 2020年02月18日
三维场景下,如何添加GeoPlacemark到DatasetVector?

Geometry3D geometry = e.Geometry;
                Point3D textLocation = new Point3D(0, 0, 0);

                geometry.Style3D = new GeoStyle3D();
                //geometry.Style3D.IsMarker3D = true;
                geometry.Style3D.MarkerFile = @"I:\CMF-FL\CMF-FL\bin\Debug\Resources\map_icon_location.png";
                geometry.Style3D.AltitudeMode = AltitudeMode.Absolute;
                //GeoPlacemark geoPlacemark = new GeoPlacemark("dddd",geometry);
                //geoPlacemark.Geometry = geometry;
                //geoPlacemark.Style3D = geometry.Style3D;

                //GeoPoint3D geoPoint3D1 = geometry as GeoPoint3D;
                //geoPoint3D.Style3D = style3d;

                TextStyle ts = new TextStyle();
                ts.ForeColor = ColorTranslator.FromHtml("#ffffff");
                ts.FontScale = 0.75;
                //ts.BackColor = Color.FromArgb(6, 38, 38, 41);
                ts.BackColor = ColorTranslator.FromHtml("#2C2C30");
                ts.BackOpaque = true;
                ts.BorderSpacingWidth = 12;
                ts.Alignment = TextAlignment.BottomCenter;

                GeoPlacemark geoPlacemark = new GeoPlacemark("aabbcc", geometry);

geoPlacemark可以添加到TrackingLayer,能正常显示,但是添加到DatasetVector后,无显示

1个回答

你好,我在上个问题已经回复了,地标对象geoplacemark只能添加到kml或者trackinglayer中
2,432EXP 2020年02月18日
DatasetVector中如果要同时显示图标和名称的话,只能同时使用GeoPoint3D和GeoText3D吗?因为我需要动态去调整位置和文本内容,不能放TrackingLayer里
实现的思路很多,你可以用geopoint3d+geotext3d实现。
也可以通过kml图层实现。
也可以通过制作专题图实现。
kml图层能否实现象DatasetVector一样的在场景中直接编辑的功能?之前一直没能成功,设置了kml图层的IsEditable属性没有作用,所以现在改为了DatasetVector。

专题图有在场景中直接编辑的功能?

http://qa.supermap.com/62619

这里我问过,您的回答按我的理解,kml图层是无法直接在场景中进行编辑的,只能在代码里处理,如果我理解有错误,能否给个demo让我试试

你可以通过移动专题图原始的图层,比如三维点,移动过后,更新标签专题图,那么专题图的文字就会移动。
如果你是想和移动三维点一样移动文本,目前场景是没有该控件的,你可以自己去写事件,通过鼠标点击和移动事件可以去定义一个方法,实时的改变文本位置。
...