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)); }
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)); }