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 |
|
|
|
Array de grades geográficas que receberá o custo de travessia. |
|
|
|
Custo de travessia a atribuir. Defina como |
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 embarrierscomo 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
5significa que cruzar uma grade embarriersequivale 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.