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 dansbarrierscomme 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
5signifie que le franchissement d'une grille dansbarrierscoû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.