示例#1
0
        /// <summary>
        /// trackBarValueChanged事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void VersionTimeSld_ValueChanged(object sender, EventArgs e)
        {
            try
            {
                DateTime key = this._graphElements.EntityElements.Keys.ElementAt(this.VersionTimeSld.Value);
                List <ClsGraphElement> graphElements = this._graphElements.EntityElements[key];

                this._mapControl.Map.ClearSelection();//清除地图的选择

                IEnvelope env = new EnvelopeClass();
                for (int i = 0; i < graphElements.Count; i++)
                {
                    ClsGraphElement ge = graphElements[i];
                    this._mapControl.Map.SelectFeature(this.GetFeatureLayerByName(this._pFeatlayerList, ge.LayerName), ge.Feature);//将查询到的地物作为选择对象高亮显示在地图上
                    env.Union(ge.Feature.Shape.Envelope);
                }

                //env.Expand(2, 2, true);
                //this._mapControl.Extent = env;

                IPoint pt = new PointClass();
                pt.X = (env.UpperLeft.X + env.LowerRight.X) / 2;
                pt.Y = (env.UpperLeft.Y + env.LowerRight.Y) / 2;
                this._mapControl.CenterAt(pt);
                this._mapControl.ActiveView.Refresh();//刷新地图,这样才能显示出地物
                //显示查询的信息
                this.ShowEntityData(this.EntityCode.Text);
            }
            catch (System.Exception ex)
            {
                //MessageBox.Show(ex.Message);
                MessageBox.Show("请先点击确定!");
            }
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="entityID">实体编码</param>
        /// <param name="pFeatlayerList">MapControl中的图层集</param>
        /// <param name="lyrName">图层名称</param>
        private void GetGraphElementsInLyr(string entityID, List <IFeatureLayer> pFeatlayerList, string lyrName)
        {
            string entityField = ClsConfig.LayerConfigs[lyrName].EntityID;

            IFeatureLayer  featLyr  = this.GetFeatureLayerByName(pFeatlayerList, lyrName);
            IFeatureCursor pCursor  = null;
            IFeature       pFeature = null;
            //查询一个字段(ENTIID)
            IQueryFilter queryFilter = new QueryFilterClass();

            queryFilter.WhereClause = entityField + " = '" + entityID + "'";
            pCursor = featLyr.FeatureClass.Search(queryFilter, false);
            if (pCursor != null)
            {
                pFeature = pCursor.NextFeature();
            }
            while (pFeature != null)
            {
                ClsGraphElement ge = this.GetGraphElement(pFeature, lyrName);
                this._graphElements.Add(ge);
                pFeature = pCursor.NextFeature();
            }
        }
示例#3
0
        /// <summary>
        /// 获取图层元素
        /// </summary>
        /// <param name="pFeature">要素</param>
        /// <param name="lyrName">图层名</param>
        /// <returns></returns>
        private ClsGraphElement GetGraphElement(IFeature pFeature, string lyrName)
        {
            string fromField  = ClsConfig.LayerConfigs[lyrName].StartVersion;
            string endField   = ClsConfig.LayerConfigs[lyrName].EndVersion;
            string sourceName = ClsConfig.LayerConfigs[lyrName].SourceName;
            string sourceType = ClsConfig.LayerConfigs[lyrName].SourceType;
            //声明一个类ClsGraphElement的实例ge
            ClsGraphElement ge          = new ClsGraphElement();
            string          fromVersion = pFeature.get_Value(pFeature.Fields.FindField(fromField)).ToString();
            DateTime        collectTime = this.GetDateTime(fromVersion, sourceName, this._versionTable);
            string          endVersion  = pFeature.get_Value(pFeature.Fields.FindField(endField)).ToString();
            DateTime        endTime     = this.GetDateTime(endVersion, sourceName, this._versionTable);

            //对类的各个字段进行赋值
            ge.VersionTime    = collectTime;
            ge.EndVersionTime = endTime;
            ge.Feature        = pFeature;
            ge.Source         = sourceType;
            ge.LayerName      = lyrName;
            ge.Version        = fromVersion;
            //返回类
            return(ge);
        }