public void TransferMapDataWithinExtents_Test(string subDirectory, string mapDocumentFilename, string dataframeName, string outputShapefileDirectory) { string temp = System.IO.Path.Combine(_dataDirectory, subDirectory); string mapDoc = System.IO.Path.Combine(temp, mapDocumentFilename); IMapDocument mapDocument = new MapDocumentClass(); mapDocument.Open(mapDoc, null); IMap map = GeodatabaseUtil.GetMap(mapDocument, dataframeName); List <IFeatureLayer> layers = GeodatabaseUtil.GetFeatureLayers(map); IDataset dataset = (IDataset)layers[0].FeatureClass; IGeoDataset geoDataset = (IGeoDataset)layers[0].FeatureClass; string destination = System.IO.Path.Combine(temp, outputShapefileDirectory); if (Directory.Exists(destination)) { Directory.Delete(destination, true); } Directory.CreateDirectory(destination); IWorkspace outWorkspace = GeodatabaseUtil.GetShapefileWorkspace(destination); IFeatureWorkspace outFeatureWorkspace = (IFeatureWorkspace)outWorkspace; IWorkspaceName outWorkspaceName = GeodatabaseUtil.GetWorkspaceName(outWorkspace); IFeatureClassName outFeatureclassName = GeodatabaseUtil.GetFeatureClassName(outWorkspaceName, dataset.Name); //ESRI.ArcGIS.ADF.Web.Geometry.Envelope envelope = new ESRI.ArcGIS.ADF.Web.Geometry.Envelope(227884.141, 4167884.377, 602406.528, 4470244.455); ESRI.ArcGIS.ADF.Web.Geometry.Envelope envelope = new ESRI.ArcGIS.ADF.Web.Geometry.Envelope(445092.693, 4360557.744, 541068.565, 4418287.592); Dictionary <int, KeyValuePair <string, IEnumInvalidObject> > invalidObjects = GeodatabaseUtil.TransferMapDataWithinExtents(map, outFeatureWorkspace, null, envelope, geoDataset.SpatialReference); }
public void GetFeatureClassName_Test(string subDirectory, string pgdbFileName, string featureClassName) { string temp = System.IO.Path.Combine(_dataDirectory, subDirectory); string pgdbFile = System.IO.Path.Combine(temp, pgdbFileName); IFeatureClassName fcName = GeodatabaseUtil.GetFeatureClassName(GeodatabaseUtil.GetPGDBWorkspaceName(pgdbFile), featureClassName); Assert.IsNotNull(fcName, "Unable to get the IFeatureClassName for the FeatureClass '" + featureClassName + "' in the pgdb file '" + pgdbFile + "'."); IName name = (IName)fcName; if (name != null) { Assert.IsNotNull(name.Open(), "FeatureClass name obtained was invalid."); } else { Assert.Fail("Unable to run test. A valid IName reference could not be obtained."); } }
public void TransferData_Test(string subDirectory, string inputPGDBFile, string inputFeatureClassName) { string temp = System.IO.Path.Combine(_dataDirectory, subDirectory); string pgdb = System.IO.Path.Combine(temp, inputPGDBFile); IWorkspace inWorkspace = GeodatabaseUtil.GetAccessWorkspace(pgdb); IFeatureWorkspace inFeatureWorkspace = (IFeatureWorkspace)inWorkspace; IFeatureClass inFeatureClass = FeatureClassUtil.OpenFeatureClass(inFeatureWorkspace, inputFeatureClassName); IGeoDataset geoDataset = (IGeoDataset)inFeatureClass; string[] files = Directory.GetFiles(temp, inputFeatureClassName + ".*", SearchOption.TopDirectoryOnly); foreach (string item in files) { File.Delete(item); } IWorkspace outWorkspace = GeodatabaseUtil.GetShapefileWorkspace(temp); IFeatureWorkspace outFeatureWorkspace = (IFeatureWorkspace)outWorkspace; IWorkspaceName outWorkspaceName = GeodatabaseUtil.GetWorkspaceName(outWorkspace); IFeatureClassName outFeatureclassName = GeodatabaseUtil.GetFeatureClassName(outWorkspaceName, inputFeatureClassName); IEnumInvalidObject invalidObjects = GeodatabaseUtil.TransferData(inFeatureWorkspace, inFeatureClass, outFeatureWorkspace, outFeatureclassName, null, null, geoDataset.SpatialReference); }