ESRI.ArcGIS.Geodatabase.IRow/IFeature转为GeoJSON.Net.Feature.Feature对象

看代码:

        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);
        }

猜你喜欢

转载自blog.csdn.net/a_dev/article/details/79918119