@@ -246,7 +246,36 @@ public static NTSG STGeneratePoints(this NTSG geometry, int numberOfPoints, int
246246 throw new InvalidOperationException ( ) ;
247247 }
248248
249+ /// <summary>
250+ /// Returns approximate geometric median of input MultiPoint geometry using the Weiszfeld algorithm.
251+ /// </summary>
252+ /// <remarks>
253+ /// See https://postgis.net/docs/manual-3.0/ST_GeometricMedian.html
254+ /// </remarks>
255+ /// <param name="geometry">Input geometry (MultiPoint)</param>
256+ /// <param name="tolerance">Tolerance value</param>
257+ /// <param name="maxIterations">Maximum number of iterations</param>
258+ /// <param name="failIfNotConverged">Fail if not converged after maxIterations</param>
259+ /// <returns>Geometric median</returns>
260+ [ Sql . Function ( "ST_GeometricMedian" , ServerSideOnly = true ) ]
261+ public static NTSG STGeometricMedian ( this NTSG geometry , double tolerance , int maxIterations , bool failIfNotConverged )
262+ {
263+ throw new InvalidOperationException ( ) ;
264+ }
249265
266+ /// <summary>
267+ /// Returns approximate geometric median of input MultiPoint geometry using the Weiszfeld algorithm.
268+ /// </summary>
269+ /// <remarks>
270+ /// See https://postgis.net/docs/manual-3.0/ST_GeometricMedian.html
271+ /// </remarks>
272+ /// <param name="geometry">Input geometry (MultiPoint)</param>
273+ /// <returns>Geometric median</returns>
274+ [ Sql . Function ( "ST_GeometricMedian" , ServerSideOnly = true ) ]
275+ public static NTSG STGeometricMedian ( this NTSG geometry )
276+ {
277+ throw new InvalidOperationException ( ) ;
278+ }
250279
251280 /// <summary>
252281 /// Returns geometry that represents the point set intersection of given geometries.
@@ -263,6 +292,36 @@ public static NTSG STIntersection(this NTSG geometry, NTSG other)
263292 throw new InvalidOperationException ( ) ;
264293 }
265294
295+ /// <summary>
296+ /// Converts plain input LineString/Polygon to CircularString/CurvePolygon.
297+ /// </summary>
298+ /// <remarks>
299+ /// See https://postgis.net/docs/manual-3.0/ST_LineToCurve.html
300+ /// </remarks>
301+ /// <param name="geometry">Input geometry (LineString/Polygon)</param>
302+ /// <returns>Curved equivalent of input geometry</returns>
303+ [ Sql . Function ( "ST_LineToCurve" , ServerSideOnly = true ) ]
304+ public static NTSG STLineToCurve ( this NTSG geometry )
305+ {
306+ throw new InvalidOperationException ( ) ;
307+ }
308+
309+ /// <summary>
310+ /// Attempts to create a valid representation of input invalid geometry without losing any of input vertices.
311+ /// </summary>
312+ /// <remarks>
313+ /// See https://postgis.net/docs/manual-3.0/ST_MakeValid.html
314+ /// </remarks>
315+ /// <param name="geometry">Input geometry</param>
316+ /// <returns>Fixed valid geometry</returns>
317+ [ Sql . Function ( "ST_MakeValid" , ServerSideOnly = true ) ]
318+ public static NTSG STMakeValid ( this NTSG geometry )
319+ {
320+ throw new InvalidOperationException ( ) ;
321+ }
322+
323+ // TODO: ST_MemUnion(geometry set)
324+
266325 /// <summary>
267326 /// Returns POINT guaranteed to intersect a surface.
268327 /// </summary>
@@ -293,7 +352,7 @@ public static NTSG STSymDifference(this NTSG geometry, NTSG other)
293352 }
294353
295354 /// <summary>
296- /// Returns union of given geometries.
355+ /// Returns union of input geometries.
297356 /// </summary>
298357 /// <remarks>
299358 /// See https://postgis.net/docs/manual-3.0/ST_Union.html
@@ -307,4 +366,4 @@ public static NTSG STUnion(this NTSG geometry, NTSG other) // TODO: other varian
307366 throw new InvalidOperationException ( ) ;
308367 }
309368 }
310- }
369+ }
0 commit comments