首页 / 浏览问题 / 桌面GIS / 问题详情
点对象风格设置
66EXP 2018年06月26日
通过ID找到了数据集里指定的点对象,如何改变其风格(不在跟踪层上显示)。

1个回答

您好!如果您想改变点分格,可用geoPoint3D = new GeoPoint3D(point3Ds[ID]);用GeoStyle3D来构造风格,然后将此风格赋给geoPoint3D.Style3D。

如果您想让点不在跟踪层上显示,请删除 sceneControl.Scene.TrackingLayer.Add(geoPoint3D, "点");这句代码。
3,352EXP 2018年06月26日
就是这个点原来是绿色的, 我想把它变为红色, 但显示红色我们以前大多是在跟踪层上覆盖显示的, 但我跟踪层另有用处 ,我能不在跟踪层显示就能让其变成红色吗?我是二维地图
我的代码是这样:

DatasetVector dataset = m_workspace.Datasources[0].Datasets["New_Point"] as DatasetVector;//打开点数据集

 Recordset recordset = dataset.GetRecordset(false, CursorType.Dynamic);

 recordset.SeekID(ID);//根据ID获取点对象
 GeoPoint point = recordset.GetGeometry() as GeoPoint;

//点对象风格设置
GeoStyle geostyle = new GeoStyle();
geostyle.MarkerSize = new Size2D(6.4, 6.4);
geostyle.LineColor = Color.Red;
 point.Style = geostyle;

刷新了一下图层,那个点还是绿色;
是 geostyle.MarkerColor = Color.Red;而不是geostyle.LineColor = Color.Red;

咳咳  没有geostyle.Markercolor只有geostyle.LineColor ,这个就是点状符号或者线状符号的颜色。smiley

不好意思,我是支持三维的,二维的我还不太清楚,但是原理是一样的。我再看看
recordset.SeekID(ID);是bool型,您检查一下您的point是您指定的那个ID的点吗?建议您创建一个选择集,然后将选择集转化为记录集
m_mapcontrol.Map.TrackingLayer.Add(point, "");

是这个点,我如果把它附在跟踪层上,这个点变为了红色。但我不想附在跟踪层上,因为我的跟踪层另有用处,我的意思是我能用啥方法直接改变这个点为红色吗。我如果不写上面那句代码,我对点对象设置风格,刷新图层,没用,点的颜色不改变。
我问了相关技术人员,点数据集是没有办法直接改变颜色的,只有将点数据集生成缓存文件可以不在跟踪层就可以直接改变颜色。
因为我需要做这样一个功能“让一个点对象变成黄色定时闪烁,另一个点对象只是变成红色不闪烁,这是警报的两个状态(起初点都为绿色)”因为定时闪烁是定时刷新跟踪层的实现的。那么变红的点对象就不能再附在跟踪层上了,附在跟踪层上的话也会跟着闪烁。所以我想问有没有啥方法解决?
您可以让您这两个点在不同数据集里显示
...