예제 #1
0
        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();
        }
예제 #3
0
        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);
 }
예제 #5
0
        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();
        }
예제 #6
0
 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();
 }