Ich arbeite an GIS-basierten Desktop-Anwendung mit C#. Ich verwende die dotspatial-Bibliothek in diesem Projekt.Erstellen von Features (Punkt) Gitter auf Polygon
Jetzt muss ich ein Raster von Features auf Polygon erstellen. Diese Gitterzelle (Rechteck) sollte 20 * 20 Meter Square sein.
Ich habe daran gearbeitet und in der Lage, Gitter zu erstellen, aber mit Blick auf die Zellgröße. Immer wenn die Polygongröße geändert wurde, wurde die Zellengröße ebenfalls reduziert. Mein Code.
// 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;
}
Nun, wenn ich diesen Code auf geringe Größe von Polygon versucht dann Zelle Rastergröße verringert auch.
ich mein Ansatz wissen, ist nicht richtig, so habe ich auf sie gesucht und bekam einige Werkzeuge. wie
https://gis.stackexchange.com/questions/79681/creating-spatially-projected-polygon-grid-with-arcmap
Aber ich will es in C# erstellen und nicht in der Lage jeden Algorithmus oder andere helfen, Material zu finden.
Bitte teilen Sie Ihr Wissen. Dank