Exemplo n.º 1
0
        /// <summary>
        /// Saves the 3 basic files: .shp, .dbf and .idx
        /// </summary>
        /// <param name="shapefileInfo"></param>
        /// <param name="region"></param>
        /// <param name="shapefileERMTType"></param>
        private String SaveShapefiles(FileInfo shapefileInfo, Region region, ShapeFileERMTType shapefileERMTType = ShapeFileERMTType.Map)
        {
            try
            {
                //check if we need to create the index file for the .shp
                MapHelper.CheckIndexFile(shapefileInfo);

                FileInfo indexFileInfo = new FileInfo(shapefileInfo.FullName.Replace(".shp", ".idx"));
                FileInfo dbfFileInfo   = new FileInfo(shapefileInfo.FullName.Replace(".shp", ".dbf"));
                FileInfo shxFileInfo   = new FileInfo(shapefileInfo.FullName.Replace(".shp", ".shx"));

                //now, copy files to the server.
                string shapefileName = DocumentHelper.SaveShapefile(shapefileInfo, region, shapefileERMTType);

                DocumentHelper.SaveShapefile(dbfFileInfo, region, shapefileERMTType);

                //DocumentHelper.SaveShapefile(indexFileInfo, newRegion);

                DocumentHelper.SaveShapefile(shxFileInfo, region, shapefileERMTType);

                return(region.RegionLevel + "\\" + shapefileName);
            }
            catch (Exception ex)
            {
                LogHelper.LogError(ex);
                throw;
            }
        }
Exemplo n.º 2
0
        public static String SaveShapefile(FileInfo doc, Region region, ShapeFileERMTType shapeFileERMTType)
        {
            byte[]   fileContent = File.ReadAllBytes(doc.FullName);
            Document document    = new Document
            {
                Content      = Convert.ToBase64String(fileContent),
                Filename     = doc.Name,
                DocumentType = ERMTDocumentType.Shapefile
            };
            String fileName = GetService().SaveShapeFileToServer(document, region, shapeFileERMTType);

            string shapefileDirectory = DirectoryAndFileHelper.ClientShapefilesFolder + "\\" + region.RegionLevel + "\\";

            if (!Directory.Exists(shapefileDirectory))
            {
                Directory.CreateDirectory(shapefileDirectory);
            }

            File.Copy(doc.FullName, shapefileDirectory + fileName, true);

            return(fileName);
        }
Exemplo n.º 3
0
        private void tsmiEditRegionAddRoadsAndPOI_Click(object sender, EventArgs e)
        {
            ShapeFileERMTType shapeFileERMTType = ((ToolStripMenuItem)sender).Name == "tsmiEditRegionAddRoads"
                ? ShapeFileERMTType.Path
                : ShapeFileERMTType.POI;
            OpenFileDialog openFileDialog = new OpenFileDialog {
                Filter = "Shape Files (*.shp)|*.shp"
            };
            DialogResult result = openFileDialog.ShowDialog();

            if (result == DialogResult.OK)
            {
                FileInfo shapeFileInfo = new FileInfo(openFileDialog.FileName);
                try
                {
                    if (!File.Exists(shapeFileInfo.ToString().Replace(".shp", ".dbf")) || !File.Exists(shapeFileInfo.ToString().Replace(".shp", ".shx")))
                    {
                        //if there's no DBF / SHX file, can't use this .shp.
                        //http://thinkgeo.com/forums/MapSuite/tabid/143/aft/2947/Default.aspx
                        //1) In real life, how those files (.shp .shx .dbf) are generated ?
                        //1. These files are automatically created upon creation of a shapefile, using the CreateShapeFile method of Map Suite or another shapefile creation application. These three files are required for a shapefile to function as dictated by ESRI shapefile standard.
                        CustomMessageBox.ShowMessage(ResourceHelper.GetResourceText("EditRegionShapeFileMissingFiles"));
                        return;
                    }
                    else
                    {
                        Region selectedRegion = (Region)_selectedNode.Tag;
                        if (selectedRegion != null)
                        {
                            String newRegionFileName = SaveShapefiles(shapeFileInfo, selectedRegion, shapeFileERMTType);
                            switch (shapeFileERMTType)
                            {
                            case ShapeFileERMTType.Path:
                            {
                                selectedRegion.PathFileName = newRegionFileName;
                                break;
                            }

                            case ShapeFileERMTType.POI:
                            {
                                selectedRegion.POIFileName = newRegionFileName;
                                break;
                            }
                            }

                            RegionHelper.Save(selectedRegion);
                            CustomMessageBox.ShowMessage(shapeFileERMTType == ShapeFileERMTType.Path
                                ? ResourceHelper.GetResourceText("PathSuccessfullySaved")
                                : ResourceHelper.GetResourceText("POISuccessfullySaved"));
                        }
                    }
                }
                catch (Exception ex)
                {
                    //Shape was not valid
                }
                finally
                {
                }
            }
        }