使用产品:SuperMap iDesktop .NET 9D 操作系统win10 x64
软件名称:supermap-idesktop.net-9.1.1-36767-win64-zip-chs
问题详细描述:超图更改地理坐标系下的三维面图层风格闪退
问题重述步骤:1、超图中已有osgb和水面场景,高度都设在2000米,水面是透明的
2、另用C#开发一个小工具,可以加载这个场景,再通过代码画一些线,线在水面下,不知什么原因线看不到???
主要代码如下:
DataTable item = listDt[i];
GeoLine3D geoline = new GeoLine3D();
for (int j = 0; j < item.Rows.Count; j++)
{
DataRow dr = item.Rows[j];
Point3Ds ps = new Point3Ds();
Point3D p1 = new Point3D(Convert.ToDouble(dr[0]), Convert.ToDouble(dr[1]), Convert.ToDouble(dr[2]));
Point3D p2 = new Point3D(Convert.ToDouble(dr[3]), Convert.ToDouble(dr[4]), Convert.ToDouble(dr[5]));
ps.Add(p1);
ps.Add(p2);
GeoLine3D line = new GeoLine3D();
line.AddPart(ps);
geoline.AddPart(ps);
SuperMap.Data.GeoStyle3D geoStyle3D = new SuperMap.Data.GeoStyle3D();
geoStyle3D.AltitudeMode = AltitudeMode.Absolute;
geoStyle3D.LineWidth = 2;
geoStyle3D.LineColor = System.Drawing.Color.Red;
geoStyle3D.FillMode = FillMode3D.Fill;
line.Style3D = geoStyle3D;
m_sceneControl.Scene.TrackingLayer.Add(line, "");
if (j % 3 == 0)
{
GeoStyle3D pointStyle = new GeoStyle3D();
pointStyle.MarkerSize = 5;
pointStyle.MarkerColor= System.Drawing.Color.Red;
pointStyle.AltitudeMode = AltitudeMode.Absolute;
GeoPoint3D point = new GeoPoint3D { X = Convert.ToDouble(dr[0]), Y = Convert.ToDouble(dr[1]), Z = Convert.ToDouble(dr[2]) };
point.Style3D = pointStyle;
m_sceneControl.Scene.TrackingLayer.Add(point, "");
}
}