Based on the Proj.Net FAQ, I believe the input values do not need to be converted to radians. Often, projection and transformation functions accept coordinate values in the input coordinate reference system's unit and will return values in the output coordinate reference system unit of measure.
One way is re-use this answer
this returns start and endpoint for line , use negative offset for other side
SELECT ST_StartPoint(ST_OffsetCurve(center_geom, startpointoffset) as start, ST_StartPoint(ST_OffsetCurve(center_geom, endpointoffset) as end, from xx where yyy
this makes line
SELECT ST_Makeline(l.start, l.end) FROM (SELECT ST_StartPoint(ST_OffsetCurve(center_geom, startpointoffset) as start, ST_StartPoint(ST_OffsetCurve(center_geom, endpointoffset) as end, from xx where yyy) as l
solution for whole area
First take long line , split it to lines containing only 2 points (start and end) and then use offsetcurve 4 times, once for right side startpoint , once right side endpoint and same for left side, then create two lines. After you have all lines, draw line from right side endpoint to left side endpoint (start does not need if you use 0 offset at very first point). After that ST_Polygonize may be solution for creating polygon from lines.
If this answer is useful i can help with final SQL later
Best Answer
NetTopologySuite is a port of the JTSTopologySuite. From the JTS FAQ:
So, if you are using input data with lat/lon your buffer has to be calculated in the same unit (e.g decimal degrees).
You can either calculate an local approximation of how many decimal degrees 200 meters are or you can reproject your data to a grid that uses metric units. You can find a post going more into the details of these options here.