Todos os produtos
Search
Central de documentação

PolarDB:ST_HMTAsArray

Última atualização: Jul 04, 2026

A função ST_HMTAsArray converte um tile de mapa de calor (HMT) em um array float8 2D e permite ler diretamente os valores de pixel em um conjunto de resultados SQL.

Sintaxe

float8[][] ST_HMTAsArray(bytea hmt);

Parâmetros

Parâmetro

Tipo

Descrição

hmt

bytea

Tile de mapa de calor codificado em binário no formato protobuf. Geralmente gerado por ST_AsHMT.

Valor de retorno

Retorna um array bidimensional do tipo float8[][]. Cada elemento representa o valor estatístico do pixel correspondente no mapa de calor.

Exemplo

O exemplo a seguir crie uma tabela de teste com 10 geometrias de ponto, gera um tile de mapa de calor com ST_AsHMT e converte o tile em um array 2D com ST_HMTAsArray.

CREATE TABLE test_table AS
SELECT i num,
    ST_setSRID(st_makepoint((i-0.5)::numeric, (i-0.5)::numeric), 4326) geom,
    i*100::int4 weight,
    i*i*i::float8 volume
FROM generate_series(1, 10) i;

SELECT ST_HMTAsArray(ST_AsHMT(geom, --geometry type
    ST_MakeEnvelope(0, 0, 10, 10, 4326), -- Extent
    10,        -- Width, in pixel
    10        -- height
))
FROM test_table;

Saída:

[0:9][0:9]={{1,0,0,0,0,0,0,0,0,0},{0,1,0,0,0,0,0,0,0,0},{0,0,1,0,0,0,0,0,0,0},{0,0,0,1,0,0,0,0,0,0},{0,0,0,0,1,0,0,0,0,0},{0,0,0,0,0,1,0,0,0,0},{0,0,0,0,0,0,1,0,0,0},{0,0,0,0,0,0,0,1,0,0},{0,0,0,0,0,0,0,0,1,0},{0,0,0,0,0,0,0,0,0,1}}

O prefixo [0:9][0:9]= é a notação do PostgreSQL para arrays bidimensionais com limites de subscrito explícitos. Ambas as dimensões variam do índice 0 ao 9 e correspondem à grade de pixels 10x10. O padrão diagonal de valores 1 reflete os 10 pontos de entrada distribuídos uniformemente pela grade.

Consulte também

  • ST_AsHMT — gera o binário do tile de mapa de calor (bytea) que esta função consome.