我正在使用 C# 开发基于 GIS 的桌面应用程序。我在这个项目中使用点空间库。
现在我需要在多边形上创建一个特征网格。这个网格单元(矩形)应该是20*20 平方米。
我已经研究过它并且能够创建网格但面临关于单元格大小的问题。每当多边形大小改变时,单元格大小也会减小。我的代码。
// Polygon Width = 2335
// Polygon Height = 2054
int RowsCount = 111;
int ColumnsCount = 111;
var maxPointX = Polygon.Extent.MaxPointX;
var minPointX = Polygon.Extent.MinPointX;
var maxPointY = Polygon.Extent.MaxPointY;
var minPointY = Polygon.Extent.MinPointY;
var dXStep = (maxPointX - minPointX) / (ColumnsCount - 1);
var dYStep = (maxPointY - minPointY) / (RowsCount - 1);
var gridColumnsPoints = new double[1000000];
var gridRowPoints = new double[1000000];
// Calculate the coordinates of grid
var nextPointX = minPointX;
for (int i = 1; i <= ColumnsCount; i++)
{
gridColumnsPoints[i - 1] = nextPointX;
nextPointX = nextPointX + dXStep;
}
var nextPointY = minPointY;
for (int i = 1; i <= RowsCount; i++)
{
gridRowPoints[i - 1] = nextPointY;
nextPointY = nextPointY + dYStep;
}
现在,当我在小多边形上尝试此代码时,网格单元的大小也减小了。
我知道我的方法不正确,所以我搜索了它并获得了一些工具。喜欢
https://gis.stackexchange.com/questions/79681/creating-spatially-projected-polygon-grid-with-arcmap
但我想用 C# 创建它,但找不到任何算法或任何其他帮助材料。
请分享你的知识。谢谢