La documentation PostGIS indique que ST_PointOnSurfaceretourne "un POINT garanti à la surface". Il semble que cette fonction puisse être implémentée de manière triviale pour donner des résultats qui satisfont la documentation mais fournissent peu d'utilité dans le monde réel, bien que je suis certain que PostGIS fournit une implémentation non triviale.
Cette introduction à PostGIS fournit une comparaison et un contraste agréables ST_Centroidavec ST_PointOnSurfaceet dit que "[ST_PointOnSurface] est beaucoup plus cher en termes de calcul que l'opération centroïde".
Y a-t-il une explication plus approfondie de la façon dont ST_PointOnSurfaceest calculé? J'ai utilisé ST_Centroid, mais j'ai rencontré des cas de bord dans mes données où le centroïde est en dehors de la géométrie. Je crois que ST_PointOnSurfacec'est le substitut correct, mais le nom de la fonction et la documentation laissent place à l'incertitude.
De plus, les frais de calcul sont-ils ST_PointOnSurfaceencourus même si le centroïde se trouve déjà dans la géométrie?