В документации PostGIS говорится, что ST_PointOnSurfaceвозвращается «ТОЧКА, гарантированно лежащая на поверхности». Кажется, что эта функция может быть тривиально реализована, чтобы дать результаты, которые удовлетворяют документации, но обеспечивают небольшую практическую полезность, хотя я уверен, что PostGIS предоставляет нетривиальную реализацию.
Это введение в PostGIS обеспечивает хорошее сравнение и контраст ST_Centroidс ST_PointOnSurfaceи говорит, что «[ST_PointOnSurface] существенно дороже в вычислительном отношении, чем операция с центроидом».
Есть ли более подробное объяснение того, как ST_PointOnSurfaceрассчитывается? Я использовал ST_Centroid, но столкнулся с некоторыми крайними случаями в моих данных, когда центроид находится вне геометрии. Я считаю, что ST_PointOnSurfaceэто правильная замена, но имя функции и документация оставляют место для неопределенности.
Кроме того, производятся ли вычислительные затраты ST_PointOnSurface, даже если центроид уже находится в пределах геометрии?