Added option to generate ISOXML taskmap, added missing Nbs data

This commit is contained in:
Riepma
2021-04-12 14:22:24 +02:00
parent 4459a4e76d
commit c7ab62c911
23 changed files with 1008 additions and 1056 deletions

View File

@@ -8,6 +8,7 @@ namespace FarmmapsApiSamples
public const string GEOTIFF_PROCESSED_ITEMTYPE = "vnd.farmmaps.itemtype.geotiff.processed";
public const string CROPFIELD_ITEMTYPE = "vnd.farmmaps.itemtype.cropfield";
public const string SHAPE_PROCESSED_ITEMTYPE = "vnd.farmmaps.itemtype.shape.processed";
public const string ISOXML_PROCESSED_ITEMTYPE = "vnd.farmmaps.itemtype.iso11783.taskdata.processed";
public const string SHAPE_ITEMTYPE = "vnd.farmmaps.itemtype.shape";
public const string GEOJSON_ITEMTYPE = "vnd.farmmaps.itemtype.geojson";
public const string BLIGHT_ITEMTYPE = "vnd.farmmaps.itemtype.blight";

View File

@@ -110,7 +110,7 @@ namespace FarmmapsApi.Services
// Create taskmap based on width, height and direction
public async Task<Item> CreateTaskmap(Item cropfieldItem, Item tiffItem, string outputType, string cellWidth, string cellHeight,
string startPoint, string ddiCode = "0001", string centered = "false", string endPoint = null, string angle = null,
string startPoint, string ddiCode = "0001", string centered = "false", string endPoint = null, string angle = null, string precision = null,
string cropTypeName = null, string costumerName = null, string ProductGroupName = null, string productName = null,
string resolution = null, string unitScale = null, string maximumClasses = null)
@@ -126,9 +126,10 @@ namespace FarmmapsApi.Services
if (outputType == "isoxml") taskmapRequest.attributes["ddiCode"] = ddiCode; // ddi is obligatory for isoxml, if not given set to 0001
if (angle == null) taskmapRequest.attributes["endPoint"] = endPoint; // Coordinates WGS84
if (endPoint == null) taskmapRequest.attributes["angle"] = angle; // degrees between 0.0 and 360.0
//taskmapRequest.attributes["precision"] = precision;
// Optional attributes
if (precision != null) taskmapRequest.attributes["precision"] = precision;
if (cropTypeName != null) taskmapRequest.attributes["cropTypeName"] = cropTypeName;
if (costumerName != null) taskmapRequest.attributes["costumerName"] = costumerName;
if (ProductGroupName != null) taskmapRequest.attributes["ProductGroupName"] = ProductGroupName;
@@ -155,11 +156,24 @@ namespace FarmmapsApi.Services
//the taskmap is a child of the input tiff
var itemName = "Taskmap";
var taskMapItem = await FindChildItemAsync(tiffItem.ParentCode,
Item taskMapItem = null;
if (outputType == "isoxml") {taskMapItem = await FindChildItemAsync(tiffItem.ParentCode,
ISOXML_PROCESSED_ITEMTYPE, itemName);
}
else if (outputType== "shape") {
taskMapItem = await FindChildItemAsync(tiffItem.ParentCode,
SHAPE_PROCESSED_ITEMTYPE, itemName);
}
else
{
_logger.LogError("OutputType not specified, could not determine if output should be shape or ISOXML");
taskMapItem = null;
}
if (taskMapItem == null)
{
_logger.LogError("Could not find the shape taskmap as a child item under the input");
_logger.LogError("Could not find the shape/isoxml taskmap as a child item under the input");
return null;
}