public PolylineRenderForm(IGeometryRender geoRender, object[] fieldNamesItems) { InitializeComponent(); { this.comboBox1.Items.AddRange(fieldNamesItems); this.comboBox1.Text = ""; if (geoRender != null) { int index = Utils.getIndexFromItems(fieldNamesItems, geoRender.RenderGroupField); this.comboBox1.SelectedIndex = index; } } ISimpleGeometryRender render = geoRender as ISimpleGeometryRender; if (render == null || render.Symbol == null) { ICurveSymbol tmpSymbol = new CurveSymbol(); string[] row1 = new string[] { "Color", tmpSymbol.Color.ToString() }; string[] row2 = new string[] { "RepeatLength", tmpSymbol.RepeatLength.ToString() }; string[] row3 = new string[] { "Width", tmpSymbol.Width.ToString() }; object[] rows = new object[] { row1, row2, row3 }; foreach (string[] rowArray in rows) { this.dataGridView2.Rows.Add(rowArray); } this.textBoxPictureName.Text = ""; return; } if (render.Symbol == null) { this.textBoxPictureName.Text = ""; return; } { ICurveSymbol symbol = render.Symbol as ICurveSymbol; string[] row1 = new string[] { "Color", symbol.Color.ToString() }; string[] row2 = new string[] { "RepeatLength", symbol.RepeatLength.ToString() }; string[] row3 = new string[] { "Width", symbol.Width.ToString() }; object[] rows = new object[] { row1, row2, row3 }; foreach (string[] rowArray in rows) { this.dataGridView2.Rows.Add(rowArray); } this.textBoxPicturePath.Text = symbol.ImageName; this.textBoxPictureName.Text = symbol.ImageName; } }
public ModelPointRenderForm(IGeometryRender geoRender, object[] fieldNamesItems) { InitializeComponent(); { this.comboBox1.Items.AddRange(fieldNamesItems); this.comboBox1.Text = ""; if (geoRender != null) { int index = Utils.getIndexFromItems(fieldNamesItems, geoRender.RenderGroupField); this.comboBox1.SelectedIndex = index; } } ISimpleGeometryRender render = geoRender as ISimpleGeometryRender; if (render == null || render.Symbol == null) { IModelPointSymbol tmpSymbol = new ModelPointSymbol(); string[] row1 = new string[] { "Color", tmpSymbol.Color.ToString() }; string[] row2 = new string[] { "EnableColor", tmpSymbol.EnableColor.ToString() }; string[] row3 = new string[] { "EnableTexture ", tmpSymbol.EnableTexture.ToString() }; object[] rows = new object[] { row1, row2, row3 }; foreach (string[] rowArray in rows) { this.dataGridView2.Rows.Add(rowArray); } return; } if (render.Symbol == null) { return; } { IModelPointSymbol symbol = render.Symbol as IModelPointSymbol; string[] row1 = new string[] { "Color", symbol.Color.ToString() }; string[] row2 = new string[] { "EnableColor", symbol.EnableColor.ToString() }; string[] row3 = new string[] { "EnableTexture ", symbol.EnableTexture.ToString() }; object[] rows = new object[] { row1, row2, row3 }; foreach (string[] rowArray in rows) { this.dataGridView2.Rows.Add(rowArray); } } }
public void SetRender(TreeNodeFeatureClass treeNode, DF3DFeatureClass dffc) { if (treeNode == null || dffc == null) { return; } try { IFeatureClass fc = dffc.GetFeatureClass(); if (fc == null) { return; } IFeatureLayer fl = dffc.GetFeatureLayer(); if (fl == null) { return; } string name = string.IsNullOrEmpty(fc.AliasName) ? fc.Name : fc.AliasName; string xmlFileName = renderPath + name + ".xml"; if (File.Exists(xmlFileName)) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(xmlFileName); if (xmlDoc != null) { XmlNode featureLayerNode = xmlDoc.SelectSingleNode("FeatureLayer"); if (featureLayerNode == null) { return; } XmlNode geometryRenderNode = featureLayerNode.SelectSingleNode("GeometryRender"); IGeometryRender geoRender = GetGeoRender(geometryRenderNode); XmlNode textRenderNode = featureLayerNode.SelectSingleNode("TextRender"); ITextRender textRender = GetTextRender(textRenderNode); fl.SetTextRender(textRender); fl.SetGeometryRender(geoRender); treeNode.Visible = false; } } } catch (Exception ex) { } }
private void importGeometryRenderToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog od = new OpenFileDialog(); od.Filter = "XML文件|*.xml"; od.RestoreDirectory = true; if (od.ShowDialog() == DialogResult.OK) { if (File.Exists(od.FileName)) { StreamReader sr = new StreamReader(od.FileName); string xmlstring = sr.ReadToEnd(); sr.Close(); IGeometryRender gr = this.axRenderControl1.ObjectManager.CreateGeometryRenderFromXML(xmlstring); string nodeName = selectNode.Text; myListNode node = selectNode as myListNode; IFeatureLayer layer = node.layer; layer.SetGeometryRender(gr); } } }
// 公共方法 void FeatureLayerVisualize(IConnectionInfo ci, bool needfly, string sourceName, ITextRender textRender, IGeometryRender geoRender) { IDataSourceFactory dsFactory = null; IDataSource ds = null; IFeatureDataSet dataset = null; try { dsFactory = new DataSourceFactory(); ds = dsFactory.OpenDataSource(ci); string[] setnames = (string[])ds.GetFeatureDatasetNames(); if (setnames.Length == 0) { return; } dataset = ds.OpenFeatureDataset(setnames[0]); string[] fcnames = (string[])dataset.GetNamesByType(gviDataSetType.gviDataSetFeatureClassTable); if (fcnames.Length == 0) { return; } fcMap = new Hashtable(fcnames.Length); foreach (string name in fcnames) { IFeatureClass fc = dataset.OpenFeatureClass(name); // 找到空间列字段 List <string> geoNames = new List <string>(); IFieldInfoCollection fieldinfos = fc.GetFields(); for (int i = 0; i < fieldinfos.Count; i++) { IFieldInfo fieldinfo = fieldinfos.Get(i); if (null == fieldinfo) { continue; } IGeometryDef geometryDef = fieldinfo.GeometryDef; if (null == geometryDef) { continue; } geoNames.Add(fieldinfo.Name); } fcMap.Add(fc, geoNames); } // CreateFeautureLayer bool hasfly = !needfly; foreach (IFeatureClass fcInMap in fcMap.Keys) { List <string> geoNames = (List <string>)fcMap[fcInMap]; foreach (string geoName in geoNames) { IFeatureLayer featureLayer = this.axRenderControl1.ObjectManager.CreateFeatureLayer( fcInMap, geoName, textRender, geoRender, rootId); // 设置featureLayer组可见 if (!geoRender.RenderGroupField.Equals("")) { SetGroupVisiable(dataset, featureLayer); } // 添加节点到界面控件上 myListNode item = new myListNode(string.Format("{0}_{1}_{2}", sourceName, fcInMap.Name, featureLayer.MaxVisibleDistance.ToString()), featureLayer); item.Checked = true; listView1.Items.Add(item); layerFcMap.Add(featureLayer, fcInMap); IFieldInfoCollection fieldinfos = fcInMap.GetFields(); IFieldInfo fieldinfo = fieldinfos.Get(fieldinfos.IndexOf(geoName)); IGeometryDef geometryDef = fieldinfo.GeometryDef; IEnvelope env = geometryDef.Envelope; layerEnvelopeMap.Add(featureLayer, env); if (env == null || (env.MaxX == 0.0 && env.MaxY == 0.0 && env.MaxZ == 0.0 && env.MinX == 0.0 && env.MinY == 0.0 && env.MinZ == 0.0)) { continue; } // 相机飞入 if (!hasfly) { angle.Set(0, -20, 0); this.axRenderControl1.Camera.LookAt(env.Center, 1000, angle); } hasfly = true; } } } catch (COMException ex) { System.Diagnostics.Trace.WriteLine(ex.Message); return; } catch (System.Exception e) { System.Diagnostics.Trace.WriteLine(e.Message); return; } finally { if (dsFactory != null) { //Marshal.ReleaseComObject(dsFactory); dsFactory = null; } if (ds != null) { //Marshal.ReleaseComObject(ds); ds = null; } if (dataset != null) { //Marshal.ReleaseComObject(dataset); dataset = null; } //if (fc != null) //{ // //Marshal.ReleaseComObject(fc); // fc = null; //} } }
public PolygonRenderForm(IGeometryRender geoRender, object[] fieldNamesItems) { InitializeComponent(); { this.comboBox1.Items.AddRange(fieldNamesItems); this.comboBox1.Text = ""; if (geoRender != null) { int index = Utils.getIndexFromItems(fieldNamesItems, geoRender.RenderGroupField); this.comboBox1.SelectedIndex = index; } } ISimpleGeometryRender render = geoRender as ISimpleGeometryRender; if (render == null || render.Symbol == null) { ISurfaceSymbol tmpSurfaceSymbol = new SurfaceSymbol(); string[] row1 = new string[] { "Color", tmpSurfaceSymbol.Color.ToString() }; string[] row2 = new string[] { "EnableLight", tmpSurfaceSymbol.EnableLight.ToString() }; string[] row3 = new string[] { "RepeatLengthU", tmpSurfaceSymbol.RepeatLengthU.ToString() }; string[] row4 = new string[] { "RepeatLengthV", tmpSurfaceSymbol.RepeatLengthV.ToString() }; string[] row5 = new string[] { "Rotation", tmpSurfaceSymbol.Rotation.ToString() }; ICurveSymbol tmpCurveSymbol = new CurveSymbol(); string[] row6 = new string[] { "BoundaryColor", tmpCurveSymbol.Color.ToString() }; string[] row7 = new string[] { "RepeatLength", tmpCurveSymbol.RepeatLength.ToString() }; string[] row8 = new string[] { "Width", tmpCurveSymbol.Width.ToString() }; object[] rows = new object[] { row1, row2, row3, row4, row5, row6, row7, row8 }; foreach (string[] rowArray in rows) { this.dataGridView2.Rows.Add(rowArray); } return; } if (render.Symbol == null) { this.textBoxSurfacePictureName.Text = ""; return; } { ISurfaceSymbol surfaceSymbol = render.Symbol as ISurfaceSymbol; ICurveSymbol boundarySymbol = surfaceSymbol.BoundarySymbol as ICurveSymbol; if (boundarySymbol != null) { string[] row1 = new string[] { "Color", surfaceSymbol.Color.ToString() }; string[] row2 = new string[] { "EnableLight", surfaceSymbol.EnableLight.ToString() }; string[] row3 = new string[] { "RepeatLengthU", surfaceSymbol.RepeatLengthU.ToString() }; string[] row4 = new string[] { "RepeatLengthV", surfaceSymbol.RepeatLengthV.ToString() }; string[] row5 = new string[] { "Rotation", surfaceSymbol.Rotation.ToString() }; string[] row6 = new string[] { "BoundaryColor", boundarySymbol.Color.ToString() }; string[] row7 = new string[] { "RepeatLength", boundarySymbol.RepeatLength.ToString() }; string[] row8 = new string[] { "Width", boundarySymbol.Width.ToString() }; object[] rows2 = new object[] { row1, row2, row3, row4, row5, row6, row7, row8 }; foreach (string[] rowArray in rows2) { this.dataGridView2.Rows.Add(rowArray); } this.textBoxCurvePictureName.Text = boundarySymbol.ImageName; this.textBoxCurvePicturePath.Text = boundarySymbol.ImageName; } else { ICurveSymbol boundarySymbolNew = new CurveSymbol(); string[] row1 = new string[] { "Color", surfaceSymbol.Color.ToString() }; string[] row2 = new string[] { "EnableLight", surfaceSymbol.EnableLight.ToString() }; string[] row3 = new string[] { "RepeatLengthU", surfaceSymbol.RepeatLengthU.ToString() }; string[] row4 = new string[] { "RepeatLengthV", surfaceSymbol.RepeatLengthV.ToString() }; string[] row5 = new string[] { "Rotation", surfaceSymbol.Rotation.ToString() }; string[] row6 = new string[] { "BoundaryColor", boundarySymbolNew.Color.ToString() }; string[] row7 = new string[] { "RepeatLength", boundarySymbolNew.RepeatLength.ToString() }; string[] row8 = new string[] { "Width", boundarySymbolNew.Width.ToString() }; object[] rows2 = new object[] { row1, row2, row3, row4, row5, row6, row7, row8 }; foreach (string[] rowArray in rows2) { this.dataGridView2.Rows.Add(rowArray); } this.textBoxCurvePictureName.Text = ""; this.textBoxCurvePicturePath.Text = ""; } this.textBoxSurfacePictureName.Text = surfaceSymbol.ImageName; this.textBoxSurfacePicturePath.Text = surfaceSymbol.ImageName; } }
public PointRenderForm(IGeometryRender geoRender, object[] fieldNamesItems, bool isSimplePoint) { InitializeComponent(); IsSimplePoint = isSimplePoint; { this.comboBox1.Items.AddRange(fieldNamesItems); this.comboBox1.Text = ""; if (geoRender != null) { int index = Utils.getIndexFromItems(fieldNamesItems, geoRender.RenderGroupField); this.comboBox1.SelectedIndex = index; } } ISimpleGeometryRender render = geoRender as ISimpleGeometryRender; if (render == null) { if (isSimplePoint) { this.dataGridView1.Enabled = true; this.checkBox1.Enabled = false; this.textBoxPictureName.Enabled = false; this.textBoxPicturePath.Enabled = false; ISimplePointSymbol tmpSymbol = new SimplePointSymbol(); string[] row1 = new string[] { "Alignment", tmpSymbol.Alignment.ToString() }; string[] row2 = new string[] { "Size", tmpSymbol.Size.ToString() }; object[] rows = new object[] { row1, row2 }; foreach (string[] rowArray in rows) { this.dataGridView2.Rows.Add(rowArray); } string[] row11 = new string[] { "FillColor", tmpSymbol.FillColor.ToString() }; string[] row12 = new string[] { "Style", tmpSymbol.Style.ToString() }; object[] rows2 = new object[] { row11, row12 }; foreach (string[] rowArray in rows2) { this.dataGridView1.Rows.Add(rowArray); } return; } else { this.dataGridView1.Enabled = false; this.checkBox1.Enabled = true; this.textBoxPictureName.Enabled = true; IImagePointSymbol tmpSymbol = new ImagePointSymbol(); string[] row1 = new string[] { "Alignment", tmpSymbol.Alignment.ToString() }; string[] row2 = new string[] { "Size", tmpSymbol.Size.ToString() }; object[] rows = new object[] { row1, row2 }; foreach (string[] rowArray in rows) { this.dataGridView2.Rows.Add(rowArray); } this.textBoxPictureName.Text = ""; return; } } if (render.Symbol == null) { return; } if (isSimplePoint) { this.dataGridView1.Enabled = true; this.checkBox1.Enabled = false; this.textBoxPictureName.Enabled = false; this.textBoxPicturePath.Enabled = false; ISimplePointSymbol symbol = render.Symbol as ISimplePointSymbol; if (symbol != null) { string[] row1 = new string[] { "Alignment", symbol.Alignment.ToString() }; string[] row2 = new string[] { "Size", symbol.Size.ToString() }; object[] rows = new object[] { row1, row2 }; foreach (string[] rowArray in rows) { this.dataGridView2.Rows.Add(rowArray); } string[] row11 = new string[] { "FillColor", symbol.FillColor.ToString() }; string[] row12 = new string[] { "Style", symbol.Style.ToString() }; object[] rows2 = new object[] { row11, row12 }; foreach (string[] rowArray in rows2) { this.dataGridView1.Rows.Add(rowArray); } } else { ISimplePointSymbol tmpSymbol = new SimplePointSymbol(); string[] row1 = new string[] { "Alignment", tmpSymbol.Alignment.ToString() }; string[] row2 = new string[] { "Size", tmpSymbol.Size.ToString() }; object[] rows = new object[] { row1, row2 }; foreach (string[] rowArray in rows) { this.dataGridView2.Rows.Add(rowArray); } string[] row11 = new string[] { "FillColor", tmpSymbol.FillColor.ToString() }; string[] row12 = new string[] { "Style", tmpSymbol.Style.ToString() }; object[] rows2 = new object[] { row11, row12 }; foreach (string[] rowArray in rows2) { this.dataGridView1.Rows.Add(rowArray); } } } else { this.dataGridView1.Enabled = false; this.checkBox1.Enabled = true; this.textBoxPictureName.Enabled = true; IImagePointSymbol symbol = render.Symbol as IImagePointSymbol; if (symbol != null) { string[] row1 = new string[] { "Alignment", symbol.Alignment.ToString() }; string[] row2 = new string[] { "Size", symbol.Size.ToString() }; object[] rows = new object[] { row1, row2 }; foreach (string[] rowArray in rows) { this.dataGridView2.Rows.Add(rowArray); } this.textBoxPicturePath.Text = symbol.ImageName; this.textBoxPictureName.Text = symbol.ImageName; } else { IImagePointSymbol tmpSymbol = new ImagePointSymbol(); string[] row1 = new string[] { "Alignment", tmpSymbol.Alignment.ToString() }; string[] row2 = new string[] { "Size", tmpSymbol.Size.ToString() }; object[] rows = new object[] { row1, row2 }; foreach (string[] rowArray in rows) { this.dataGridView2.Rows.Add(rowArray); } this.textBoxPictureName.Text = ""; } } }
// 公共方法 void FeatureLayerVisualize(IConnectionInfo ci, bool needfly, string fcNameNeedMap, ITextRender textRender, IGeometryRender geoRender) { IDataSourceFactory dsFactory = null; IDataSource ds = null; IFeatureDataSet dataset = null; try { dsFactory = new DataSourceFactory(); ds = dsFactory.OpenDataSource(ci); string[] setnames = (string[])ds.GetFeatureDatasetNames(); if (setnames.Length == 0) { return; } dataset = ds.OpenFeatureDataset(setnames[0]); string[] fcnames = (string[])dataset.GetNamesByType(gviDataSetType.gviDataSetFeatureClassTable); if (fcnames.Length == 0) { return; } fcMap = new Hashtable(fcnames.Length); foreach (string name in fcnames) { IFeatureClass fc = dataset.OpenFeatureClass(name); // 找到空间列字段 List <string> geoNames = new List <string>(); IFieldInfoCollection fieldinfos = fc.GetFields(); for (int i = 0; i < fieldinfos.Count; i++) { IFieldInfo fieldinfo = fieldinfos.Get(i); if (null == fieldinfo) { continue; } IGeometryDef geometryDef = fieldinfo.GeometryDef; if (null == geometryDef) { continue; } geoNames.Add(fieldinfo.Name); } fcMap.Add(fc, geoNames); } // CreateFeautureLayer bool hasfly = !needfly; foreach (IFeatureClass fcInMap in fcMap.Keys) { List <string> geoNames = (List <string>)fcMap[fcInMap]; foreach (string geoName in geoNames) { if (fcInMap.Name.Equals(fcNameNeedMap)) { this.axRenderControl1.ObjectManager.CreateFeatureLayer(fcInMap, geoName, textRender, geoRender, rootId); } else { this.axRenderControl1.ObjectManager.CreateFeatureLayer(fcInMap, geoName, null, null, rootId); } IFieldInfoCollection fieldinfos = fcInMap.GetFields(); IFieldInfo fieldinfo = fieldinfos.Get(fieldinfos.IndexOf(geoName)); IGeometryDef geometryDef = fieldinfo.GeometryDef; IEnvelope env = geometryDef.Envelope; if (env == null || (env.MaxX == 0.0 && env.MaxY == 0.0 && env.MaxZ == 0.0 && env.MinX == 0.0 && env.MinY == 0.0 && env.MinZ == 0.0)) { continue; } // 相机飞入 if (!hasfly) { IVector3 pos = new Vector3(); pos.Set(env.Center.X, env.Center.Y, env.Center.Z); IEulerAngle ang = new EulerAngle(); ang.Set(0, -20, 0); this.axRenderControl1.Camera.LookAt(pos, 600, ang); } hasfly = true; } } } catch (COMException ex) { System.Diagnostics.Trace.WriteLine(ex.Message); return; } catch (System.Exception e) { System.Diagnostics.Trace.WriteLine(e.Message); return; } finally { if (dsFactory != null) { //Marshal.ReleaseComObject(dsFactory); dsFactory = null; } if (ds != null) { //Marshal.ReleaseComObject(ds); ds = null; } if (dataset != null) { //Marshal.ReleaseComObject(dataset); dataset = null; } } }
private IGeometryRender GetGeoRender(XmlNode node) { if (node == null) { return(null); } IGeometryRender result = null; double heightOffset = 0.0; string value = node.Attributes["HeightStyle"].Value; object obj = node.Attributes["HeightOffset"]; if (obj != null) { heightOffset = double.Parse(node.Attributes["HeightOffset"].Value); } string value2 = node.Attributes["GroupField"].Value; string value3 = node.Attributes["RenderType"].Value; if (value3 == gviRenderType.gviRenderSimple.ToString()) { ISimpleGeometryRender simpleGeometryRender = new SimpleGeometryRenderClass(); XmlNode xmlNode = node.SelectSingleNode("GeometrySymbol"); if (xmlNode != null) { string value4 = xmlNode.Attributes["GeometryType"].Value; simpleGeometryRender.Symbol = this.GetGeometrySymbol(value4, xmlNode); } if (value == gviHeightStyle.gviHeightAbsolute.ToString()) { simpleGeometryRender.HeightStyle = gviHeightStyle.gviHeightAbsolute; } else { simpleGeometryRender.HeightStyle = gviHeightStyle.gviHeightOnTerrain; } simpleGeometryRender.HeightOffset = heightOffset; simpleGeometryRender.RenderGroupField = value2; result = simpleGeometryRender; } else { XmlNodeList xmlNodeList = node.SelectNodes("ValueMap/RenderScheme"); if (xmlNodeList != null && xmlNodeList.Count > 0) { IValueMapGeometryRender valueMapGeometryRender = new ValueMapGeometryRenderClass(); foreach (XmlNode xmlNode2 in xmlNodeList) { IGeometryRenderScheme geometryRenderScheme = new GeometryRenderSchemeClass(); XmlNode xmlNode3 = xmlNode2.SelectSingleNode("RenderRule"); if (xmlNode3 != null) { string value5 = xmlNode3.Attributes["RuleType"].Value; string value6 = xmlNode3.Attributes["LookUpField"].Value; if (value5 == gviRenderRuleType.gviRenderRuleUniqueValues.ToString()) { IUniqueValuesRenderRule uniqueValuesRenderRule = new UniqueValuesRenderRuleClass(); uniqueValuesRenderRule.LookUpField = value6; if (xmlNode3.Attributes["UniqueValue"] != null) { string value7 = xmlNode3.Attributes["UniqueValue"].Value; uniqueValuesRenderRule.AddValue(value7); } geometryRenderScheme.AddRule(uniqueValuesRenderRule); } else { IRangeRenderRule rangeRenderRule = new RangeRenderRuleClass(); string value8 = xmlNode3.Attributes["IncludeMax"].Value; string value9 = xmlNode3.Attributes["IncludeMin"].Value; string value10 = xmlNode3.Attributes["MaxValue"].Value; string value11 = xmlNode3.Attributes["MinValue"].Value; rangeRenderRule.LookUpField = value6; rangeRenderRule.IncludeMax = (value8.ToLower() == "true"); rangeRenderRule.IncludeMin = (value9.ToLower() == "true"); rangeRenderRule.MaxValue = double.Parse(value10); rangeRenderRule.MinValue = double.Parse(value11); geometryRenderScheme.AddRule(rangeRenderRule); } } XmlNode xmlNode4 = xmlNode2.SelectSingleNode("GeometrySymbol"); if (xmlNode4 != null) { string value12 = xmlNode4.Attributes["GeometryType"].Value; IGeometrySymbol geometrySymbol = this.GetGeometrySymbol(value12, xmlNode4); geometryRenderScheme.Symbol = geometrySymbol; } if (value == gviHeightStyle.gviHeightAbsolute.ToString()) { valueMapGeometryRender.HeightStyle = gviHeightStyle.gviHeightAbsolute; } else { valueMapGeometryRender.HeightStyle = gviHeightStyle.gviHeightOnTerrain; } valueMapGeometryRender.HeightOffset = heightOffset; valueMapGeometryRender.RenderGroupField = value2; valueMapGeometryRender.AddScheme(geometryRenderScheme); } result = valueMapGeometryRender; } } return(result); }
private void btnApply_Click(object sender, System.EventArgs e) { string script = this.txtScript.Text.Trim(); if (script != "") { IGeometryRender render = selectedLayer.GetGeometryRender(); if (render != null) { if (render.RenderType == gviRenderType.gviRenderSimple) { ISimpleGeometryRender simpleRender = render as ISimpleGeometryRender; IGeometrySymbol geoSymbol = simpleRender.Symbol; geoSymbol.Script = script; simpleRender.Symbol = geoSymbol; if (!selectedLayer.SetGeometryRender(simpleRender)) { MessageBox.Show("错误码为:" + this.axRenderControl1.GetLastError()); } } } else { ISimpleGeometryRender simpleRender = new SimpleGeometryRender(); switch (type) { case LayerType.ModelPoint: { IModelPointSymbol mps = new ModelPointSymbol(); mps.Script = script; simpleRender.Symbol = mps; } break; case LayerType.Polyline: { ICurveSymbol cs = new CurveSymbol(); cs.Script = script; simpleRender.Symbol = cs; } break; case LayerType.Point: { if (script.Contains("<ImageName>")) { IImagePointSymbol ips = new ImagePointSymbol(); ips.Script = script; simpleRender.Symbol = ips; } else { ISimplePointSymbol sps = new SimplePointSymbol(); sps.Script = script; simpleRender.Symbol = sps; } } break; case LayerType.Polygon: { if (script.Contains("<Height>")) { IPolygon3DSymbol p3s = new Polygon3DSymbol(); p3s.Script = script; simpleRender.Symbol = p3s; } else { ISurfaceSymbol ss = new SurfaceSymbol(); ss.Script = script; simpleRender.Symbol = ss; } } break; } if (!selectedLayer.SetGeometryRender(simpleRender)) { MessageBox.Show("错误码为:" + this.axRenderControl1.GetLastError()); } } } else { selectedLayer.SetGeometryRender(null); } }
private void listView1_MouseDown(object sender, MouseEventArgs e) { myListNode item = (myListNode)this.listView1.GetItemAt(e.X, e.Y); if (item == null) { return; } cbCOMProperties.Items.Clear(); selectedLayer = item.layer; IGeometryRender render = selectedLayer.GetGeometryRender(); if (render != null) { if (render.RenderType == gviRenderType.gviRenderSimple) { IGeometrySymbol geoSymbol = (render as ISimpleGeometryRender).Symbol; txtScript.Text = geoSymbol.Script; switch (geoSymbol.SymbolType) { case gviGeometrySymbolType.gviGeoSymbolPoint: { cbCOMProperties.Items.Add("Size"); cbCOMProperties.Items.Add("FillColor"); } break; case gviGeometrySymbolType.gviGeoSymbolModelPoint: { cbCOMProperties.Items.Add("Color"); } break; case gviGeometrySymbolType.gviGeoSymbolImagePoint: { cbCOMProperties.Items.Add("Size"); cbCOMProperties.Items.Add("ImageName"); } break; case gviGeometrySymbolType.gviGeoSymbolCurve: { cbCOMProperties.Items.Add("Color"); cbCOMProperties.Items.Add("ImageName"); cbCOMProperties.Items.Add("RepeatLength"); cbCOMProperties.Items.Add("Width"); } break; case gviGeometrySymbolType.gviGeoSymbolSurface: { cbCOMProperties.Items.Add("Color"); } break; case gviGeometrySymbolType.gviGeoSymbol3DPolygon: { cbCOMProperties.Items.Add("Color"); cbCOMProperties.Items.Add("Height"); } break; } } } else { switch (item.type) { case LayerType.ModelPoint: { cbCOMProperties.Items.Add("Color"); } break; case LayerType.Polyline: { cbCOMProperties.Items.Add("Color"); cbCOMProperties.Items.Add("ImageName"); cbCOMProperties.Items.Add("RepeatLength"); cbCOMProperties.Items.Add("Width"); } break; case LayerType.Point: { cbCOMProperties.Items.Add("Size"); cbCOMProperties.Items.Add("FillColor"); cbCOMProperties.Items.Add("ImageName"); } break; case LayerType.Polygon: { cbCOMProperties.Items.Add("Color"); cbCOMProperties.Items.Add("Height"); } break; } } cbFields.Items.Clear(); IFeatureClass fc = null; try { foreach (System.Guid guid in fcGuidMap.Keys) { if (guid.Equals(selectedLayer.FeatureClassId)) { fc = fcGuidMap[guid] as IFeatureClass; } } IFieldInfoCollection fields = fc.GetFields(); for (int i = 0; i < fields.Count; i++) { IFieldInfo field = fields.Get(i); if (field.FieldType == gviFieldType.gviFieldGeometry || field.FieldType == gviFieldType.gviFieldBlob) { continue; } cbFields.Items.Add(field.Name); } } catch (System.Exception ex) { } type = item.type; }