Exemple #1
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);
        }
 /// <summary>
 /// 添加图层到mapcontrol当中
 /// </summary>
 /// <param name="fileNames"></param>
 private void AddFileToMapControl(string [] fileNames)
 {
     foreach (var fileName in fileNames)
     {
         try
         {
             ILayer layer     = null;
             string extension = System.IO.Path.GetExtension(fileName);
             if (extension == ".shp")
             {
                 layer = ShapeSimpleHelper.OpenFile(fileName);
             }
             else if (extension == ".tif")
             {
                 layer = RasterSimpleHelper.OpenRasterFile(fileName);
             }
             MainFrom.m_mapControl.AddLayer(layer);
         }
         catch (Exception e)
         {
             Debug.Print(e.Message);
         }
     }
 }