Tous les produits
Search
Centre de documentation

:ST_SetCost

Dernière mise à jour :Oct 10, 2026

Attribue un coût de traversée à un tableau de grilles géographiques. Transmettez la valeur gridcost renvoyée à une fonction d'itinéraire pour définir des barrières infranchissables ou des zones de traversée pondérées dans les calculs de plus court chemin basés sur une grille.

Syntaxe

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

Paramètres

Paramètre Type Description
barriers geomgrid[] Tableau de grilles géographiques auquel attribuer un coût de traversée.
cost smallint Coût de traversée à attribuer. Définissez cette valeur sur -1 pour marquer les grilles comme infranchissables. Toute autre valeur est interprétée comme une distance équivalente : le nombre de grilles sans obstacle dont le coût total de traversée équivaut au coût de franchissement d'une seule grille du tableau barriers.

Fonctionnement

La fonction ST_SetCost attribue un coût de traversée à un tableau de grilles spécifiées comportant des obstacles. Transmettez la valeur gridcost renvoyée aux fonctions d'itinéraire qui calculent les plus courts chemins à travers un réseau de grilles.

Le paramètre cost présente deux comportements distincts :

  • **-1 (infranchissable) :** Les grilles spécifiées ne peuvent pas être traversées. Les fonctions d'itinéraire considèrent les grilles figurant dans barriers comme des cellules bloquées et contournent ces zones.

  • Toute autre valeur (coût pondéré) : Le coût est exprimé sous forme de distance équivalente. La valeur du paramètre de coût pour les autres grilles est calculée en fonction de cette distance équivalente, ce qui revient à assimiler le coût de traversée d'une grille avec obstacles au coût de traversée d'un certain nombre de grilles sans obstacles. Par exemple, un coût de 5 signifie que le franchissement d'une grille dans barriers coûte autant que le franchissement de 5 grilles sans obstacle.

Exemple

Attribuez un coût de traversée de 1 à deux grilles :

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

Résultat :

("{01024002000001000000,0102410100000000}",1)

Étapes suivantes

Après avoir attribué les coûts à l'aide de ST_SetCost, transmettez les valeurs gridcost résultantes à une fonction d'itinéraire pour calculer les plus courts chemins à travers le réseau de grilles.