Установить значение поля в точечном пространстве набора функций
Я создаю шейп-файл с использованием библиотеки DotSpatial в Microsoft Visual Studio и языке программирования C#. Шейп-файл состоит из слоя Polygon. Каждый полигон в слое должен иметь определенную ценность удобрения. Насколько я понимаю, я должен сначала создать поле (скажем, "Значение удобрения"), а затем добавить к нему соответствующее значение удобрения для каждого созданного полигона. Я создал поле и создал полигон. Тем не менее, я все еще пытаюсь найти правильный способ добавить значение поля в соответствующий полигон. Код как ниже:
// Create a feature set of type Polygon and set the projection
FeatureSet fs = new FeatureSet(FeatureType.Polygon);
fs.Projection = ProjectionInfo.FromAuthorityCode("EPSG", 3857);
// Get the DataTable and set the fertilizer field
DataTable table = fs.DataTable;
DataColumn FertilizerField = table.Columns.Add("Fertilizer Value", typeof(double));
// Adding a Polygon feature to the layer
Coordinate[] coord = new Coordinate[]
{
new Coordinate(0.0, 0.0),
new Coordinate(1.0, 0.0),
new Coordinate(1.0, 1.0),
new Coordinate(0.0, 1.0),
new Coordinate(0.0, 0.0)
};
fs.AddFeature(new Polygon(new LinearRing(coord)));
// TODO: HOW TO ADD FERTILIZER VALUE OF 100 TO THE FERTILIZER FIELD OF THIS POLYGON?
У меня вопрос, как мне установить значение поля для этого многоугольника?
1 ответ
Вы можете создать переменную Feature, а затем обновить содержимое в свойстве DataRow. Затем вам нужно будет добавить функцию в коллекцию компонентов напрямую, а не с помощью метода ярлыков AddFeature.
// Create a feature set of type Polygon and set the projection
FeatureSet fs = new FeatureSet(FeatureType.Polygon);
fs.Projection = ProjectionInfo.FromAuthorityCode("EPSG", 3857);
// Get the DataTable and set the fertilizer field
DataTable table = fs.DataTable;
DataColumn FertilizerField = table.Columns.Add("Fertilizer Value", typeof(double));
// Adding a Polygon feature to the layer
Coordinate[] coord = new Coordinate[]
{
new Coordinate(0.0, 0.0),
new Coordinate(1.0, 0.0),
new Coordinate(1.0, 1.0),
new Coordinate(0.0, 1.0),
new Coordinate(0.0, 0.0)
};
// Create a Feature Variable to update the shape with attribute content.
Feature f = new Feature(new Polygon(new LinearRing(coord)));
// Modify the data row like any DataTable DataRow object.
f.DataRow["Fertilizer Value"] = 100;
// Add the fully created feature to the list of features directly.
fs.Features.Add(f);