Open ArcEngine in various data sources (WorkSpace) connection (SDE, personal / File, ShapeFile, CAD data, image maps, the image dataset)

ArcEngine can accept a variety of data sources. In the development process, we use the following several data sources

1. Enterprise database ( SDE )

   Companies need to use the SDE database to manage, so the need to use Workspace to represent the SDE connection. In AE interface, Workspace Factory is open. Code as follows: // ready connection parameters

ESRI.ArcGIS.esriSystem.IPropertySet pPropSet=new PropertySetClass();

pPropSet.SetProperty ( "server", "server machine name");

pPropSet.SetProperty ( "instance", "SDE run port number");

pPropSet.SetProperty("user","用户名");

pPropSet.SetProperty("password","口令" );

pPropSet.SetProperty("version","版本");

SdeWorkspaceFactory sdeWkspFact=new SdeWorkspaceFactoryClass();

IFeatureWorkspace pFeaWksp=(IFeatureWorkspace)sdeWkspFact.Open(pPropSet,0);

Which is the only possible version (version) the need to explain for the first time or do not use version connection (no establishment of spatial database, of course, no version). Sde.DEFAULT where the use of this version. This is the default version.

iPropertySet:: setProperty

public void setProperty(string name,object value)

2. The personal database (PersonalGeodatabase , FileGeodatabase)

ArcEngine personal database Access.

string filePath="E:\\tt.mdb";

AccessWorkspaceFactory fac=new AccessWorkspaceFactoryClass();

IFeatureWorkspace space = (IFeatureWorkspace) fac.OpenFromFile (filePath, 0); this is a way to use up.

If FileGeodatabasse, then

FileGDBWorkspaceFactory pWSF = New FileGDBWorkspaceFactory;

IFeatureWorkspace pWS1= pWSF.OpenFromFile(sPath, 0);

 

If IPropertySet. as follows:

//Personal Geodatabase e.g., database = "C:\\myData\\mypGDB.mdb"

public IWorkspace open_pGDB_Workspace(string database)

{

IPropertySet propertySet = new PropertySetClass();

propertySet.SetProperty("DATABASE", database);

IWorkspaceFactory workspaceFactory = new AccessWorkspaceFactoryClass();

return workspaceFactory.Open(propertySet, 0);

}

3.Shapefile file

   Shapefile of Open Access and the same thing. There are also differences.

// This is the directory where the Shape (Note: is a directory)

string spacePath="E:\\shapefile";

IShapefileWorkspaceFactory fac=new ShapefileWorkspaceFactoryClass(); IFeatureWorkspace space=(IFeatureWorkspace)fac.OpenFromFile(spacePath,0);

IFeatureClass fc=space.openFeatureClass(“china”);

4.AutoCAD dwg file

   AutoCAD file format and general ESRI different. So the code will be a little strange. Suppose there is a file dwg E: \\ cad \\ 107.dwg following codes are open:

CadWorkspaceFactoryClass fac=new CadWorkspaceFactoryClass ();

String filePath="E:\\cad";

IFeatureWorkspace space=fac.OpenFromFile(filePath,0) as IFeatureWorkspace ;

The following are open FeatureClass code:

//line

IFeatureClass polyline =space.OpenFeatureClass("107.dwg:Polyline");

IFeatureLayer layer=new CadFeatureLayerClass ();

layer.FeatureClass =polyline;

//point

IFeatureClass point=space.OpenFeatureClass ("107.dwg:Point");

layer=new CadFeatureLayerClass ();

layer.FeatureClass =point;

//surface

IFeatureClass polygon=space.OpenFeatureClass ("107.dwg:Polygon");

layer=new CadFeatureLayerClass();

layer.FeatureClass =polygon;

//Mark

IFeatureClass anno=space.OpenFeatureClass ("107.dwg:Annotation"); layer=new CadAnnotationLayerClass();

layer.FeatureClass =anno;

The image file in FIG.

//file path

string filePath="E:\\image\\117.tif";

IRasterLayer rasterLayer=new RasterLayerClass();

rasterLayer.CreateFromFilePath(filePath );

6. The image dataset in the database.

   //Database Connectivity

IWorkspace space=OpenSpace();

// Open the database

IRasterWorkspaceEx rasterSpace=(IRasterWorkspaceEx)space;

IRasterDataset rasterDataset=rasterSpace.OpenRasterDataset (setName.Name );

IRasterLayer rasLayer=new RasterLayerClass();

rasLayer.CreateFromDataset(rasterDataset);

IRasterWorkspaceEx: to provide a method to create and open raster catalog or raster dataset.

But IRasterWorkspaceEx, IRasterWorkspace, IRasterWorkspace2 have OpenRasterDataset. IRasterWorkspace also often be used to open the raster data, such as: pWorkspaceFactory = new RasterWorkspaceFactoryClass ();

            pRasterWorkspace = (IRasterWorkspace)pWorkspaceFactory.OpenFromFile(filePath, 0);

           IRasterDataset pRasterDataset = (IRasterDataset) pRasterWorkspace.OpenRasterDataset (filename);

           IRasterLayer pRasterLayer = new RasterLayerClass();

            pRasterLayer.CreateFromDataset (pRasterDataset)

Guess you like

Origin www.cnblogs.com/zgl-gis/p/11993402.html