c# - 不能将属性或索引器“ShapeRange.Parts”分配给——它是只读的
问题描述
这是我寻求帮助的第一篇文章。在开发 shapefile 读取软件时,我遇到了以下错误:
不能将属性或索引器“ShapeRange.Parts”分配给——它是只读的
我的代码片段,错误如下。
var shx = new DSShapeRange(featureType) { Extent = geometry.EnvelopeInternal.ToDotSpatial() };
shx.Parts = new List<DSPartRange>();
该行所在的功能是:
private static DSShapeRange ShapeRangeFromGeometry(IGeometry geometry, double[] vertices, int offset)
{
var featureType = geometry.OgcGeometryType.ToDotSpatial();
var shx = new DSShapeRange(featureType) { Extent = geometry.EnvelopeInternal.ToDotSpatial() };
shx.Parts = new List<DSPartRange>();
var vIndex = offset / 2;
var shapeStart = vIndex;
for (var part = 0; part < geometry.NumGeometries; part++)
{
var prtx = new DSPartRange(vertices, shapeStart, vIndex - shapeStart, featureType);
var bp = geometry.GetGeometryN(part) as IPolygon;
if (bp != null)
{
// Account for the Shell
prtx.NumVertices = bp.Shell.NumPoints;
vIndex += bp.Shell.NumPoints;
// The part range should be adjusted to no longer include the holes
foreach (var hole in bp.Holes)
{
var holex = new DSPartRange(vertices, shapeStart, vIndex - shapeStart, featureType)
{
NumVertices = hole.NumPoints
};
shx.Parts.Add(holex);
vIndex += hole.NumPoints;
}
}
else
{
int numPoints = geometry.GetGeometryN(part).NumPoints;
// This is not a polygon, so just add the number of points.
vIndex += numPoints;
prtx.NumVertices = numPoints;
}
shx.Parts.Add(prtx);
}
return shx;
}
解决方案
推荐阅读
- ios - CocoaPods 未安装或未处于有效状态
- javascript - 等待 getCurrentPosition() 不起作用
- r - 根据条件创建具有值的新列
- elasticsearch - 使用 min_doc_count=0 的弹性搜索聚合返回所有与查询结果或命中无关的存储桶
- html - 如何制作背景尺寸:从左侧切割封面?
- angular - 应用程序启动时出现 AWS Amplify API 导出错误
- git - Git 合并冲突 - 分离的 HEAD 主控
- docker - Docker Windows 10 Home:在第 2 行第 18 列的上下文中不允许映射值(Psych::SyntaxError)
- r - R - 为基于阈值组合的所有组合创建向量列表
- c++ - 如何访问存储在 std::variant 中的类的方法