Currently geo/GeoProject function returns hardcoded WKT LINESTRING.
Should use input geometry type as return type e.g. POINT, LINESTRING, POLYGON and MULTI... variations.
WKT geometric objects support after this improvement:
POINT
LINESTRING
POLYGON <- Only simple polygon without hole
Not supported:
POLYGON <- Polygon with hole
MULTIPOINT
MULTILINESTRING
MULTIPOLYGON <- Multipolygon without or with hole
GEOMETRYCOLLECTION
TRIANGLE
TIN
POLYHEDRALSURFACE
POINT ZM <- Point with
POINT M <- Point with
POINT EMPTY <- Empty geometry object
MULTIPOLYGON EMPTY <- Empty geometry object
Examples:
Supported:
POINT (30 10)
LINESTRING (30 10, 10 30, 40 40)
POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10)) <- Only simple polygon without hole
Not supported:
POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10), (20 30, 35 35, 30 20, 20 30)) <- Polygon with hole
MULTIPOINT ((10 40), (40 30), (20 20), (30 10))
MULTIPOINT (10 40, 40 30, 20 20, 30 10)
MULTILINESTRING ((10 10, 20 20, 10 40), (40 40, 30 30, 40 20, 30 10))
MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)), ((15 5, 40 10, 10 20, 5 10, 15 5)))
MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)), ((20 35, 10 30, 10 10, 30 5, 45 20, 20 35), (30 20, 20 15, 20 25, 30 20))) <- Multipolygon with hole
GEOMETRYCOLLECTION (POINT (40 10), LINESTRING (10 10, 20 20, 10 40), POLYGON ((40 40, 20 45, 45 30, 40 40)))
See https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry
Add support for javascript reprojection libraries like RDNAPTRANS and PROJ6 so you can choose between online (Esri) service or local library.
For big data sets might be better to convert outside DHF/Pipes