featureclass(面要素) 转 json/geojson,当featureclass的feature(大约1W以上)太多时,报内存错误,但gp工具成功

环境 arcgis10.2,vs2015  
if (featureClass == null) return @"featureClass is null";
                IJSONWriter jsonWriter = new JSONWriterClass();
                jsonWriter.WriteToString();

                //Create a property set to specify format to be GeoJSON
                //IPropertySet props = new PropertySetClass();
                //props.SetProperty("Format", "GeoJSON");

                IJSONSerializer jsonSerializer = new JSONSerializerGdbClass();
                jsonSerializer.InitSerializer(jsonWriter, null);

                IRecordSetInit recordSetInit = new RecordSetClass();
                recordSetInit.SetSourceTable((ITable)featureClass, null);
                IRecordSet recordSet = recordSetInit as IRecordSet;
                //var sr = ((IGeoDataset)featureClass).SpatialReference;
                int count;
                (jsonSerializer as IExternalSerializerGdb2).WriteRecordSetEx(null, recordSet, null, out count);
                var json = Encoding.UTF8.GetString(jsonWriter.GetStringBuffer());
                return json;
 
已邀请:

cannel

赞同来自: 随意的风

这个方法是调用一次就转出整个featureclass的,可能是性能优化没做好,数据多了就爆
建议可以试试用转单个feature的,这样自己可以控制对象释放
这些类我都没用过,只能瞎猜了

要回复问题请先登录注册