Пример #1
0
 private void toolKM_Click_1(object sender, EventArgs e)
 {
     ////变化单位时重新显示数据 xisheng 20111118
     //if (m_Units == esriUnits.esriMeters)
     //{
     //    this.m_Units = esriUnits.esriKilometers;
     //    if (lblResult.Text.Trim() != "")
     //    {
     //        if (toolMeasureArea.Checked)
     //            ShowResult(2, false);
     //        else if (toolMeasureLine.Checked)
     //            ShowResult(1, false);
     //    }
     //}
     ////***************************************end
     //toolKM.Checked = true; toolM.Checked = false;
     //变化单位时重新显示数据 xisheng 20111118
     this.m_MyUnits = enumMyUnits.KiloMeters;
     if (lblResult.Text.Trim() != "")
     {
         if (toolMeasureArea.Checked)
         {
             ShowResult(2, false);
         }
         else if (toolMeasureLine.Checked)
         {
             ShowResult(1, false);
         }
     }
     toolKM.Checked       = true;
     toolMu.Checked       = false;
     toolHectares.Checked = false;
     toolM.Checked        = false;
 }
Пример #2
0
 private void toolHectares_Click(object sender, EventArgs e)
 {
     //变化单位时重新显示数据 xisheng 20111118
     this.m_MyUnits = enumMyUnits.Hectares;
     if (lblResult.Text.Trim() != "")
     {
         if (toolMeasureArea.Checked)
         {
             ShowResult(2, false);
         }
         else if (toolMeasureLine.Checked)
         {
             ShowResult(1, false);
         }
     }
     toolKM.Checked       = false;
     toolMu.Checked       = false;
     toolHectares.Checked = true;
     toolM.Checked        = false;
 }
Пример #3
0
        private string GetMyAreaUnitsName(enumMyUnits pUnit)
        {
            switch (pUnit)
            {
            case enumMyUnits.Meters:
                return("平方米");

            case enumMyUnits.KiloMeters:
                return("平方千米");

            case enumMyUnits.Mu:
                return("亩");

            case enumMyUnits.Hectares:
                return("公顷");

            default:
                return("平方米");

                break;
            }
        }
Пример #4
0
        public void ShowResult(int meaType, bool start)
        {
            string sResult    = "";
            string sUnit_len  = "";
            string sUnit_Area = "";

            sUnit_len  = this.GetMyLenUnitsName(m_MyUnits);
            sUnit_Area = this.GetMyAreaUnitsName(m_MyUnits);
            enumMyUnits pToUnit = m_MyUnits;
            ////////////////////判断坐标单位是否一致////////////////////////
            double dSum        = this.dblSumLength;
            double bCurrentlen = this.dblSegLength;
            double dlen        = this.dblLength;

            //xs针对单位变化的时候来调整数据的 xisheng 2011117
            double area    = dblArea;
            double sumarea = dblSumArea;

            double show_curCirclelen = dlen;
            double show_curlen       = bCurrentlen;
            double show_sumlen       = dSum;
            double show_curarea      = area;
            double show_sumarea      = sumarea;

            if (pToUnit == enumMyUnits.Meters)
            {
                if (arealast != 0)
                {
                    area    = arealast;
                    sumarea = sumarealast;
                }
                else
                {
                    arealast    = area;
                    sumarealast = sumarea;
                    //dblSumArea = dblSumArea * 1000000;
                }
            }
            else if (pToUnit == enumMyUnits.KiloMeters)
            {
                if (arealast != 0)
                {
                    area    = arealast;
                    sumarea = sumarealast;
                }
                else
                {
                    arealast    = area;
                    sumarealast = sumarea;
                    //dblSumArea = dblSumArea / 1000000;
                }
                show_curCirclelen = show_curCirclelen / 1000;
                show_curlen       = show_curlen / 1000;
                show_sumlen       = show_sumlen / 1000;
                show_curarea      = show_curarea / 1000000;
                show_sumarea      = show_sumarea / 1000000;
            }
            else if (pToUnit == enumMyUnits.Mu)
            {
                if (arealast != 0)
                {
                    area    = arealast;
                    sumarea = sumarealast;
                }
                else
                {
                    arealast    = area;
                    sumarealast = sumarea;
                    //dblSumArea = dblSumArea / 1000000;
                }
                show_curarea = show_curarea * 3 / 2000;
                show_sumarea = show_sumarea * 3 / 2000;
            }
            else if (pToUnit == enumMyUnits.Hectares)
            {
                if (arealast != 0)
                {
                    area    = arealast;
                    sumarea = sumarealast;
                }
                else
                {
                    arealast    = area;
                    sumarealast = sumarea;
                    //dblSumArea = dblSumArea / 1000000;
                }
                show_curarea = show_curarea / 10000;
                show_sumarea = show_sumarea / 10000;
            }

            //xs***************************************************end

            if (meaType == 1)
            {
                sResult = "线段测量结果:\n当前弧段长度:" + Math.Round(show_curCirclelen, 3) + sUnit_len
                          + "\n当前线段长度:" + Math.Round(show_curlen, 3) + sUnit_len;
                if (this.m_bShowSum == true)
                {
                    sResult += "\n\n总长度:" + Math.Round(show_sumlen, 3) + sUnit_len;
                }
            }
            else if (meaType == 2)
            {
                sResult = "多边形测量结果:\n当前弧段长度:" + Math.Round(show_curCirclelen, 3) + sUnit_len
                          + "\n当前多边形周长:" + Math.Round(show_curlen, 3) + sUnit_len
                          + "\n当前多边形面积:" + Math.Round(show_curarea, 3) + sUnit_Area;
                if (this.m_bShowSum == true)
                {
                    sResult += "\n\n总周长:" + Math.Round(show_sumlen, 3) + sUnit_len
                               + "\n总面积:" + Math.Round(show_sumarea, 3) + sUnit_Area;
                }
            }
            else if (meaType == 3)
            {
                sResult = "和X正轴夹角:" + ang.ToString("f2") + "°";
            }
            if (start)
            {
                //重新画了之后把之前的面积置于0 xisheng 20111118
                sumarealast = 0;
                arealast    = 0;
            }
            this.lblResult.Text = sResult;
        }
Пример #5
0
        //显示结果到窗体上
        public void ShowResult(double segLen, double len, double SumLen, double Area, double SumArea, bool IsLine)
        {
            string sResult    = "";
            string sUnit_len  = "";
            string sUnit_Area = "";

            sUnit_len  = this.GetMyLenUnitsName(m_MyUnits);
            sUnit_Area = this.GetMyAreaUnitsName(m_MyUnits);
            ////////////////////判断坐标单位是否一致////////////////////////
            double dSum        = SumLen;
            double bCurrentlen = segLen;
            double dlen        = len;

            enumMyUnits pToUnit           = m_MyUnits;
            double      show_curCirclelen = dlen;
            double      show_curlen       = bCurrentlen;
            double      show_sumlen       = dSum;
            double      show_curarea      = Area;
            double      show_sumarea      = SumArea;

            if (pToUnit == enumMyUnits.Meters)
            {
            }
            else if (pToUnit == enumMyUnits.KiloMeters)
            {
                show_curCirclelen = show_curCirclelen / 1000;
                show_curlen       = show_curlen / 1000;
                show_sumlen       = show_sumlen / 1000;
                show_curarea      = show_curarea / 1000000;
                show_sumarea      = show_sumarea / 1000000;
            }
            else if (pToUnit == enumMyUnits.Mu)
            {
                show_curarea = show_curarea * 3 / 2000;
                show_sumarea = show_sumarea * 3 / 2000;
            }
            else if (pToUnit == enumMyUnits.Hectares)
            {
                show_curarea = show_curarea / 10000;
                show_sumarea = show_sumarea / 10000;
            }

            //原有代码
            //if (this.m_Displayunit != esriUnits.esriUnknownUnits)
            //{
            //    if (this.m_Displayunit != this.m_Units)
            //    {
            //        dSum = UnitConvert(dSum);
            //        bCurrentlen = UnitConvert(bCurrentlen);
            //        dlen = UnitConvert(dlen);
            //        //Area = UnitConvert(Area);
            //        //SumArea = UnitConvert(SumArea);
            //    }
            //}
            ////////////////////////////////////////////////////////////////
            //xisheng 20111118 end************************************end

            if (IsLine == true)
            {
                sResult = "线段测量结果:\n当前弧段长度:" + Math.Round(show_curCirclelen, 3) + sUnit_len
                          + "\n当前线段长度:" + Math.Round(show_curlen, 3) + sUnit_len;
                if (this.m_bShowSum == true)
                {
                    sResult += "\n\n总长度:" + Math.Round(show_sumlen, 3) + sUnit_len;
                }
            }
            else
            {
                sResult = "多边形测量结果:\n当前弧段长度:" + Math.Round(show_curlen, 3) + sUnit_len
                          + "\n当前多边形周长:" + Math.Round(show_curCirclelen, 3) + sUnit_len
                          + "\n当前多边形面积:" + Math.Round(show_curarea, 3) + sUnit_Area;
                if (this.m_bShowSum == true)
                {
                    sResult += "\n\n总周长:" + Math.Round(show_sumlen, 3) + sUnit_len
                               + "\n总面积:" + Math.Round(show_sumarea, 3) + sUnit_Area;
                }
            }
            this.lblResult.Text = sResult;
        }