private enumCoordinateType GetCoordinateType(SpatialFeatureClass spatialFeatureClass, out ISpatialReference spref) { spref = null; try { ISpatialReference rf = SpatialReferenceFactory.GetSpatialReferenceByPrjFile(spatialFeatureClass.SpatialRef) as ISpatialReference; spref = rf; if (rf == null) { goto ensureByEnvelopeLine; } if (rf.ProjectionCoordSystem == null) { return(enumCoordinateType.Geographic); } else { return(enumCoordinateType.Projection); } } catch { goto ensureByEnvelopeLine; } ensureByEnvelopeLine: return(spatialFeatureClass.Envelope.IsGeoRange() ? enumCoordinateType.Geographic : enumCoordinateType.Projection); }
public FetClassIdentify[] GetFetClassIdentify() { using (CatalogEntityClassFeatureClass c = new CatalogEntityClassFeatureClass(_connectionString)) { SpatialFeatureClass temp = new SpatialFeatureClass(); return(GetFetClassIdentify(c.Query("length(datasetid)=0"))); } }
private void DisplayFeatureClass(CatalogFeatureClass catalogFeatureClass) { SpatialFeatureClass fetclass = catalogFeatureClass.Tag as SpatialFeatureClass; FeatureDataSourceBase ds = new SpatialDbDataSource(fetclass.Name, fetclass.ConnString + "@" + fetclass.DataTable); FeatureClass fetc = new FeatureClass(ds); IFeatureLayer lyr = new FeatureLayer(fetclass.Name, fetc); IMap map = new Map(new IFeatureLayer[] { lyr }); mapControl1.Apply(map); mapControl1.ReRender(); }
private string[] GetFieldsBySpatialFetClass(SpatialFeatureClass spatialFeatureClass) { using (IDbConnection dbConn = DbConnectionFactory.CreateDbConnection(_connectionString)) { dbConn.Open(); DiffDbAdapter _adapter = DiffDbAdapterFactory.GetDiffDbAdapter(dbConn); string shapeField = null; string oidfield = null; Dictionary <string, Type> fields = _adapter.GetFieldsOfTable(dbConn, spatialFeatureClass.DataTable, out shapeField, out oidfield); return(fields.Keys.ToArray()); } }
private FetClassProperty SpatialFeatureClassToProperty(SpatialFeatureClass spatialFeatureClass) { FetClassProperty p = new FetClassProperty(); ISpatialReference spref = null; p.CoordinateType = GetCoordinateType(spatialFeatureClass, out spref); p.Fields = GetFieldsBySpatialFetClass(spatialFeatureClass); p.FullEnvelope = spatialFeatureClass.Envelope; p.Name = spatialFeatureClass.Name; p.ShapeType = spatialFeatureClass.ShapeType; p.SpatialReference = spref; p.FeatureCount = spatialFeatureClass.FeatureCount; return(p); }