static async Task <IFeature> ToDeserializedFeature(string wkt) { var f = MakeFeature(wkt); var fc = MakeFeatureCollection(f); var geometryType = GeometryConversions.ToGeometryType(f.Geometry); byte dimensions = GetDimensions(f.Geometry); var flatgeobuf = await FeatureCollectionConversions.SerializeAsync(fc, geometryType, dimensions); return(FeatureCollectionConversions.Deserialize(flatgeobuf)[0]); }
static async Task <string> RoundTrip(string wkt) { var f = MakeFeature(wkt); var fc = MakeFeatureCollection(f); var geometryType = GeometryConversions.ToGeometryType(f.Geometry); byte dimensions = GetDimensions(f.Geometry); var flatgeobuf = await FeatureCollectionConversions.SerializeAsync(fc, geometryType, dimensions); var fcOut = FeatureCollectionConversions.Deserialize(flatgeobuf); var wktOut = new WKTWriter(dimensions).Write(fcOut[0].Geometry); return(wktOut); }
public FeatureCollectionConversionsBenchmark() { var point = GeometryRoundtripTests.MakeFeature("POINT (1.2 -2.1)"); var polygon = GeometryRoundtripTests.MakeFeature("POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))"); var polygonZ = GeometryRoundtripTests.MakeFeature("POLYGON Z((30 10 1, 40 40 2, 20 40 3, 10 20 4, 30 10 5))"); var attributes = new Dictionary <string, object>() { ["test1"] = 1, ["test2"] = 1.1, ["test3"] = "test", ["test4"] = true, ["test5"] = "teståöä2", ["test6"] = false, }; var pointWithAttributes = GeometryRoundtripTests.MakeFeature("POINT (1.2 -2.1)", attributes); pointFixture = new GeometryFixture() { fc = GeometryRoundtripTests.MakeFeatureCollection(point), geometryType = GeometryConversions.ToGeometryType(point.Geometry), dimensions = GeometryRoundtripTests.GetDimensions(point.Geometry), }; pointFixture.flatgeobuf = FeatureCollectionConversions.Serialize(pointFixture.fc, pointFixture.geometryType, pointFixture.dimensions); polygonFixture = new GeometryFixture() { fc = GeometryRoundtripTests.MakeFeatureCollection(polygon), geometryType = GeometryConversions.ToGeometryType(polygon.Geometry), dimensions = GeometryRoundtripTests.GetDimensions(polygon.Geometry), }; polygonFixture.flatgeobuf = FeatureCollectionConversions.Serialize(polygonFixture.fc, polygonFixture.geometryType, polygonFixture.dimensions); polygonZFixture = new GeometryFixture() { fc = GeometryRoundtripTests.MakeFeatureCollection(polygonZ), geometryType = GeometryConversions.ToGeometryType(polygonZ.Geometry), dimensions = GeometryRoundtripTests.GetDimensions(polygonZ.Geometry), }; polygonZFixture.flatgeobuf = FeatureCollectionConversions.Serialize(polygonZFixture.fc, polygonZFixture.geometryType, polygonZFixture.dimensions); pointWithAttributesFixture = new GeometryFixture() { fc = GeometryRoundtripTests.MakeFeatureCollection(pointWithAttributes), geometryType = GeometryConversions.ToGeometryType(pointWithAttributes.Geometry), dimensions = GeometryRoundtripTests.GetDimensions(pointWithAttributes.Geometry), }; pointWithAttributesFixture.flatgeobuf = FeatureCollectionConversions.Serialize(pointWithAttributesFixture.fc, pointWithAttributesFixture.geometryType, pointWithAttributesFixture.dimensions); }