private void button7_Click(object sender, EventArgs e) { if (currentFeatureLayer == null) { MessageBox.Show("当前无加载地图!"); return; } string tbh = dataGridView1.Rows[row].Cells[2].Value.ToString();//获取图斑号 IQueryFilter queryFilter = new QueryFilterClass(); queryFilter.WhereClause = "TBBH = '" + tbh + "'"; IFeatureCursor featurecursor; featurecursor = currentFeatureLayer.FeatureClass.Search(queryFilter, false); IFeature feature = featurecursor.NextFeature(); //定义新的IEnvelope接口对象获取该要素的空间范围 if (feature == null) { MessageBox.Show("无法定位,没有此图斑!"); return; } ESRI.ArcGIS.Geometry.IEnvelope outEnvelope = new ESRI.ArcGIS.Geometry.EnvelopeClass(); //通过IGeometry接口的QueryEnvelope方法获取要素的空间范围 feature.Shape.QueryEnvelope(outEnvelope); //将主窗体地图的当前可视范围定义为要素的空间范围,并刷新地图 IActiveView activeView = currentMap as IActiveView; activeView.Extent = outEnvelope; activeView.Refresh(); }
private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e) { DataGridViewRow row = dataGridView.Rows[e.RowIndex]; //每行的第一列是要素的ObjectID,获取该信息 int objectID = Convert.ToInt32(row.Cells[0].Value); //使用IFeatureClass接口的GetFeature方法根据ObjectID获取该要素 IFeature feature = currentFeatureLayer.FeatureClass.GetFeature(objectID); //定义新的IEnvelope接口对象获取该要素的空间范围 ESRI.ArcGIS.Geometry.IEnvelope outEnvelope = new ESRI.ArcGIS.Geometry.EnvelopeClass(); //通过IGeometry接口的QueryEnvelope方法获取要素的空间范围 feature.Shape.QueryEnvelope(outEnvelope); //将主窗体地图的当前可视范围定义为要素的空间范围,并刷新地图 IActiveView activeView = currentMap as IActiveView; activeView.Extent = outEnvelope; activeView.Refresh(); }
private void btnDownload_Click(object sender, EventArgs e) { if (!checkInputs()) { MessageBox.Show("You must have a value for all inputs"); return; } mapserviceutility msUtil = new mapserviceutility(); geoDatabaseUtility geoUtil = new geoDatabaseUtility(); IImageServerLayer svLyr = getServerLayer(); ESRI.ArcGIS.Geometry.IEnvelope ext = new ESRI.ArcGIS.Geometry.EnvelopeClass(); if (cmbExtent.Text.ToLower() == "display") { ext = av.Extent; } else { IFeatureLayer ftrLyr = getFeatureLayer(); ext = ((ESRI.ArcGIS.Geodatabase.IGeoDataset)ftrLyr).Extent; } if (svLyr == null) { MessageBox.Show("You must select a Image server layer"); return; } this.Visible = false; ESRI.ArcGIS.Geodatabase.IWorkspace wks = geoUtil.OpenWorkSpace(txtGeoDb.Text); ESRI.ArcGIS.Geodatabase.IRaster rs = null; string msg = msUtil.fillDbRaster(svLyr, wks, ext, svLyr.ServiceInfo.SpatialReference, out rs); IMap mp = (IMap)av; if (rs != null) { IRasterLayer rsLyr = new RasterLayerClass(); rsLyr.CreateFromRaster(rs); rsLyr.Name = svLyr.ServiceInfo.Name; rsLyr.Visible = false; mp.AddLayer((ILayer)rsLyr); } this.Close(); //MessageBox.Show(msg); }
private void btnDownload_Click(object sender, EventArgs e) { if (!checkInputs()) { MessageBox.Show("You must have a value for all inputs"); return; } mapserviceutility msUtil = new mapserviceutility(); geoDatabaseUtility geoUtil = new geoDatabaseUtility(); IImageServerLayer svLyr = getServerLayer(); ESRI.ArcGIS.Geometry.IEnvelope ext = new ESRI.ArcGIS.Geometry.EnvelopeClass(); if(cmbExtent.Text.ToLower()=="display") { ext = av.Extent; } else { IFeatureLayer ftrLyr = getFeatureLayer(); ext = ((ESRI.ArcGIS.Geodatabase.IGeoDataset)ftrLyr).Extent; } if(svLyr==null) { MessageBox.Show("You must select a Image server layer"); return; } this.Visible = false; ESRI.ArcGIS.Geodatabase.IWorkspace wks = geoUtil.OpenWorkSpace(txtGeoDb.Text); ESRI.ArcGIS.Geodatabase.IRaster rs = null; string msg = msUtil.fillDbRaster(svLyr,wks,ext,svLyr.ServiceInfo.SpatialReference,out rs); IMap mp = (IMap)av; if (rs != null) { IRasterLayer rsLyr = new RasterLayerClass(); rsLyr.CreateFromRaster(rs); rsLyr.Name = svLyr.ServiceInfo.Name; rsLyr.Visible = false; mp.AddLayer((ILayer)rsLyr); } this.Close(); //MessageBox.Show(msg); }
private void getsnaptext() { string sfile = Application.StartupPath + @"\snap.text"; if (System.IO.File.Exists(sfile)) { string stype = System.IO.File.ReadAllText(sfile); string ck = stype.Split('$')[0]; string type = stype.Split('$')[1]; string[] cktype = type.Split('|'); DevExpress.XtraEditors.CheckButton ckbtn = new DevExpress.XtraEditors.CheckButton(); for (int i = 0; i < panel1.Controls.Count; i++) { try { ckbtn = (DevExpress.XtraEditors.CheckButton)panel1.Controls[i]; for (int j = 0; j < cktype.Length; j++) { if (ckbtn.Tag.ToString().Equals(cktype[j])) { ckbtn.Checked = true; } } } catch { continue; } } if (ck.Equals("true")) { ckBtnOpenBZ.Checked = true; } } try { DataSet ds = new DataSet(); ds.ReadXml(Application.StartupPath + @"\gis.xml"); DataTable dt = ds.Tables[0]; for (int i = 0; i < dt.Rows.Count; i++) { try { string name = dt.Rows[i]["name"].ToString(); string value = dt.Rows[i]["value"].ToString(); string param = dt.Rows[i]["params"].ToString(); if (name.Equals("Scale")) { m_axmap.MapScale = Convert.ToDouble(value); toolLabelBLC.Text = value; } if (name.Equals("ckScale")) { m_axmap.ReferenceScale = Convert.ToDouble(value); if (value.Equals("0")) { cbBoxCKBLC.Text = "无"; } else { cbBoxCKBLC.Text = value; } } if (name.Equals("Rotation")) { m_axmap.Rotation = Convert.ToDouble(value); } if (name.Equals("extent")) { string[] extent = value.Split(','); ESRI.ArcGIS.Geometry.IEnvelope pEnvelop = new ESRI.ArcGIS.Geometry.EnvelopeClass(); pEnvelop.XMax = Convert.ToDouble(extent[0]); pEnvelop.XMin = Convert.ToDouble(extent[1]); pEnvelop.YMax = Convert.ToDouble(extent[2]); pEnvelop.YMin = Convert.ToDouble(extent[3]); m_axmap.Extent = pEnvelop; } if (name.Equals("layer")) { ILayer pLayer = GetLayerByName(m_axmap.Map, value); if (param.ToLower().Equals("true")) { pLayer.Visible = true; } else { pLayer.Visible = false; } } } catch { } } } catch { } m_axmap.Refresh(); }
private void getsnaptext() { string sfile = Application.StartupPath + @"\snap.text"; if (System.IO.File.Exists(sfile)) { string stype = System.IO.File.ReadAllText(sfile); string ck = stype.Split('$')[0]; string type = stype.Split('$')[1]; string[] cktype = type.Split('|'); DevExpress.XtraEditors.CheckButton ckbtn = new DevExpress.XtraEditors.CheckButton(); for (int i = 0; i < panel1.Controls.Count; i++) { try { ckbtn = (DevExpress.XtraEditors.CheckButton)panel1.Controls[i]; for (int j = 0; j < cktype.Length; j++) { if (ckbtn.Tag.ToString().Equals(cktype[j])) { ckbtn.Checked = true; } } } catch { continue; } } if (ck.Equals("true")) ckBtnOpenBZ.Checked = true; } try { DataSet ds = new DataSet(); ds.ReadXml(Application.StartupPath+@"\gis.xml"); DataTable dt = ds.Tables[0]; for (int i = 0; i < dt.Rows.Count; i++) { try { string name = dt.Rows[i]["name"].ToString(); string value = dt.Rows[i]["value"].ToString(); string param=dt.Rows[i]["params"].ToString(); if (name.Equals("Scale")) { m_axmap.MapScale = Convert.ToDouble(value); toolLabelBLC.Text = value; } if (name.Equals("ckScale")) { m_axmap.ReferenceScale = Convert.ToDouble(value); if (value.Equals("0")) cbBoxCKBLC.Text = "无"; else cbBoxCKBLC.Text = value; } if (name.Equals("Rotation")) { m_axmap.Rotation = Convert.ToDouble(value); } if (name.Equals("extent")) { string[] extent = value.Split(','); ESRI.ArcGIS.Geometry.IEnvelope pEnvelop = new ESRI.ArcGIS.Geometry.EnvelopeClass(); pEnvelop.XMax = Convert.ToDouble(extent[0]); pEnvelop.XMin = Convert.ToDouble(extent[1]); pEnvelop.YMax = Convert.ToDouble(extent[2]); pEnvelop.YMin = Convert.ToDouble(extent[3]); m_axmap.Extent = pEnvelop; } if (name.Equals("layer")) { ILayer pLayer = GetLayerByName(m_axmap.Map, value); if (param.ToLower().Equals("true")) pLayer.Visible = true; else pLayer.Visible = false; } } catch { } } } catch { } m_axmap.Refresh(); }