看代码:
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);
}