public bool AddProjectLayer(ResTBPostGISLayer resTBPostGISLayer, bool visible = true)
        {
            if (!MapControlTools.Layers.Where(m => m.Name == resTBPostGISLayer.Name).Any())
            {
                Type t = resTBPostGISLayer.GetType();

                // Handle the damage potential differently
                if (resTBPostGISLayer.GetType() == typeof(ResTBDamagePotentialLayer))
                {
                    return(AddProjectLayer((ResTBDamagePotentialLayer)resTBPostGISLayer, visible));
                }
                if (resTBPostGISLayer.GetType() == typeof(ResTBRiskMapLayer))
                {
                    return(AddProjectLayer((ResTBRiskMapLayer)resTBPostGISLayer, visible));
                }

                var layer = ds.RunQuery(resTBPostGISLayer.SQL);
                if (layer == null)
                {
                    Events.MapControl_Error error = new Events.MapControl_Error()
                    {
                        ErrorCode = Events.ErrorCodes.FailedToRunSQLQuery, InMethod = "AddPostGISLayer", AxMapError = ds.GdalLastErrorMsg
                    };
                    On_Error(error);
                    return(false);
                }
                else
                {
                    int handle = AxMap.AddLayer(layer, visible);

                    if (handle == -1)
                    {
                        Events.MapControl_Error error = new Events.MapControl_Error()
                        {
                            ErrorCode = Events.ErrorCodes.CouldNotLoadLayer, InMethod = "AddPostGISLayer", AxMapError = AxMap.FileManager.get_ErrorMsg(AxMap.FileManager.LastErrorCode)
                        };
                        On_Error(error);


                        return(false);
                    }
                    else
                    {
                        resTBPostGISLayer.Handle = handle;

                        resTBPostGISLayer.ApplyStyle(AxMap);

                        MapControlTools.Layers.Add(resTBPostGISLayer);
                        Events.MapControl_LayerChange layerchange = new Events.MapControl_LayerChange()
                        {
                            LayerChangeReason = Events.LayerChangeReason.AddLayer, Layer = resTBPostGISLayer
                        };
                        On_LayerChange(layerchange);
                    }

                    return(true);
                }
            }
            return(false);
        }
        public bool AddProjectLayer(int Project, ResTBPostGISType resTBPostGISType)
        {
            ResTBPostGISLayer resTBPostGISLayer = new ResTBPostGISLayer();
            bool visibleAtStartup = false;

            switch (resTBPostGISType)
            {
            case ResTBPostGISType.Perimeter:
                resTBPostGISLayer = new ResTBPerimeterLayer(Project);
                visibleAtStartup  = true;
                break;

            case ResTBPostGISType.MitigationMeasure:
                resTBPostGISLayer = new ResTBMitigationMeasureLayer(Project);
                break;

            case ResTBPostGISType.DamagePotential:
                resTBPostGISLayer = new ResTBDamagePotentialLayer(Project);
                break;

            case ResTBPostGISType.ResilienceBefore:
                resTBPostGISLayer = new ResTBResilienceLayer(Project, true);
                break;

            case ResTBPostGISType.ResilienceAfter:
                resTBPostGISLayer = new ResTBResilienceLayer(Project, false);
                break;

            case ResTBPostGISType.RiskMap:
                resTBPostGISLayer = new ResTBRiskMapLayer(Project);
                break;

            case ResTBPostGISType.RiskMapAfter:
                resTBPostGISLayer = new ResTBRiskMapLayer(Project, false);
                break;
            }

            return(AddProjectLayer(resTBPostGISLayer, visibleAtStartup));
        }
Esempio n. 3
0
        private bool ExportProjectLayer(ResTBPostGISLayer projectLayer)
        {
            if (projectLayer == null)
            {
                return(true);
            }
            DBConnectionTool db = new DBConnectionTool(this.AxMap, this.MapControlTools);

            string outputFilename = localDirectory + "\\ExportMap\\" + projectLayer.ExportImportFileName + ".shp";
            string inputFilename  = db.GetGdalConnectionString();

            if (projectLayer.GetType() == typeof(ResTBDamagePotentialLayer))
            {
                if (!RunGdalTranslate(inputFilename, localDirectory + "\\ExportMap\\" + projectLayer.ExportImportFileName + "_Points.shp", "ESRI Shapefile", "select \"ID\", \"FreeFillParameter_ID\", \"Objectparameter_ID\", \"Project_Id\", point from \"MappedObject\" where point is not null and \"Project_Id\" = " + projectLayer.Project))
                {
                    return(false);
                }
                if (!RunGdalTranslate(inputFilename, localDirectory + "\\ExportMap\\" + projectLayer.ExportImportFileName + "_Lines.shp", "ESRI Shapefile", "select \"ID\", \"FreeFillParameter_ID\", \"Objectparameter_ID\", \"Project_Id\", line from \"MappedObject\" where line is not null and \"Project_Id\" = " + projectLayer.Project))
                {
                    return(false);
                }
                if (!RunGdalTranslate(inputFilename, localDirectory + "\\ExportMap\\" + projectLayer.ExportImportFileName + "_Polygones.shp", "ESRI Shapefile", "select \"ID\", \"FreeFillParameter_ID\", \"Objectparameter_ID\", \"Project_Id\", polygon from \"MappedObject\" where polygon is not null and \"Project_Id\" = " + projectLayer.Project))
                {
                    return(false);
                }
                return(true);
            }
            else if (projectLayer.GetType() == typeof(ResTBHazardMapLayer))
            {
                if (!RunGdalTranslate(inputFilename, localDirectory + "\\ExportMap\\" + projectLayer.ExportImportFileName + ".shp", "ESRI Shapefile", "select * from \"HazardMap\" where \"Project_Id\" =" + projectLayer.Project))
                {
                    return(false);
                }
                return(true);
            }
            return(RunGdalTranslate(inputFilename, outputFilename, "ESRI Shapefile", projectLayer.SQL));
        }
 public bool AddProjectLayer(ResTBPostGISLayer resTBPostGISLayer)
 {
     return(AddLayersTool.AddProjectLayer(resTBPostGISLayer));
 }