Example #1
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (txtCurveFactor.Text != "" && txtRadius.Text != "" && textBoxPath.Text !="")
            {
                GSOGeoPolyline3D line = (GSOGeoPolyline3D)feature.Geometry;

                GSOGeoPowerLine geopowerline = new GSOGeoPowerLine();

                GSOPoint3d pnt = new GSOPoint3d();
                for (int i = 0; i < line[0].Count; i++)
                {
                    GSOGeoPowerLineNode node = new GSOGeoPowerLineNode();
                    pnt = line[0][i];

                    node.NodeTemplatePath = textBoxPath.Text;
                    node.SetPosition(pnt.X, pnt.Y, pnt.Z);
                    geopowerline.AddNode(node);

                }
                GSOFeature newFeature = new GSOFeature();

                geopowerline.LinkLineStyle = new GSOElecLineStyle3D();
                geopowerline.LinkLineStyle.LineColor = Color.FromArgb(255,pictureBoxFillColor.BackColor);
                geopowerline.LinkLineStyle.Radius = double.Parse(txtRadius.Text);
                geopowerline.LinkLineStyle.Slice = int.Parse(txtSlice.Text);
                geopowerline.LinkLineStyle.CurveFactor = double.Parse(txtCurveFactor.Text);
                newFeature.Geometry = geopowerline;
                ctl.Globe.MemoryLayer.AddFeature(newFeature);
                this.Close();
            }
        }
Example #2
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (txtCurveFactor.Text != "" && txtRadius.Text != "" && textBoxPath.Text != "")
            {
                GSOGeoPolyline3D line = (GSOGeoPolyline3D)feature.Geometry;

                GSOGeoPowerLine geopowerline = new GSOGeoPowerLine();

                GSOPoint3d pnt = new GSOPoint3d();
                for (int i = 0; i < line[0].Count; i++)
                {
                    GSOGeoPowerLineNode node = new GSOGeoPowerLineNode();
                    pnt = line[0][i];

                    node.NodeTemplatePath = textBoxPath.Text;
                    node.SetPosition(pnt.X, pnt.Y, pnt.Z);
                    geopowerline.AddNode(node);
                }
                GSOFeature newFeature = new GSOFeature();

                geopowerline.LinkLineStyle             = new GSOElecLineStyle3D();
                geopowerline.LinkLineStyle.LineColor   = Color.FromArgb(255, pictureBoxFillColor.BackColor);
                geopowerline.LinkLineStyle.Radius      = double.Parse(txtRadius.Text);
                geopowerline.LinkLineStyle.Slice       = int.Parse(txtSlice.Text);
                geopowerline.LinkLineStyle.CurveFactor = double.Parse(txtCurveFactor.Text);
                newFeature.Geometry = geopowerline;
                ctl.Globe.MemoryLayer.AddFeature(newFeature);
                this.Close();
            }
        }
        private void btn_addPowerLine_Click(object sender, EventArgs e)
        {
            //创建杆塔节点位置
            GSOPoint3d  point1 = new GSOPoint3d(120.121, 30.210, 0);
            GSOPoint3d  point2 = new GSOPoint3d(120.121, 30.2105, 0);
            GSOPoint3ds points = new GSOPoint3ds();

            //加载顺序就是连接顺序
            points.Add(point1);
            points.Add(point2);

            //电力线
            GSOGeoPowerLine powerLine = new GSOGeoPowerLine();

            for (int i = 0; i < points.Count; i++)
            {
                //创建杆塔节点
                GSOGeoPowerLineNode node = new GSOGeoPowerLineNode();
                node.Position = points[i];
                //添加杆塔模型
                node.NodeTemplatePath = i % 2 == 0 ? _modelPath : _modelPath;
                //赋予旋转角(需要调整旋转角适应电力线位置)
                node.RotateZ = 0;
                //将杆塔节点添加到电力线
                powerLine.AddNode(node);
            }

            //电力线样式设置
            powerLine.LinkLineStyle = new GSOElecLineStyle3D()
            {
                LineColor = Color.White,
                //电力线半径
                Radius = 0.05,
                //分段数
                Slice = 5,
                //电力线曲率
                CurveFactor = 0.0002
            };

            //新建要素
            GSOFeature feature = new GSOFeature();

            feature.Geometry = powerLine;

            //添加要素到globe中
            _glbControl.Globe.MemoryLayer.AddFeature(feature);
            _glbControl.Globe.JumpToFeature(feature, 1500);
        }