Open fredrik-stock opened 2 years ago
This might actually be an easy fix, since @PascalSenn already implemented the needed functionality in #4394.
MultiPolygons were updated to be correctly handled as a GeometryCollection, reading out the contained coordinate arrays through indexed access: https://github.com/ChilliCream/hotchocolate/blob/ef1b268c7e624808862f18c43a190fba6303677a/src/HotChocolate/Spatial/src/Types/GeoJsonMultiPolygonType.cs#L19-L23
MultiLineStrings meanwhile still access MultiLineString.Coordinates for their Coordinates field. This property "Collects all coordinates of all subgeometries into an Array", thus we get the flat structure observed: https://github.com/ChilliCream/hotchocolate/blob/ef1b268c7e624808862f18c43a190fba6303677a/src/HotChocolate/Spatial/src/Types/GeoJsonMultiLineStringType.cs#L18-L20
Worth noting is that in NTS there are three classes that extend GeometryCollection. MultiPolygon, MultiLineString and MultiPoint. MultiPoint probably wouldn't need this change since it's basically a LineString, dimension-wise.
@fredrik-stock Thanks for reporting! yes this could indeed be the same problem
Is there an existing issue for this?
Describe the bug
MultiLineStrings should be represented as [LineString, LineString, ...]. As of HC 12.12 / 13 it seems all the contained LinesStrings get concatenated into one single array of coordinates, which gets really wonky if the LineStrings aren't actually contigous:
Manually serializing the same string with NTS.IO and sending it as a raw string gives the expected result:
Steps to reproduce
Relevant log output
No response
Additional Context?
From existing issues and PRs it seems a similiar problem was fixed for MultiPolygon already.
Product
Hot Chocolate
Version
12.12.1