Message posté par : T. Rossini
----------------------------------------
-----------------
Citation :
1. Qu'elle serait la formule si je fais la même chose en partant de l'origine ?
Est-ce que c'est ça : T_LineInterpolatePoint(geom, (d / st_Length(geom))
-----------------
Oui.
-----------------
Citation :
2. Comment faire si je veux créer plusieurs points sur cette même ligne à partir de cette
fonction ?
-----------------
Si vous voulez interpoler plusieurs points avec la même distance entre eux :
https://postgis.net/docs/ST_LineInterpolatePoints.html
Si vous voulez avoir plusieurs champs représentant plusieurs points, vous pouvez juste
répéter l'appel à la fonction.
Si vous voulez créer un multipoint, vous utilisez une fonction telle que st_collect ou
st_union,
qui possèdent toutes deux une définition ayant comme un argument un tableau de geometries
:
-----------------
Code :
St_Collect(ARRAY[ST_LineInterpolatePoint(geom, 1 - (d / st_Length(geom)),
ST_LineInterpolatePoint(geom, 1 - (e / st_Length(geom)), ...])
-----------------
-----------------
Citation :
3. Comment faire avec cette fonction, dans le cas où j'ai plusieurs tronçons, et que
mes points ne sont associés qu'à certains tronçons. Je présume que ma base de données
qui correspondra à mes points doit contenir le numéro du tronçon et la distance. Et
comment lui signifier dans la fonction
-----------------
Il faut joindre vos deux tables pour créer l'ensemble des points dans une sous
requête
puis utiliser la version agrégat de st_collect pour collecter tout les points par
tronçon.
Avec un schema comme suit :
-----------------
Code :
CREATE TABLE tronçon(numero_tronçon int, geom geometry);
CREATE TABLE point(distance d double, numero_tronçon int);
-----------------
La requête
-----------------
Citation :
SELECT
numero_tronçon,
st_collect(the_point) AS multi_points
FROM(
SELECT
t.numero_tronçon,
ST_LineInterpolatePoint(geom, 1 - (d / st_Length(geom)) AS the_point
FROM
tronçon AS t
JOIN
point AS p
ON
t.numero_tronçon = p.numero_tronçon
) AS sous_requete
GROUP BY
numero_tronçon
;
-----------------
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=321255#p321255
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net