看代码:
public GeoJSON.Net.Feature.Feature CreateJsonFeature(ESRI.ArcGIS.Geodatabase.IRow pRow) { GeoJSON.Net.Geometry.IGeometryObject geometryObject = null; int nFieldCount = pRow.Fields.FieldCount; Dictionary<string, object> dictProp = new Dictionary<string, object>() { }; for (int n = 0; n < nFieldCount; n++) { ESRI.ArcGIS.Geodatabase.IField pField = pRow.Fields.get_Field(n); esriFieldType fieldType = pField.Type; switch (fieldType) { case esriFieldType.esriFieldTypeDate: case esriFieldType.esriFieldTypeDouble: case esriFieldType.esriFieldTypeGUID: case esriFieldType.esriFieldTypeGlobalID: case esriFieldType.esriFieldTypeInteger: case esriFieldType.esriFieldTypeOID: case esriFieldType.esriFieldTypeSingle: case esriFieldType.esriFieldTypeSmallInteger: case esriFieldType.esriFieldTypeString: dictProp.Add(pField.Name, pRow.get_Value(n)); break; case esriFieldType.esriFieldTypeGeometry: geometryObject = GeometryFactory.CreateGeoJsonFromEsriGeometry((pRow as ESRI.ArcGIS.Geodatabase.IFeature).Shape); break; case esriFieldType.esriFieldTypeBlob: case esriFieldType.esriFieldTypeRaster: case esriFieldType.esriFieldTypeXML: default: break; } } return new GeoJSON.Net.Feature.Feature(geometryObject, dictProp); }