Пример #1
0
        /// <summary>
        /// 暂时保存编辑内容,将正在编辑的要素保存到原有要素,并计算地理坐标
        /// </summary>
        public void TmpSaveEdit()
        {
            if (_IsEditing)
            {
                if (_EditingLayer.GeoType == typeof(PointD))
                {
                    foreach (DataRow sRow in _EditingLayer.EditingRecord)
                    {
                        if (!Convert.IsDBNull(sRow[2]))
                        {
                            sRow[1] = _PrjSystem.ToLngLat((PointD)sRow[2]);
                            sRow[3] = ((PointD)sRow[2]).Clone();
                        }
                        else
                        {
                            sRow[1] = null;
                        }
                    }
                }
                else if (_EditingLayer.GeoType == typeof(MultiPolyLine))
                {
                    foreach (DataRow sRow in _EditingLayer.EditingRecord)
                    {
                        if (!Convert.IsDBNull(sRow[2]))
                        {
                            sRow[1] = _PrjSystem.ToLngLat((MultiPolyLine)sRow[2]);
                            sRow[3] = LayerTools.GetCenterPoint((MultiPolyLine)sRow[2]);
                        }
                        else
                        {
                            sRow[1] = null;
                        }
                    }
                }
                else if (_EditingLayer.GeoType == typeof(MultiPolygon))
                {
                    foreach (DataRow sRow in _EditingLayer.EditingRecord)
                    {
                        if (!Convert.IsDBNull(sRow[2]))
                        {
                            sRow[1] = _PrjSystem.ToLngLat((MultiPolygon)sRow[2]);
                            sRow[3] = LayerTools.GetCenterPoint((MultiPolygon)sRow[2]);
                        }
                        else
                        {
                            sRow[1] = null;
                        }
                    }
                }

                _EditingLayer.EditingRecord.Clear();
            }
        }