Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
Databricks Runtime 18.3 e superior
Importante
Esse recurso está em Visualização Pública.
Retorna um ponto que tem a garantia de estar dentro ou dentro do valor de entrada GEOMETRY .
Syntax
st_pointonsurface ( geoExpr )
Arguments
-
geoExpr: valor deGEOMETRY.
Returns
Um valor de ponto GEOMETRY 2D que tem a garantia de estar dentro ou dentro do valor de entrada GEOMETRY .
Mais precisamente:
- Se o valor de entrada
GEOMETRYestiver vazio, o ponto vazio 2D será retornado. - Se o valor de entrada
GEOMETRYfor um ponto não vazio, a projeção 2D do ponto será retornada. - Se o valor de entrada
GEOMETRYfor um linestring não vazio, o vértice mediano será retornado. - Se o valor de entrada
GEOMETRYfor um polígono não vazio, um ponto no interior do polígono será retornado quando possível; caso contrário, um ponto em seu limite. - Se o valor de entrada
GEOMETRYfor um multiponto, o ponto não vazio mais próximo do centro de caixa delimitadora será retornado. - Se o valor de entrada
GEOMETRYfor uma multilinha, um ponto na superfície da linha com o maior comprimento será retornado. - Se o valor de entrada
GEOMETRYfor um multipolígono, um ponto na superfície do polígono com a maior área será retornado. - Se o valor de entrada
GEOMETRYfor uma coleção de geometria, um ponto na superfície de um dos elementos dimensionais máximos da coleção será retornado.
O valor SRID do valor de saída GEOMETRY é o mesmo do valor de entrada.
Exemplos
-- Example taking a 2D polygon.
> SELECT st_asewkt(st_pointonsurface(st_geomfromtext('POLYGON((0 0,10 0,10 10,0 10,0 0))')));
POINT(5 5)
-- Example taking a 2D polygon with a hole: the result lies in the donut region.
> SELECT st_asewkt(st_pointonsurface(st_geomfromtext('POLYGON((0 0,30 0,30 30,0 30,0 0),(5 5,25 5,25 25,5 25,5 5))')));
POINT(3.75 3.75)
-- Example taking a 3DZ linestring: the median vertex is returned and the Z coordinate is dropped.
> SELECT st_asewkt(st_pointonsurface(st_geomfromtext('LINESTRING Z (1 2 -1,3 4 -2,5 6 -3)')));
POINT(3 4)
-- Example taking a multipolygon: a point on the polygon with the largest area is returned.
> SELECT st_asewkt(st_pointonsurface(st_geomfromtext('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)),((100 100,101 100,101 101,100 101,100 100)))')));
POINT(5 5)
-- Example showing that the SRID is preserved.
> SELECT st_asewkt(st_pointonsurface(st_geomfromtext('POLYGON((0 0,10 0,10 10,0 10,0 0))', 3857)));
SRID=3857;POINT(5 5)
-- Example taking a NULL input.
> SELECT st_pointonsurface(NULL);
NULL