Esempio n. 1
0
        /// <summary>
        ///  处理空间统计
        /// </summary>
        /// <param name="mapControl"></param>
        /// <param name="pGeometry"></param>
        /// <param name="layerName"></param>
        public void DealFeatureQuery(AxMapControl mapControl, IGeometry pGeometry, string queryStr, string layerName)
        {
            IGroupLayer gLayer = null;

            if (string.IsNullOrEmpty(layerName))
            {
                return;
            }
            int           gIndex;
            int           layerIndex;
            IFeatureLayer pFeatureLayer = LayerUtil.QueryLayerInMap(mapControl, layerName, ref gLayer, out layerIndex, out gIndex) as IFeatureLayer;

            if (pFeatureLayer == null)
            {
                return;
            }
            IQueryFilter   queryFilter    = null;
            IFeatureCursor pFeatureCursor = null;

            if (string.IsNullOrEmpty(queryStr))
            {
                pFeatureCursor = FeatureDealUtil.QueryFeatureInLayer(pFeatureLayer, pGeometry, ref queryFilter);
            }
            else
            {
                pFeatureCursor = FeatureDealUtil.QueryFeatureInLayer(pFeatureLayer, queryStr, ref queryFilter);
            }
            IList <IFeature> features = FlashFeatureShape(mapControl, pFeatureLayer, pFeatureCursor);

            ShowFeatureDetail(pFeatureLayer, features, queryFilter);
        }
Esempio n. 2
0
        /// <summary>
        /// 对公路网图层进行处理 线程安全
        /// 如果有则将其提取到第一个位置
        /// 如果没有直接加载
        /// </summary>
        /// <param name="mapControl"></param>
        public ILayer DealRoutenetLayer(AxMapControl mapControl)
        {
            IGroupLayer myGroupLayer = null;
            int         gIndex;
            int         layerIndex;
            ILayer      routeNetLayer = LayerUtil.QueryLayerInMap(mapControl, "公路网", ref myGroupLayer, out layerIndex, out gIndex);

            //如果公路网的数据没有加载,则直接加载
            if (routeNetLayer == null)
            {
                routeNetLayer = ShapeSimpleHelper.OpenFile(Common.RouteNetFeaturePath);
                RouteLayerUtil.SetRouteLayerStyle(routeNetLayer);
                mapControl.AddLayer(routeNetLayer);
            }
            //否则 保证在第一个位置 也就是图层最上面
            if (gIndex < 1 && layerIndex == 0)
            {
                routeNetLayer.Visible = true;
            }
            else
            {
                if (myGroupLayer != null)
                {
                    myGroupLayer.Delete(routeNetLayer);
                }
                else
                {
                    mapControl.Map.DeleteLayer(routeNetLayer);
                }
                mapControl.AddLayer(routeNetLayer);
            }
            return(routeNetLayer);
        }
Esempio n. 3
0
        public void ClearRouteAnalyst(AxMapControl mapControl)
        {
            //清除所有图标
            SymbolUtil.ClearElement(mapControl);
            stopPoints.Clear();
            barryPoints.Clear();
            barryElements.Clear();
            stopElements.Clear();
            //清除网络分析图层
            for (int i = 0; i < mapControl.LayerCount; i++)
            {
                ILayer        layer        = mapControl.get_Layer(i);
                INetworkLayer networkLayer = layer as INetworkLayer;
                INALayer      naLayer      = layer as INALayer;
                if (networkLayer != null || naLayer != null)
                {
                    mapControl.DeleteLayer(i);
                }
            }
            //清除网络数据集
            ILayer datalayer = LayerUtil.QueryLayerInMap(mapControl, "网络数据集");

            if (datalayer != null)
            {
                mapControl.Map.DeleteLayer(datalayer);
            }
            IActiveView pActiveView = mapControl.ActiveView;

            pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
            mapControl.Refresh();
        }
 private void layerCombobox_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (layerCombobox.SelectedIndex > -1)
     {
         IGroupLayer gLayer = null;
         int         layerIndex;
         int         gIndex;
         selectLayer             = LayerUtil.QueryLayerInMap(mapControl, layerCombobox.Text, ref gLayer, out layerIndex, out gIndex);
         this.labelControl2.Text = "select * from " + selectLayer.Name + " where ";
         UpdateFieldBox(selectLayer);
         this.queryTxtBox.Text = "";
     }
 }
Esempio n. 5
0
        /// <summary>
        /// 设置初始化的公路网样式 似乎加入地图的图层就不能再设置样式了
        /// </summary>
        private void SetInitialRouteNetLayerStyle()
        {
            IGroupLayer myGroupLayer = null;
            int         gIndex;
            int         layerIndex;
            ILayer      routeNetLayer = LayerUtil.QueryLayerInMap(this.axMapControl1, "公路网", ref myGroupLayer, out layerIndex, out gIndex);

            //从配置文件中设置公路网样式
            if (routeNetLayer != null)
            {
                RouteLayerUtil.SetRouteLayerStyle(routeNetLayer);
                this.axMapControl1.Refresh();
            }
        }