Esempio n. 1
0
        /// <summary>
        ///     提  交
        /// </summary>
        /// <params name="sender"></params>
        /// <params name="e"></params>
        private void btnSubmit_Click(object sender, EventArgs e)
        {
            DialogResult = DialogResult.OK;

            // 创建断层实体
            Faultage = Faultage.FindAllByProperty("name", txtFaultageName.Text.Trim()).FirstOrDefault();
            Faultage = Faultage ?? new Faultage {
                bid = IdGenerator.NewBindingId()
            };

            Faultage.name       = txtFaultageName.Text.Trim();
            Faultage.gap        = txtGap.Text.Trim();
            Faultage.type       = rbtnFrontFaultage.Checked ? "正断层" : "逆断层";
            Faultage.trend      = Convert.ToDouble(txtTrend.Text);
            Faultage.separation = txtSeparation.Text.Trim();

            double dAngle;

            if (double.TryParse(txtAngle.Text.Trim(), out dAngle))
            {
                Faultage.angle = dAngle;
            }

            // 坐标X
            double dCoordinateX;

            if (double.TryParse(txtCoordinateX.Text.Trim(), out dCoordinateX))
            {
                Faultage.coordinate_x = dCoordinateX;
            }

            // 坐标Y
            double dCoordinateY;

            if (double.TryParse(txtCoordinateY.Text.Trim(), out dCoordinateY))
            {
                Faultage.coordinate_y = dCoordinateY;
            }

            // 坐标Z
            double dCoordinateZ;

            if (double.TryParse(txtCoordinateZ.Text.Trim(), out dCoordinateZ))
            {
                Faultage.coordinate_z = dCoordinateZ;
            }
            double dLength;

            if (double.TryParse(txtLength.Text.Trim(), out dLength))
            {
                Faultage.length = dLength;
            }

            ModifyJldc(Faultage);

            Faultage.Save();
            DialogResult = DialogResult.OK;
        }
Esempio n. 2
0
        /// <summary>
        ///     带参数的构造方法
        /// </summary>
        public FaultageInfoEntering(Faultage faultage)
        {
            InitializeComponent();
            Faultage = faultage;
            // 设置窗体默认属性
            FormDefaultPropertiesSetter.SetEnteringFormDefaultProperties(this, Const_GM.UPDATE_FAULTAGE_INFO);

            // 设置断层信息
            // 断层名称
            txtFaultageName.Text = Faultage.FaultageName;
            // 落差
            txtGap.Text = Faultage.Gap;
            // 倾角
            txtAngle.Text = Faultage.Angle.ToString(CultureInfo.InvariantCulture);
            // 类型
            if (Const_GM.FRONT_FAULTAGE.Equals(Faultage.Type))
            {
                rbtnFrontFaultage.Checked = true;
            }
            else
            {
                rbtnOppositeFaultage.Checked = true;
            }
            // 走向
            txtTrend.Text = Faultage.Trend.ToString(CultureInfo.InvariantCulture);
            // 断距
            txtSeparation.Text = Faultage.Separation;
            // 坐标X
            txtCoordinateX.Text = Faultage.CoordinateX.ToString(CultureInfo.InvariantCulture);
            // 坐标Y
            txtCoordinateY.Text = Faultage.CoordinateY.ToString(CultureInfo.InvariantCulture);
            // 坐标Z
            txtCoordinateZ.Text = Faultage.CoordinateZ.ToString(CultureInfo.InvariantCulture);
            //长度
            var bid          = Faultage.BindingId;
            var pLayer       = DataEditCommon.GetLayerByName(DataEditCommon.g_pMap, LayerNames.DEFALUT_EXPOSE_FAULTAGE);
            var featureLayer = (IFeatureLayer)pLayer;

            if (pLayer == null)
            {
                txtLength.Text = @"0";
                return;
            }
            var pFeature = MyMapHelp.FindFeatureByWhereClause(featureLayer, "BID='" + bid + "'");

            if (pFeature != null)
            {
                var pline = (IPolyline)pFeature.Shape;
                if (pline == null)
                {
                    return;
                }
                txtLength.Text = Math.Round(pline.Length).ToString(CultureInfo.InvariantCulture);
            }
        }
Esempio n. 3
0
        /// <summary>
        ///     带参数的构造方法
        /// </summary>
        public FaultageInfoEntering(Faultage faultage)
        {
            InitializeComponent();
            Faultage = faultage;

            // 设置断层信息
            // 断层名称
            txtFaultageName.Text = Faultage.name;
            // 落差
            txtGap.Text = Faultage.gap;
            // 倾角
            txtAngle.Text = Faultage.angle.ToString(CultureInfo.InvariantCulture);
            // 类型
            if (Faultage.type == "正断层")
            {
                rbtnFrontFaultage.Checked = true;
            }
            else
            {
                rbtnOppositeFaultage.Checked = true;
            }
            // 走向
            txtTrend.Text = Faultage.trend.ToString(CultureInfo.InvariantCulture);
            // 断距
            txtSeparation.Text = Faultage.separation;
            // 坐标X
            txtCoordinateX.Text = Faultage.coordinate_x.ToString(CultureInfo.InvariantCulture);
            // 坐标Y
            txtCoordinateY.Text = Faultage.coordinate_y.ToString(CultureInfo.InvariantCulture);
            // 坐标Z
            txtCoordinateZ.Text = Faultage.coordinate_z.ToString(CultureInfo.InvariantCulture);
            //长度
            var bid          = Faultage.bid;
            var pLayer       = DataEditCommon.GetLayerByName(DataEditCommon.g_pMap, LayerNames.DEFALUT_EXPOSE_FAULTAGE);
            var featureLayer = (IFeatureLayer)pLayer;

            if (pLayer == null)
            {
                txtLength.Text = @"0";
                return;
            }
            var pFeature = MyMapHelp.FindFeatureByWhereClause(featureLayer, "BID='" + bid + "'");

            if (pFeature != null)
            {
                var pline = (IPolyline)pFeature.Shape;
                if (pline == null)
                {
                    return;
                }
                txtLength.Text = Math.Round(pline.Length).ToString(CultureInfo.InvariantCulture);
            }
        }
        /// <summary>
        ///     带参数的构造方法
        /// </summary>
        public FaultageInfoEntering(Faultage faultage)
        {
            InitializeComponent();
            Faultage = faultage;

            // 设置断层信息
            // 断层名称
            txtFaultageName.Text = Faultage.name;
            // 落差
            txtGap.Text = Faultage.gap;
            // 倾角
            txtAngle.Text = Faultage.angle.ToString(CultureInfo.InvariantCulture);
            // 类型
            if (Faultage.type == "正断层")
            {
                rbtnFrontFaultage.Checked = true;
            }
            else
            {
                rbtnOppositeFaultage.Checked = true;
            }
            // 走向
            txtTrend.Text = Faultage.trend.ToString(CultureInfo.InvariantCulture);
            // 断距
            txtSeparation.Text = Faultage.separation;
            // 坐标X
            txtCoordinateX.Text = Faultage.coordinate_x.ToString(CultureInfo.InvariantCulture);
            // 坐标Y
            txtCoordinateY.Text = Faultage.coordinate_y.ToString(CultureInfo.InvariantCulture);
            // 坐标Z
            txtCoordinateZ.Text = Faultage.coordinate_z.ToString(CultureInfo.InvariantCulture);
            //长度
            var bid = Faultage.bid;
            var pLayer = DataEditCommon.GetLayerByName(DataEditCommon.g_pMap, LayerNames.DEFALUT_EXPOSE_FAULTAGE);
            var featureLayer = (IFeatureLayer)pLayer;
            if (pLayer == null)
            {
                txtLength.Text = @"0";
                return;
            }
            var pFeature = MyMapHelp.FindFeatureByWhereClause(featureLayer, "BID='" + bid + "'");
            if (pFeature != null)
            {
                var pline = (IPolyline)pFeature.Shape;
                if (pline == null) return;
                txtLength.Text = Math.Round(pline.Length).ToString(CultureInfo.InvariantCulture);
            }
        }
Esempio n. 5
0
        /// <summary>
        ///     修改揭露断层图元
        /// </summary>
        /// <params name="faultageEntity"></params>
        private void ModifyJldc(Faultage faultageEntity)
        {
            //1.获得当前编辑图层
            var          drawspecial     = new DrawSpecialCommon();
            const string sLayerAliasName = LayerNames.DEFALUT_EXPOSE_FAULTAGE; //“揭露断层”图层
            var          featureLayer    = drawspecial.GetFeatureLayerByName(sLayerAliasName);

            if (featureLayer == null)
            {
                MessageBox.Show(@"未找到" + sLayerAliasName + @"图层,无法修改揭露断层图元。");
                return;
            }

            //2.删除原来图元,重新绘制新图元
            DataEditCommon.DeleteFeatureByBId(featureLayer, faultageEntity.bid);
            DrawJldc(faultageEntity);
        }
        /// <summary>
        ///     修改揭露断层图元
        /// </summary>
        /// <params name="faultageEntity"></params>
        private void ModifyJldc(Faultage faultageEntity)
        {
            //1.获得当前编辑图层
            var drawspecial = new DrawSpecialCommon();
            const string sLayerAliasName = LayerNames.DEFALUT_EXPOSE_FAULTAGE; //“揭露断层”图层
            var featureLayer = drawspecial.GetFeatureLayerByName(sLayerAliasName);
            if (featureLayer == null)
            {
                MessageBox.Show(@"未找到" + sLayerAliasName + @"图层,无法修改揭露断层图元。");
                return;
            }

            //2.删除原来图元,重新绘制新图元
            DataEditCommon.DeleteFeatureByBId(featureLayer, faultageEntity.bid);
            DrawJldc(faultageEntity);
        }
        /// <summary>
        ///     绘制揭露断层图元
        /// </summary>
        /// <params name="faultage"></params>
        private void DrawJldc(Faultage faultage)
        {
            ////1.获得当前编辑图层
            //DrawSpecialCommon drawspecial = new DrawSpecialCommon();
            //string sLayerAliasName = LibCommon.LibLayerNames.DEFALUT_EXPOSE_FAULTAGE;//“揭露断层”图层
            //IFeatureLayer featureLayer = drawspecial.GetFeatureLayerByName(sLayerAliasName);
            //if (featureLayer == null)
            //{
            //    MessageBox.Show("未找到" + sLayerAliasName + "图层,无法绘制揭露断层图元。");
            //    return;
            //}

            ////2.生成要素(要根据中心点获取起止点)
            ////中心点
            //double centrePtX = Convert.ToDouble(this.txtCoordinateX.Text.ToString());
            //double centrePtY = Convert.ToDouble(this.txtCoordinateY.Text.ToString());
            //IPoint centrePt = new PointClass();
            //centrePt.X = centrePtX;
            //centrePt.Y = centrePtY;

            //// 图形坐标Z  //zwy 20140526 add
            //double dCoordinateZ = 0;
            //if (!double.TryParse(this.txtCoordinateZ.Text.Trim(), out dCoordinateZ))
            //{
            //    MessageBox.Show("输入的Z坐标不是有效数值,请检查!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            //    return;
            //}
            //centrePt.Z = dCoordinateZ;

            //double angle = Convert.ToDouble(this.txtAngle.Text.ToString());//倾角
            //double length = 10;//默认长度为20,左右各10

            ////计算起止点
            //IPoint fromPt = new PointClass();
            //IPoint toPt = new PointClass();
            //CalculateEndpoints(centrePt, angle, length, ref fromPt, ref toPt);
            //DataEditCommon.g_CurWorkspaceEdit.StartEditing(false);
            //DataEditCommon.g_CurWorkspaceEdit.StartEditOperation();
            //IFeature pFeature = featureLayer.FeatureClass.CreateFeature();

            //ILine line = new LineClass();
            //line.PutCoords(fromPt, toPt);
            //object Missing = Type.Missing;
            //ISegment segment = line as ISegment;
            //ISegmentCollection newLine = new PolylineClass();
            //newLine.AddSegment(segment, ref Missing, ref Missing);
            //IPolyline polyline = newLine as IPolyline;

            //DataEditCommon.ZMValue(pFeature, polyline);  //zwy 20140526 add
            //pFeature.Shape = polyline;

            ////2.1断层标注(DCBZ)
            //string strMC = this.txtFaultageName.Text;//断层名称
            //string strLC = this.txtGap.Text;//落差
            //string strQJ = this.txtAngle.Text;//倾角
            //string strDCBZ = strMC + " " + "H=" + strLC + "m" + " " + "<" + strQJ + "°";

            ////断层标注字段赋值(该字段值保持在图层属性中)
            //int index = featureLayer.FeatureClass.Fields.FindField("FAULTAGE_NAME");
            //pFeature.set_Value(index, strDCBZ);

            ////要素ID字段赋值(对应属性表中BindingID)
            //int iFieldID = pFeature.Fields.FindField(GIS_Const.FIELD_BID);
            //pFeature.Value[iFieldID] = faultage.bid.ToString();

            //pFeature.Store();
            //DataEditCommon.g_CurWorkspaceEdit.StopEditOperation();
            //DataEditCommon.g_CurWorkspaceEdit.StopEditing(true);
            ////2.2给生成的断层赋符号
            //int ID = pFeature.OID;
            //string path = Application.StartupPath + @"\symbol.ServerStyle";//【这里用到了自己定义的符号库】
            ////默认为正断层(符号)
            //string sGalleryClassName = "123";
            //string symbolName = "123"; ;
            //if (this.rbtnFrontFaultage.Checked)//正断层
            //{

            //    sGalleryClassName = "123";
            //    symbolName = "123";
            //}
            //else if (this.rbtnOppositeFaultage.Checked)//逆断层
            //{

            //    sGalleryClassName = "1234";
            //    symbolName = "1234";
            //}

            //ILineSymbol lineSymbol = GetSymbol(path, sGalleryClassName, symbolName);
            //ILayer layer = featureLayer as ILayer;
            //SpecialLineRenderer(layer, ID, lineSymbol);
            //AddAnnotate(layer, GIS_Const.FILE_DCBZ);

            ////缩放到新增的线要素,并高亮该要素
            //GIS.Common.DataEditCommon.g_pMyMapCtrl.ActiveView.Extent = pFeature.Shape.Envelope;
            //GIS.Common.DataEditCommon.g_pMyMapCtrl.ActiveView.Extent.Expand(1.5, 1.5, true);
            //GIS.Common.DataEditCommon.g_pMyMapCtrl.Map.SelectFeature(featureLayer, pFeature);
            //GIS.Common.DataEditCommon.g_pMyMapCtrl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewAll, null, null);

            var pLayer = DataEditCommon.GetLayerByName(DataEditCommon.g_pMap, LayerNames.DEFALUT_EXPOSE_FAULTAGE);
            var featureLayer = (IFeatureLayer)pLayer;
            if (pLayer == null)
            {
                MessageBox.Show(@"未找到揭露断层图层,无法绘制揭露断层图元。");
                return;
            }
            //2.生成要素(要根据中心点获取起止点)
            //中心点
            IPoint centrePt = new PointClass();
            centrePt.X = faultage.coordinate_x;
            centrePt.Y = faultage.coordinate_y;
            centrePt.Z = faultage.coordinate_z;

            var trend = faultage.trend; //走向
            var length = faultage.length / 2; //默认长度为20,左右各10

            //计算起止点
            IPoint fromPt = new PointClass();
            IPoint toPt = new PointClass();
            CalculateEndpoints(centrePt, trend, length, ref fromPt, ref toPt);

            ILine line = new LineClass();
            line.PutCoords(fromPt, toPt);
            var missing = Type.Missing;
            var segment = (ISegment)line;
            ISegmentCollection newLine = new PolylineClass();
            newLine.AddSegment(segment, ref missing, ref missing);
            var polyline = (IPolyline)newLine;

            var list = new List<ziduan>
            {
                new ziduan("bid", faultage.bid),
                new ziduan("FAULTAGE_NAME", faultage.name),
                new ziduan("addtime", DateTime.Now.ToString(CultureInfo.InvariantCulture)),
                new ziduan("GAP", faultage.gap),
                new ziduan("ANGLE", faultage.angle.ToString(CultureInfo.InvariantCulture)),
                new ziduan("TREND", faultage.trend.ToString(CultureInfo.InvariantCulture)),
                new ziduan("SEPARATION", faultage.separation),
                new ziduan("type", faultage.type)
            };

            var pfeature = DataEditCommon.CreateNewFeature(featureLayer, polyline, list);
            if (pfeature == null) return;
            MyMapHelp.Jump(polyline);
            DataEditCommon.g_pMyMapCtrl.ActiveView.PartialRefresh(
                (esriViewDrawPhase)34, null, null);
        }
        /// <summary>
        ///     提  交
        /// </summary>
        /// <params name="sender"></params>
        /// <params name="e"></params>
        private void btnSubmit_Click(object sender, EventArgs e)
        {
            DialogResult = DialogResult.OK;

            // 创建断层实体
            Faultage = Faultage.FindAllByProperty("name", txtFaultageName.Text.Trim()).FirstOrDefault();
            Faultage = Faultage ?? new Faultage { bid = IdGenerator.NewBindingId() };

            Faultage.name = txtFaultageName.Text.Trim();
            Faultage.gap = txtGap.Text.Trim();
            Faultage.type = rbtnFrontFaultage.Checked ? "正断层" : "逆断层";
            Faultage.trend = Convert.ToDouble(txtTrend.Text);
            Faultage.separation = txtSeparation.Text.Trim();

            double dAngle;
            if (double.TryParse(txtAngle.Text.Trim(), out dAngle))
            {
                Faultage.angle = dAngle;
            }

            // 坐标X
            double dCoordinateX;
            if (double.TryParse(txtCoordinateX.Text.Trim(), out dCoordinateX))
            {
                Faultage.coordinate_x = dCoordinateX;
            }

            // 坐标Y
            double dCoordinateY;
            if (double.TryParse(txtCoordinateY.Text.Trim(), out dCoordinateY))
            {
                Faultage.coordinate_y = dCoordinateY;
            }

            // 坐标Z
            double dCoordinateZ;
            if (double.TryParse(txtCoordinateZ.Text.Trim(), out dCoordinateZ))
            {
                Faultage.coordinate_z = dCoordinateZ;
            }
            double dLength;
            if (double.TryParse(txtLength.Text.Trim(), out dLength))
            {
                Faultage.length = dLength;
            }

            ModifyJldc(Faultage);

            Faultage.Save();
            DialogResult = DialogResult.OK;
        }
        private void btnMultTxt_Click(object sender, EventArgs e)
        {
            var ofd = new OpenFileDialog
            {
                RestoreDirectory = true,
                Filter = @"文本文件(*.txt)|*.txt|所有文件(*.*)|*.*",
                Multiselect = true
            };
            ErrorMsg = @"失败文件名:";

            if (ofd.ShowDialog() != DialogResult.OK) return;
            var fileCount = ofd.FileNames.Length;
            lblTotal.Text = fileCount.ToString();
            pbCount.Maximum = fileCount;
            pbCount.Value = 0;
            foreach (var fileName in ofd.FileNames)
            {
                try
                {
                    var sr = new StreamReader(fileName, Encoding.GetEncoding("GB2312"));
                    string duqu;
                    while ((duqu = sr.ReadLine()) != null)
                    {
                        var str = duqu.Split('|');
                        var faultage = Faultage.FindAllByProperty("name", str[0]).FirstOrDefault();
                        if (faultage == null)
                        {
                            faultage = new Faultage
                            {
                                name = str[0],
                                coordinate_x = Convert.ToDouble(str[1].Split(',')[0]),
                                coordinate_y = Convert.ToDouble(str[1].Split(',')[1]),
                                coordinate_z = 0.0,
                                separation = str[2],
                                gap = str[2],
                                trend = string.IsNullOrWhiteSpace(str[4]) ? 0.0 : Convert.ToDouble(str[4]),
                                angle = string.IsNullOrWhiteSpace(str[5]) ? 0.0 : Convert.ToDouble(str[5]),
                                length = string.IsNullOrWhiteSpace(str[6]) ? 0.0 : Convert.ToDouble(str[6]),
                                type = str[3],
                                bid = IdGenerator.NewBindingId()
                            };
                            DrawJldc(faultage);
                        }
                        else
                        {
                            faultage.name = str[0];
                            faultage.coordinate_x = Convert.ToDouble(str[1].Split(',')[0]);
                            faultage.coordinate_y = Convert.ToDouble(str[1].Split(',')[1]);
                            faultage.coordinate_z = 0.0;
                            faultage.separation = str[2];
                            faultage.gap = str[2];
                            faultage.trend = string.IsNullOrWhiteSpace(str[4]) ? 0.0 : Convert.ToDouble(str[4]);
                            faultage.angle = string.IsNullOrWhiteSpace(str[5]) ? 0.0 : Convert.ToDouble(str[5]);
                            faultage.length = string.IsNullOrWhiteSpace(str[6]) ? 0.0 : Convert.ToDouble(str[6]);
                            faultage.type = str[3];
                            ModifyJldc(faultage);
                        }
                        faultage.Save();
                        pbCount.Value++;
                        lblSuccessed.Text = lblSuccessed.Text =
                            (Convert.ToInt32(lblSuccessed.Text) + 1).ToString(CultureInfo.InvariantCulture);
                    }
                }
                catch (Exception)
                {
                    lblError.Text =
                        (Convert.ToInt32(lblError.Text) + 1).ToString(CultureInfo.InvariantCulture);
                    ErrorMsg += fileName.Substring(fileName.LastIndexOf(@"\", StringComparison.Ordinal) + 1) + "\n";
                    btnDetails.Enabled = true;
                }
            }
            Alert.AlertMsg("导入完成");
        }
Esempio n. 10
0
        /// <summary>
        ///     绘制揭露断层图元
        /// </summary>
        /// <params name="faultage"></params>
        private void DrawJldc(Faultage faultage)
        {
            ////1.获得当前编辑图层
            //DrawSpecialCommon drawspecial = new DrawSpecialCommon();
            //string sLayerAliasName = LibCommon.LibLayerNames.DEFALUT_EXPOSE_FAULTAGE;//“揭露断层”图层
            //IFeatureLayer featureLayer = drawspecial.GetFeatureLayerByName(sLayerAliasName);
            //if (featureLayer == null)
            //{
            //    MessageBox.Show("未找到" + sLayerAliasName + "图层,无法绘制揭露断层图元。");
            //    return;
            //}

            ////2.生成要素(要根据中心点获取起止点)
            ////中心点
            //double centrePtX = Convert.ToDouble(this.txtCoordinateX.Text.ToString());
            //double centrePtY = Convert.ToDouble(this.txtCoordinateY.Text.ToString());
            //IPoint centrePt = new PointClass();
            //centrePt.X = centrePtX;
            //centrePt.Y = centrePtY;

            //// 图形坐标Z  //zwy 20140526 add
            //double dCoordinateZ = 0;
            //if (!double.TryParse(this.txtCoordinateZ.Text.Trim(), out dCoordinateZ))
            //{
            //    MessageBox.Show("输入的Z坐标不是有效数值,请检查!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            //    return;
            //}
            //centrePt.Z = dCoordinateZ;

            //double angle = Convert.ToDouble(this.txtAngle.Text.ToString());//倾角
            //double length = 10;//默认长度为20,左右各10

            ////计算起止点
            //IPoint fromPt = new PointClass();
            //IPoint toPt = new PointClass();
            //CalculateEndpoints(centrePt, angle, length, ref fromPt, ref toPt);
            //DataEditCommon.g_CurWorkspaceEdit.StartEditing(false);
            //DataEditCommon.g_CurWorkspaceEdit.StartEditOperation();
            //IFeature pFeature = featureLayer.FeatureClass.CreateFeature();

            //ILine line = new LineClass();
            //line.PutCoords(fromPt, toPt);
            //object Missing = Type.Missing;
            //ISegment segment = line as ISegment;
            //ISegmentCollection newLine = new PolylineClass();
            //newLine.AddSegment(segment, ref Missing, ref Missing);
            //IPolyline polyline = newLine as IPolyline;

            //DataEditCommon.ZMValue(pFeature, polyline);  //zwy 20140526 add
            //pFeature.Shape = polyline;

            ////2.1断层标注(DCBZ)
            //string strMC = this.txtFaultageName.Text;//断层名称
            //string strLC = this.txtGap.Text;//落差
            //string strQJ = this.txtAngle.Text;//倾角
            //string strDCBZ = strMC + " " + "H=" + strLC + "m" + " " + "<" + strQJ + "°";

            ////断层标注字段赋值(该字段值保持在图层属性中)
            //int index = featureLayer.FeatureClass.Fields.FindField("FAULTAGE_NAME");
            //pFeature.set_Value(index, strDCBZ);

            ////要素ID字段赋值(对应属性表中BindingID)
            //int iFieldID = pFeature.Fields.FindField(GIS_Const.FIELD_BID);
            //pFeature.Value[iFieldID] = faultage.bid.ToString();

            //pFeature.Store();
            //DataEditCommon.g_CurWorkspaceEdit.StopEditOperation();
            //DataEditCommon.g_CurWorkspaceEdit.StopEditing(true);
            ////2.2给生成的断层赋符号
            //int ID = pFeature.OID;
            //string path = Application.StartupPath + @"\symbol.ServerStyle";//【这里用到了自己定义的符号库】
            ////默认为正断层(符号)
            //string sGalleryClassName = "123";
            //string symbolName = "123"; ;
            //if (this.rbtnFrontFaultage.Checked)//正断层
            //{

            //    sGalleryClassName = "123";
            //    symbolName = "123";
            //}
            //else if (this.rbtnOppositeFaultage.Checked)//逆断层
            //{

            //    sGalleryClassName = "1234";
            //    symbolName = "1234";
            //}

            //ILineSymbol lineSymbol = GetSymbol(path, sGalleryClassName, symbolName);
            //ILayer layer = featureLayer as ILayer;
            //SpecialLineRenderer(layer, ID, lineSymbol);
            //AddAnnotate(layer, GIS_Const.FILE_DCBZ);

            ////缩放到新增的线要素,并高亮该要素
            //GIS.Common.DataEditCommon.g_pMyMapCtrl.ActiveView.Extent = pFeature.Shape.Envelope;
            //GIS.Common.DataEditCommon.g_pMyMapCtrl.ActiveView.Extent.Expand(1.5, 1.5, true);
            //GIS.Common.DataEditCommon.g_pMyMapCtrl.Map.SelectFeature(featureLayer, pFeature);
            //GIS.Common.DataEditCommon.g_pMyMapCtrl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewAll, null, null);


            var pLayer       = DataEditCommon.GetLayerByName(DataEditCommon.g_pMap, LayerNames.DEFALUT_EXPOSE_FAULTAGE);
            var featureLayer = (IFeatureLayer)pLayer;

            if (pLayer == null)
            {
                MessageBox.Show(@"未找到揭露断层图层,无法绘制揭露断层图元。");
                return;
            }
            //2.生成要素(要根据中心点获取起止点)
            //中心点
            IPoint centrePt = new PointClass();

            centrePt.X = faultage.coordinate_x;
            centrePt.Y = faultage.coordinate_y;
            centrePt.Z = faultage.coordinate_z;

            var trend  = faultage.trend;      //走向
            var length = faultage.length / 2; //默认长度为20,左右各10

            //计算起止点
            IPoint fromPt = new PointClass();
            IPoint toPt   = new PointClass();

            CalculateEndpoints(centrePt, trend, length, ref fromPt, ref toPt);

            ILine line = new LineClass();

            line.PutCoords(fromPt, toPt);
            var missing = Type.Missing;
            var segment = (ISegment)line;
            ISegmentCollection newLine = new PolylineClass();

            newLine.AddSegment(segment, ref missing, ref missing);
            var polyline = (IPolyline)newLine;

            var list = new List <ziduan>
            {
                new ziduan("bid", faultage.bid),
                new ziduan("FAULTAGE_NAME", faultage.name),
                new ziduan("addtime", DateTime.Now.ToString(CultureInfo.InvariantCulture)),
                new ziduan("GAP", faultage.gap),
                new ziduan("ANGLE", faultage.angle.ToString(CultureInfo.InvariantCulture)),
                new ziduan("TREND", faultage.trend.ToString(CultureInfo.InvariantCulture)),
                new ziduan("SEPARATION", faultage.separation),
                new ziduan("type", faultage.type)
            };

            var pfeature = DataEditCommon.CreateNewFeature(featureLayer, polyline, list);

            if (pfeature == null)
            {
                return;
            }
            MyMapHelp.Jump(polyline);
            DataEditCommon.g_pMyMapCtrl.ActiveView.PartialRefresh(
                (esriViewDrawPhase)34, null, null);
        }
Esempio n. 11
0
        private void btnMultTxt_Click(object sender, EventArgs e)
        {
            var ofd = new OpenFileDialog
            {
                RestoreDirectory = true,
                Filter           = @"文本文件(*.txt)|*.txt|所有文件(*.*)|*.*",
                Multiselect      = true
            };

            ErrorMsg = @"失败文件名:";


            if (ofd.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            var fileCount = ofd.FileNames.Length;

            lblTotal.Text   = fileCount.ToString();
            pbCount.Maximum = fileCount;
            pbCount.Value   = 0;
            foreach (var fileName in ofd.FileNames)
            {
                try
                {
                    var    sr = new StreamReader(fileName, Encoding.GetEncoding("GB2312"));
                    string duqu;
                    while ((duqu = sr.ReadLine()) != null)
                    {
                        var str      = duqu.Split('|');
                        var faultage = Faultage.FindAllByProperty("name", str[0]).FirstOrDefault();
                        if (faultage == null)
                        {
                            faultage = new Faultage
                            {
                                name         = str[0],
                                coordinate_x = Convert.ToDouble(str[1].Split(',')[0]),
                                coordinate_y = Convert.ToDouble(str[1].Split(',')[1]),
                                coordinate_z = 0.0,
                                separation   = str[2],
                                gap          = str[2],
                                trend        = string.IsNullOrWhiteSpace(str[4]) ? 0.0 : Convert.ToDouble(str[4]),
                                angle        = string.IsNullOrWhiteSpace(str[5]) ? 0.0 : Convert.ToDouble(str[5]),
                                length       = string.IsNullOrWhiteSpace(str[6]) ? 0.0 : Convert.ToDouble(str[6]),
                                type         = str[3],
                                bid          = IdGenerator.NewBindingId()
                            };
                            DrawJldc(faultage);
                        }
                        else
                        {
                            faultage.name         = str[0];
                            faultage.coordinate_x = Convert.ToDouble(str[1].Split(',')[0]);
                            faultage.coordinate_y = Convert.ToDouble(str[1].Split(',')[1]);
                            faultage.coordinate_z = 0.0;
                            faultage.separation   = str[2];
                            faultage.gap          = str[2];
                            faultage.trend        = string.IsNullOrWhiteSpace(str[4]) ? 0.0 : Convert.ToDouble(str[4]);
                            faultage.angle        = string.IsNullOrWhiteSpace(str[5]) ? 0.0 : Convert.ToDouble(str[5]);
                            faultage.length       = string.IsNullOrWhiteSpace(str[6]) ? 0.0 : Convert.ToDouble(str[6]);
                            faultage.type         = str[3];
                            ModifyJldc(faultage);
                        }
                        faultage.Save();
                        pbCount.Value++;
                        lblSuccessed.Text = lblSuccessed.Text =
                            (Convert.ToInt32(lblSuccessed.Text) + 1).ToString(CultureInfo.InvariantCulture);
                    }
                }
                catch (Exception)
                {
                    lblError.Text =
                        (Convert.ToInt32(lblError.Text) + 1).ToString(CultureInfo.InvariantCulture);
                    ErrorMsg          += fileName.Substring(fileName.LastIndexOf(@"\", StringComparison.Ordinal) + 1) + "\n";
                    btnDetails.Enabled = true;
                }
            }
            Alert.AlertMsg("导入完成");
        }
Esempio n. 12
0
        private void btnMultTxt_Click(object sender, EventArgs e)
        {
            var ofd = new OpenFileDialog
            {
                RestoreDirectory = true,
                Filter           = @"文本文件(*.txt)|*.txt|所有文件(*.*)|*.*",
                Multiselect      = true
            };

            ErrorMsg = @"失败文件名:";


            if (ofd.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            var fileCount = ofd.FileNames.Length;

            lblTotal.Text   = fileCount.ToString();
            pbCount.Maximum = fileCount;
            pbCount.Value   = 0;
            foreach (var fileName in ofd.FileNames)
            {
                try
                {
                    var    sr = new StreamReader(fileName, Encoding.GetEncoding("GB2312"));
                    string duqu;
                    while ((duqu = sr.ReadLine()) != null)
                    {
                        var str      = duqu.Split('|');
                        var faultage = Faultage.FindByFaultageName(str[0]);
                        if (faultage == null)
                        {
                            faultage = new Faultage
                            {
                                FaultageName = str[0],
                                CoordinateX  = Convert.ToDouble(str[1].Split(',')[0]),
                                CoordinateY  = Convert.ToDouble(str[1].Split(',')[1]),
                                CoordinateZ  = 0.0,
                                Separation   = str[2],
                                Gap          = str[2],
                                Trend        = String.IsNullOrWhiteSpace(str[4]) ? 0.0 : Convert.ToDouble(str[4]),
                                Angle        = String.IsNullOrWhiteSpace(str[5]) ? 0.0 : Convert.ToDouble(str[5]),
                                Length       = String.IsNullOrWhiteSpace(str[6]) ? 0.0 : Convert.ToDouble(str[6]),
                                Type         = str[3],
                                BindingId    = IDGenerator.NewBindingID()
                            };
                            DrawJldc(faultage);
                        }
                        else
                        {
                            faultage.FaultageName = str[0];
                            faultage.CoordinateX  = Convert.ToDouble(str[1].Split(',')[0]);
                            faultage.CoordinateY  = Convert.ToDouble(str[1].Split(',')[1]);
                            faultage.CoordinateZ  = 0.0;
                            faultage.Separation   = str[2];
                            faultage.Gap          = str[2];
                            faultage.Trend        = String.IsNullOrWhiteSpace(str[4]) ? 0.0 : Convert.ToDouble(str[4]);
                            faultage.Angle        = String.IsNullOrWhiteSpace(str[5]) ? 0.0 : Convert.ToDouble(str[5]);
                            faultage.Length       = String.IsNullOrWhiteSpace(str[6]) ? 0.0 : Convert.ToDouble(str[6]);
                            faultage.Type         = str[3];
                            ModifyJldc(faultage);
                        }
                        faultage.Save();
                        pbCount.Value++;
                        lblSuccessed.Text = lblSuccessed.Text =
                            (Convert.ToInt32(lblSuccessed.Text) + 1).ToString(CultureInfo.InvariantCulture);
                    }
                }
                catch (Exception)
                {
                    lblError.Text =
                        (Convert.ToInt32(lblError.Text) + 1).ToString(CultureInfo.InvariantCulture);
                    ErrorMsg          += fileName.Substring(fileName.LastIndexOf(@"\", StringComparison.Ordinal) + 1) + "\n";
                    btnDetails.Enabled = true;
                }
            }
            SendMessengToServer();
            Alert.alert("导入完成");
        }
Esempio n. 13
0
        /// <summary>
        ///     提  交
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSubmit_Click(object sender, EventArgs e)
        {
            // 验证
            if (!Check())
            {
                DialogResult = DialogResult.None;
                return;
            }
            DialogResult = DialogResult.OK;

            // 创建断层实体
            Faultage = Faultage.FindByFaultageName(txtFaultageName.Text.Trim());
            Faultage = Faultage ?? new Faultage {
                BindingId = IDGenerator.NewBindingID()
            };

            Faultage.FaultageName = txtFaultageName.Text.Trim();
            Faultage.Gap          = txtGap.Text.Trim();
            Faultage.Type         = rbtnFrontFaultage.Checked ? Const_GM.FRONT_FAULTAGE : Const_GM.OPPOSITE_FAULTAGE;
            Faultage.Trend        = Convert.ToDouble(txtTrend.Text);
            Faultage.Separation   = txtSeparation.Text.Trim();

            double dAngle;

            if (double.TryParse(txtAngle.Text.Trim(), out dAngle))
            {
                Faultage.Angle = dAngle;
            }

            // 坐标X
            double dCoordinateX;

            if (double.TryParse(txtCoordinateX.Text.Trim(), out dCoordinateX))
            {
                Faultage.CoordinateX = dCoordinateX;
            }

            // 坐标Y
            double dCoordinateY;

            if (double.TryParse(txtCoordinateY.Text.Trim(), out dCoordinateY))
            {
                Faultage.CoordinateY = dCoordinateY;
            }

            // 坐标Z
            double dCoordinateZ;

            if (double.TryParse(txtCoordinateZ.Text.Trim(), out dCoordinateZ))
            {
                Faultage.CoordinateZ = dCoordinateZ;
            }
            double dLength;

            if (double.TryParse(txtLength.Text.Trim(), out dLength))
            {
                Faultage.Length = dLength;
            }

            ModifyJldc(Faultage);

            Faultage.Save();
            // 断层信息修改
            SendMessengToServer();
            DialogResult = DialogResult.OK;
        }
Esempio n. 14
0
 private void RefreshData()
 {
     gcFaultage.DataSource = Faultage.FindAll();
 }