Todos os produtos
Search
Central de documentação

:ST_SetCost

Última atualização: Jul 05, 2026

Atribui um custo de travessia a um array de grades geográficas. Passe o valor gridcost retornado para uma função de roteamento e defina barreiras intransponíveis ou zonas de travessia ponderada em cálculos de caminho mais curto baseados em grade.

Sintaxe

gridcost ST_SetCost(geomgrid[] barriers, smallint cost);

Parâmetros

Parâmetro

Tipo

Descrição

barriers

geomgrid[]

Array de grades geográficas que receberá o custo de travessia.

cost

smallint

Custo de travessia a atribuir. Defina como -1 para marcar as grades como intransponíveis. Qualquer outro valor é interpretado como distância equivalente: corresponde ao número de grades sem barreiras cujo custo total de travessia iguala o custo de cruzar uma única grade no array barriers.

Funcionamento

A função ST_SetCost atribui um custo de travessia a um array especificado de grades com barreiras. Passe o valor gridcost resultante para as funções de roteamento que calculam caminhos mais curtos em uma rede de grades.

O parâmetro cost apresenta dois comportamentos distintos:

  • **-1 (intransponível):** Impede a travessia pelo array de grades especificado. As funções de roteamento tratam as grades em barriers como células bloqueadas e desviam o trajeto ao redor delas.

  • Qualquer outro valor (custo ponderado): Expressa o custo como distância equivalente. O sistema calcula o valor do parâmetro de custo para as demais grades com base nessa equivalência e equipara o custo de atravessar uma grade com barreiras ao custo de atravessar múltiplas grades sem barreiras. Um custo de 5 significa que cruzar uma grade em barriers equivale a cruzar 5 grades livres de barreiras.

Exemplo

Selecione um custo de travessia de 1 a duas grades:

SELECT st_setcost(
  ARRAY[st_gridfromtext('GZ01'), st_gridfromtext('GZ1')],
  1
);

Saída:

("{01024002000001000000,0102410100000000}",1)

Próximos passos

Após atribuir custos com ST_SetCost, passe os valores gridcost resultantes para uma função de roteamento e calcule caminhos mais curtos na rede de grades.