try Buffer Geodetic
Creates and returns a geodetic buffer or buffers relative to the given collection of geometries. Geodetic buffers account for the actual shape of the earth. Distances are calculated between points on a curved surface (the geoid) as opposed to points on a flat surface (the Cartesian plane).
Negative distance can be used to create buffers inside polygons. Using a negative buffer distance shrinks the polygons' boundaries by the distance specified. Note that if the negative buffer distance is large enough, polygons may collapse to empty geometries.
Return
A collection of polygon geometries that represent a geodetic buffer at the desired distance(s) relative to the given geometries. If 'unionResult' is true, the resulting collection contains a single polygon. Returns an empty list in the following circumstances: geometries is empty; the geometries do not have equivalent spatial references.
Since
200.1.0
Parameters
A collection of geometries.
The distance to buffer each geometry, expressed as a MutableList of double. If the size of the distances array is less than the number of geometries, the last distance value is used for the rest of geometries.
The unit of measure for the distance.
The maximum deviation between points. If NaN then a maximum deviation of up to 0.2% of the buffer distance, with a maximum of 0.01 meters, aiming to give an output geometry with a smooth boundary.
The GeodeticCurveType used to calculate the buffer.
Return a single geometry that buffers all the geometries (true), or one buffer for each in the given collection (false).