Esempio n. 1
0
        private void CreatProjSystem()
        {
            AngularUnit prjLinearUnit = new AngularUnit(linearUnit.LinearUnitName, linearUnit.LinearUnitValue);

            foreach (NameValuePair projParam in projectionParam.ProjectParams)
            {
                if (projParam.Name == null)
                {
                    projectionParam.CollectionAguments();
                }
            }
            NameValuePair[] prjParams = projectionParam.ProjectParams;
            using (PrjStdsMapTableParser p = new PrjStdsMapTableParser())
            {
                if (projectionParam.CurrentEnviPrjInfoArgDefs == null)
                {
                    projectionParam.GetPrjNameItem();
                }
                NameMapItem prjName = p.GetPrjNameItemByEnviName(projectionParam.CurrentEnviPrjInfoArgDefs.PrjId.ToString());
                if (prjName == null)
                {
                    MessageBox.Show("投影名错误!", "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                _projectionCoordSystem = new ProjectionCoordSystem(prjName, projectionParam.ProjectParams, prjLinearUnit);
            }
            _spatialReference      = new SpatialReference(_geographicCoordSystem, _projectionCoordSystem);
            _spatialReference.Name = _spatialSystemName;
        }
Esempio n. 2
0
        /// <summary>
        /// 从界面数据表中获取参数信息
        /// </summary>
        private void GetDataGridValue()
        {
            NameValuePair prjParam = null;
            int           count    = dgvParams.RowCount;

            _projectParams = new NameValuePair[count]; //这里原为count-1,是错误的
            PrjStdsMapTableParser parser = new PrjStdsMapTableParser();
            string      name;
            double      value;
            NameMapItem item;

            for (int i = 0; i < count; i++)          //这里原为count-1,是错误的
            {
                DataGridViewRow row = dgvParams.Rows[i];
                name = row.Cells[0].Value.ToString();
                //if (parser.GetPrjParamterItemByWktName(name) == null)
                //    throw new Exception();
                //if (row.Cells[1].Value == null)
                //    throw new Exception();
                try
                {
                    item              = parser.GetPrjParamterItemByWktName(name);
                    value             = double.Parse(row.Cells[1].Value.ToString());
                    prjParam          = new NameValuePair(item, value);
                    _projectParams[i] = prjParam;
                }
                catch
                {
                    MessageBox.Show("请输入数字!", "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }
Esempio n. 3
0
 private void InitPrjName()
 {
     using (PrjStdsMapTableParser parser = new PrjStdsMapTableParser())
     {
         if (parser.EnviPrjInfoArgDefs != null)
         {
             _enviPrjInfoArgDefs = parser.EnviPrjInfoArgDefs;
             for (int i = 2; i < _enviPrjInfoArgDefs.Length; i++)
             {
                 cmbPrjName.Items.Add(_enviPrjInfoArgDefs[i].PrjName);
             }
         }
     }
 }
Esempio n. 4
0
 public void GetPrjNameItem()
 {
     string[] argNames = null;
     using (PrjStdsMapTableParser parser = new PrjStdsMapTableParser())
     {
         for (int i = 2; i < _enviPrjInfoArgDefs.Length; i++)
         {
             if (_enviPrjInfoArgDefs[i].PrjName == cmbPrjName.Text)  // prjName)
             {
                 _currentEnviPrjInfoArgDef = _enviPrjInfoArgDefs[i]; //当前选定的投影参数数组
                 argNames = _currentEnviPrjInfoArgDef.Args;
                 GetPrjArgNameList(argNames);
                 break;
             }
         }
     }
     if (_currentEnviPrjInfoArgDef == null)
     {
         MessageBox.Show("投影参数名错误!", "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
 }
Esempio n. 5
0
        /// <summary>
        /// 通过投影参数名数组获取投影参数名
        /// </summary>
        /// <param name="argNames"></param>
        private void GetPrjArgNameList(string[] argNames)
        {
            int count;

            NameMapItem[] prjNames;
            using (PrjStdsMapTableParser parser = new PrjStdsMapTableParser())
            {
                if (argNames[0] == "a")
                {
                    count    = argNames.Length - 2;
                    prjNames = new NameMapItem[count];
                    //通过Envi名获取投影参数列表
                    for (int i = 0; i < count; i++)
                    {
                        prjNames[i] = parser.GetPrjParamterItemByEnviName(argNames[i + 2]);
                    }
                    if (prjNames == null)
                    {
                        return;
                    }
                    FillDataGrid(prjNames);
                }
                else if (argNames[0] == "r")
                {
                    count    = argNames.Length - 1;
                    prjNames = new NameMapItem[count];
                    for (int i = 0; i < count; i++)
                    {
                        prjNames[i] = parser.GetPrjParamterItemByEnviName(argNames[i + 1]);
                    }
                    if (prjNames == null)
                    {
                        return;
                    }
                    FillDataGrid(prjNames);
                }
            }
        }