public FormMetaData(Demo.Entities.RasterLayer RL) { InitializeComponent(); Raster2Control(RL); xtraTabControl1.SelectedTabPage = xtraTabPage1; Mode = 0; }
private void buttonImport_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "xml文件|*.xml"; if (ofd.ShowDialog() == DialogResult.OK) { string fname = ofd.FileName; if (Mode == 0) { Demo.Entities.RasterLayer rl = xmlSerialize.DeSerialize <Demo.Entities.RasterLayer>(fname); Raster2Control(rl); } else if (Mode == 1) { VectorLayer vl = xmlSerialize.DeSerialize <VectorLayer>(fname); Vector2Control(vl); } else if (Mode == 2) { FileLayer fl = xmlSerialize.DeSerialize <FileLayer>(fname); File2Control(fl); } } }
private void toolStripMenuItem4_Click(object sender, EventArgs e) { TreeNode tn = treeView1.SelectedNode; if (tn == null) { return; } string layerID = Convert.ToString(tn.Tag); if (tn.Parent.Tag != null && tn.Parent.Tag.ToString() == "RASTER_LAYERS") { Demo.Entities.RasterLayer rl = Demo.Entities.RasterLayer.GetRasterIndexById(layerID); if (rl == null) { return; } FormMetaData fmd = new FormMetaData(rl); fmd.ShowDialog(); } else if (tn.Parent.Tag != null && tn.Parent.Tag.ToString() == "VECTOR_LAYERS") { VectorLayer vl = VectorLayer.GetVectorIndexById(layerID); if (vl == null) { return; } FormMetaData fmd = new FormMetaData(vl); fmd.ShowDialog(); } }
private void buttonMetaData_Click(object sender, EventArgs e) { Demo.FormMetaData fmd; switch (nowDT) { case enumDataType.raster: fmd = new Demo.FormMetaData(this.rstLayer); break; case enumDataType.dem: fmd = new Demo.FormMetaData(this.rstLayer); break; case enumDataType.vector: fmd = new Demo.FormMetaData(this.vctLayer); break; default: fmd = new Demo.FormMetaData(this.fleLayer); break; } if (fmd.ShowDialog() == DialogResult.OK) { this.rstLayer = fmd.rstLayer; this.vctLayer = fmd.vctLayer; this.fleLayer = fmd.fleLayer; } }
private void button1_Click(object sender, EventArgs e) { Demo.Entities.RasterLayer rl = Demo.Entities.RasterLayer.GetRasterIndexById(""); if (rl != null) { FormMetaData fmd = new FormMetaData(rl); fmd.ShowDialog(); } }
private void Raster2Control(Demo.Entities.RasterLayer RL) { Base2Control((BaseLayer)RL); textBoxRBandCount.Text = RL.BANDCOUNT.ToString(); textBoxRHeight.Text = RL.HEIGHT.ToString(); textBoxRVisible.Text = RL.ISVISIBLE.ToString(); textBoxRMaxX.Text = RL.MAXX.ToString(); textBoxRMaxY.Text = RL.MAXY.ToString(); textBoxRMinX.Text = RL.MINX.ToString(); textBoxRMinY.Text = RL.MINY.ToString(); textBoxRNoDataValue.Text = RL.NODATAVALUE.ToString(); textBoxRWidth.Text = RL.WIDTH.ToString(); textBoxRResolution.Text = RL.RESOLUTION.ToString(); }
private void Control2Base(out Demo.Entities.RasterLayer BL) { BL = new Demo.Entities.RasterLayer(); BL.SCALE = Convert.ToInt64(textBoxScale.Text); BL.AUTHOR = textBoxAuthor.Text; BL.CREATETIME = textBoxCreateTime.Text; BL.DATATYPE = textBoxDataType.Text; BL.DESCRIPTION = textBoxDescription.Text; BL.LAYERNAME = textBoxLayerName.Text; BL.MAPNUM = textBoxMapNum.Text; BL.PROJECTION = textBoxProjection.Text; BL.DATAFORMAT = textBoxDataformat.Text; BL.DATAGETDATE = dateTimePickerDatagetdate.Value; BL.DATASOURCES = comboBoxDatasource.Text; BL.REGION = treeComboBoxArea.areacodetext.PadRight(9, '0'); }
private void buttonOpen_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); switch (nowDT) { case enumDataType.raster: ofd.Filter = "栅格数据|*.tif;*.img;*.pix;*.bmp;*.jpg"; break; case enumDataType.dem: ofd.Filter = "地形数据|*.tif;*.img;*.pix;*.grd;*.dem"; break; case enumDataType.vector: ofd.Filter = "矢量数据|*.shp;*.e00;*.dwg;*.bmp;*.mif"; break; default: ofd.Filter = "数据|*.*"; break; } if (ofd.ShowDialog() == DialogResult.OK) { FormMetaData frmMD; textBoxImport.Text = ofd.FileName; ILayer pLayer = GetILayerFromPath(ofd.FileName); if (pLayer != null) { frmMD = new FormMetaData(pLayer); } else { frmMD = new FormMetaData(ofd.FileName); } if (frmMD.ShowDialog() == DialogResult.OK) { this.rstLayer = frmMD.rstLayer; this.vctLayer = frmMD.vctLayer; this.fleLayer = frmMD.fleLayer; } } }
private void Control2Raster(out Demo.Entities.RasterLayer RL) { RL = new Demo.Entities.RasterLayer(); Control2Base(out RL); if (RL == null) { return; } RL.BANDCOUNT = Convert.ToInt64(textBoxRBandCount.Text); RL.HEIGHT = Convert.ToInt64(textBoxRHeight.Text); RL.ISVISIBLE = Convert.ToBoolean(textBoxRVisible.Text); RL.MAXX = Convert.ToSingle(textBoxRMaxX.Text); RL.MAXY = Convert.ToSingle(textBoxRMaxY.Text); RL.MINX = Convert.ToSingle(textBoxRMinX.Text); RL.MINY = Convert.ToSingle(textBoxRMinY.Text); RL.NODATAVALUE = Convert.ToSingle(textBoxRNoDataValue.Text); RL.WIDTH = Convert.ToInt64(textBoxRWidth.Text); RL.RESOLUTION = Convert.ToSingle(textBoxRResolution.Text); }
private void buttonExport_Click(object sender, EventArgs e) { SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "xml 文件|*.xml"; sfd.RestoreDirectory = true; if (sfd.ShowDialog() == DialogResult.OK) { string filename = sfd.FileName; if (!filename.EndsWith(".xml")) { filename += ".xml"; } if (Mode == 0) { Demo.Entities.RasterLayer RL = new Demo.Entities.RasterLayer(); Control2Raster(out RL); xmlSerialize.Serialize <Demo.Entities.RasterLayer>(RL, filename); } else if (Mode == 1) { VectorLayer vl = new VectorLayer(); Control2Vector(out vl); xmlSerialize.Serialize <VectorLayer>(vl, filename); } else if (Mode == 2) { FileLayer fl = new FileLayer(); Control2File(out fl); xmlSerialize.Serialize <FileLayer>(fl, filename); } else { MessageBox.Show("未知文件类型,请重新导出!"); } } }
/// <summary> /// 导出到本地 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void toolStripMenuItem2_Click(object sender, EventArgs e) { if (treeView1.SelectedNode.Parent.Tag.ToString().Equals("RASTER_LAYERS")) { FolderBrowserDialog fbd = new FolderBrowserDialog(); if (fbd.ShowDialog() == DialogResult.OK) { Demo.Entities.RasterLayer rstLyr = Demo.Entities.RasterLayer.GetRasterIndexById(treeView1.SelectedNode.Tag.ToString()); URI uri = new URI(); string sourceFileName = uri.GetServerTruePath(rstLyr.URI); string destFileNickName = fbd.SelectedPath + "\\" + System.IO.Path.GetFileName(sourceFileName); Transfer.RasterReadHelper destRstInfo = new Transfer.RasterReadHelper(destFileNickName); string destFileName = fbd.SelectedPath + "\\" + destRstInfo.NameWithoutExtension + destRstInfo.Extension; Guid taskID = Guid.NewGuid(); TransferTask transferTask = new TransferTask(taskID, sourceFileName, destFileName, TaskType.Download, RenameMode.Accumulate, TaskCategory.Raster, (int)rstLyr.LAYERSIZE); transferTaskListControl1.AddTask(transferTask); } } else if (treeView1.SelectedNode.Parent.Tag.ToString().Equals("VECTOR_LAYERS")) { FolderBrowserDialog fbd = new FolderBrowserDialog(); if (fbd.ShowDialog() == DialogResult.OK) { VectorLayer vctLyr = VectorLayer.GetVectorIndexById(treeView1.SelectedNode.Tag.ToString()); URI uri = new URI(); string sourceFileName = uri.GetServerTruePath(vctLyr.URI); string destFileNickName = fbd.SelectedPath + "\\" + System.IO.Path.GetFileName(sourceFileName); Transfer.FeatureReadHelper destFeatInfo = new Transfer.FeatureReadHelper(destFileNickName); string destFileName = fbd.SelectedPath + "\\" + destFeatInfo.NameWithoutExtension; Guid taskID = Guid.NewGuid(); TransferTask transferTask = new TransferTask(taskID, sourceFileName, destFileName, TaskType.Download, RenameMode.Accumulate, TaskCategory.Features, (int)vctLyr.LAYERSIZE); transferTaskListControl1.AddTask(transferTask); } } }
protected override void DefWndProc(ref System.Windows.Forms.Message m) { switch (m.Msg) { case WM_COPYDATA: { COPYDATASTRUCT mystr = new COPYDATASTRUCT(); Type mytype = mystr.GetType(); mystr = (COPYDATASTRUCT)m.GetLParam(mytype); TransferTask currentTask = transferTaskListControl1.GetTaskByID(new Guid(mystr.lpData.Substring(0, mystr.cbData))); if (currentTask != null) { transferTaskListControl1.CompleteTask(currentTask); //写入元数据 TemplateMetaData metaData; MetaDts.TryGetValue(currentTask.ID, out metaData); if (currentTask.Type == TaskType.Upload) { switch (metaData.MetaDataType) { case EnumMetaDataType.Raster: { Demo.Entities.RasterLayer rstLyr = metaData.LayerData as Demo.Entities.RasterLayer; rstLyr.LAYERSIZE = (long)currentTask.Size; if (Demo.Entities.RasterLayer.ImportRasterIndex(rstLyr) == 1) { //MessageBox.Show("元数据保存成功!"); } else { MessageBox.Show("元数据保存失败!"); } break; } case EnumMetaDataType.Features: { VectorLayer vecLyr = metaData.LayerData as VectorLayer; vecLyr.LAYERSIZE = (long)currentTask.Size; if (VectorLayer.ImportVectorIndex(vecLyr) == 1) { //MessageBox.Show("元数据保存成功!"); } else { MessageBox.Show("元数据保存失败!"); } break; } case EnumMetaDataType.Files: { FileLayer fileLyr = metaData.LayerData as FileLayer; fileLyr.LAYERSIZE = (long)currentTask.Size; if (FileLayer.ImportFileIndex(fileLyr) == 1) { //MessageBox.Show("元数据保存成功!"); } else { MessageBox.Show("元数据保存失败!"); } break; } } } else { } } break; } default: base.DefWndProc(ref m); break; } }
public static List <RasterLayer> GetRasterLayerBySearchConditions(string dbName, SearchConditions sc) { if (String.IsNullOrEmpty(dbName) || sc == null) { return(null); } List <RasterLayer> RLs = new List <RasterLayer>(); OracleConnection oraRasterConn; OracleCommand oraCMD; OracleDataReader oraDataReader; oraRasterConn = DBCon.OraConOpen();; StringBuilder sql; sql = new StringBuilder("SELECT * FROM RASTER_LAYERS WHERE 1=1 AND DBNAME='" + dbName + "' "); if (sc.area.Count > 0) { sql.Append("AND ( "); foreach (string s in sc.area) { sql.Append(" REGION LIKE '" + s + "' OR "); } sql.Append("1<>1 )"); } if (sc.datasource.Count > 0) { sql.Append("AND ( "); foreach (string s in sc.datasource) { sql.Append(" AND DATASOURCES='" + s + "' OR "); } sql.Append("1<>1 )"); } if (sc.scale.Count > 0 && sc.scale.Count == 2) { sql.Append(" AND SCALE BETWEEN " + sc.scale[0] + " AND " + sc.scale[1]); } if (sc.resolution.Count > 0 && sc.resolution.Count == 2) { sql.Append(" AND RESOLUTION BETWEEN " + sc.resolution[0] + " AND " + sc.resolution[1]); } if (!String.IsNullOrEmpty(sc.keywords)) { sql.Append(" AND (LAYERNAME LIKE '" + sc.keywords + "%' OR DESCRIPTION LIKE '%" + sc.keywords + "%')"); } oraCMD = new OracleCommand(sql.ToString(), oraRasterConn); try { oraDataReader = oraCMD.ExecuteReader(); } catch { return(null); } if (!oraDataReader.HasRows) { return(null); } RasterLayer RL; while (oraDataReader.Read()) { int fieldCount = oraDataReader.FieldCount; RL = new RasterLayer(); for (int i = 0; i < fieldCount; i++) { string fieldName = oraDataReader.GetName(i).ToString(); if (fieldName.Equals("XMLFILE")) { try { byte[] data = (byte[])oraDataReader["XMLFILE"]; UTF8Encoding enc = new UTF8Encoding(true, true);//如果blob数据原本为utf8编码 RL.XMLFILE = System.Text.Encoding.UTF8.GetString(data); } catch { RL.XMLFILE = ""; } } else { RL = InitRasterData(RL, oraDataReader[fieldName], fieldName); } } RLs.Add(RL); } oraRasterConn.Close(); oraCMD.Dispose(); return(RLs); }
private static RasterLayer InitRasterData(RasterLayer RL, object obj, string fieldName) { try { switch (fieldName) { case "LAYERID": RL.LAYERID = Convert.ToString(obj); break; case "AUTHOR": RL.AUTHOR = Convert.ToString(obj); break; case "BANDCOUNT": RL.BANDCOUNT = Convert.ToInt64(obj); break; case "CREATETIME": RL.CREATETIME = Convert.ToString(obj); break; case "DATATYPE": RL.DATATYPE = Convert.ToString(obj); break; case "DBNAME": RL.DBNAME = Convert.ToString(obj); break; case "DESCRIPTION": RL.DESCRIPTION = Convert.ToString(obj); break; case "HEIGHT": RL.HEIGHT = Convert.ToInt64(obj); break; case "LAYERSIZE": RL.LAYERSIZE = Convert.ToInt64(obj); break; case "ISEXIST": RL.ISEXIST = Convert.ToBoolean(Convert.ToInt32(obj)); break; case "ISVISIBLE": RL.ISVISIBLE = Convert.ToBoolean(Convert.ToInt32(obj)); break; case "LAYERNAME": RL.LAYERNAME = Convert.ToString(obj); break; case "MAPNUM": RL.MAPNUM = Convert.ToString(obj); break; case "MAXX": RL.MAXX = Convert.ToSingle(obj); break; case "MAXY": RL.MAXY = Convert.ToSingle(obj); break; case "MINX": RL.MINX = Convert.ToSingle(obj); break; case "MINY": RL.MINY = Convert.ToSingle(obj); break; case "NODATAVALUE": RL.NODATAVALUE = Convert.ToSingle(obj); break; case "PROJECTION": RL.PROJECTION = Convert.ToString(obj); break; case "RESOLUTION": RL.RESOLUTION = Convert.ToSingle(obj); break; case "SCALE": RL.SCALE = Convert.ToInt64(obj); break; case "URI": RL.URI = Convert.ToString(obj); break; case "WIDTH": RL.WIDTH = Convert.ToInt64(obj); break; case "QUERYGRADER": RL.QUERYGRADER = Convert.ToInt32(obj); break; case "GETGRADER": RL.GETGRADER = Convert.ToInt32(obj); break; case "REGION": RL.REGION = Convert.ToString(obj); break; case "DATAGETDATE": RL.DATAGETDATE = Convert.ToDateTime(obj); break; case "DATAFORMAT": RL.DATAFORMAT = Convert.ToString(obj); break; case "DATASOURCES": RL.DATASOURCES = Convert.ToString(obj); break; default: break; } } catch { errMSG = fieldName + ";"; } return(RL); }
public static int ImportRasterIndex(RasterLayer RL, string xmlfile) { OracleConnection oraRasterConn; OracleCommand oraCMD; oraRasterConn = DBCon.OraConOpen(); //string sql; StringBuilder sql; sql = new StringBuilder("INSERT INTO RASTER_LAYERS(LAYERID,LAYERNAME,DBNAME,URI,MAPNUM,SCALE,PROJECTION,AUTHOR," + "CREATETIME,DATATYPE,DESCRIPTION,BANDCOUNT,MINX,MAXX,MINY,MAXY,HEIGHT,WIDTH,RESOLUTION," + "NODATAVALUE,ISVISIBLE,LAYERSIZE,ISEXIST,QUERYGRADER,GETGRADER,REGION,DATAGETDATE,DATAFORMAT,DATASOURCES"); if (!String.IsNullOrEmpty(xmlfile)) { sql.Append(",XMLFILE "); } sql.Append(") VALUES(sys_guid(),:p1, :p2, :p3, :p4, :p5, :p6, :p7, :p8, :p9, :p10, :p11, :p12, :p13," + " :p14, :p15, :p16, :p17, :p18, :p19, :p20,:p21,:p22,:p23,:p24,:p25,:p26,:p27,:p28"); if (!String.IsNullOrEmpty(xmlfile)) { sql.Append(",:p29"); } sql.Append(")"); oraCMD = new OracleCommand(sql.ToString(), oraRasterConn); oraCMD.Parameters.Add(":p1", RL.LAYERNAME); oraCMD.Parameters.Add(":p2", RL.DBNAME); oraCMD.Parameters.Add(":p3", RL.URI); oraCMD.Parameters.Add(":p4", RL.MAPNUM); oraCMD.Parameters.Add(":p5", RL.SCALE); oraCMD.Parameters.Add(":p6", RL.PROJECTION); oraCMD.Parameters.Add(":p7", RL.AUTHOR); oraCMD.Parameters.Add(":p8", RL.CREATETIME); oraCMD.Parameters.Add(":p9", RL.DATATYPE); oraCMD.Parameters.Add(":p10", RL.DESCRIPTION); oraCMD.Parameters.Add(":p11", RL.BANDCOUNT); oraCMD.Parameters.Add(":p12", RL.MINX); oraCMD.Parameters.Add(":p13", RL.MAXX); oraCMD.Parameters.Add(":p14", RL.MINY); oraCMD.Parameters.Add(":p15", RL.MAXY); oraCMD.Parameters.Add(":p16", RL.HEIGHT); oraCMD.Parameters.Add(":p17", RL.WIDTH); oraCMD.Parameters.Add(":p18", RL.RESOLUTION); oraCMD.Parameters.Add(":p19", RL.NODATAVALUE); oraCMD.Parameters.Add(":p20", Convert.ToInt64(RL.ISVISIBLE)); oraCMD.Parameters.Add(":p21", RL.LAYERSIZE); oraCMD.Parameters.Add(":p22", Convert.ToInt64(RL.ISEXIST)); oraCMD.Parameters.Add(":p23", RL.QUERYGRADER); oraCMD.Parameters.Add(":p24", RL.GETGRADER); oraCMD.Parameters.Add(":p25", RL.REGION); oraCMD.Parameters.Add(":p26", RL.DATAGETDATE); oraCMD.Parameters.Add(":p27", RL.DATAFORMAT); oraCMD.Parameters.Add(":p28", RL.DATASOURCES); if (!String.IsNullOrEmpty(xmlfile)) { oraCMD.Parameters.Add(":p29", OraBlob.WriteBolb(xmlfile)); } int result = oraCMD.ExecuteNonQuery(); oraRasterConn.Close(); oraCMD.Dispose(); return(result); }
public static int ImportRasterIndex(RasterLayer RL) { return(ImportRasterIndex(RL, null)); }