/// <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); }
/// <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); }
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 = ""; } }
/// <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(); } }