Message posté par : Mathieu Denat
----------------------------------------
Bonjour,
Sympathique exercice du dimanche!
Je vous propose d'utiliser le gestionnaire de BDD (Base de données > Gestionnaire
BD), puis de lancer
Couches virtuelles > couches du projet > <votre couche>.
Dans mon exemple, la couche d'entrée se nomme ligne.
Pour extraire le milieu de vos segments vous pouvez utiliser la fonction
St_Line_Interpolate_Point est conçue pour ça:
-----------------
Code :
select
st_line_interpolate_point(geometry,0.5) geom,
id
from ligne
-----------------
Plus d'informations ici:
http://postgis.net/docs/ST_LineInterpolatePoint.html
Pour la 2e question, il faut fixer un angle et une distance (voir les commentaires dans le
code ci-dessous).
Script adapté de ce poste (
https://georezo.net/forum/viewtopic.php?pid=353719#p353719)
-----------------
Code :
with tmp as
(
SELECT 45 AS angle, --fixer l'angle, ici 45°
10000 AS rayon, --fixer la distance, ici 1km
id,
force_rhr(geometry) geom --on fixe la fin de ligne toujours du même côté, pas
forcément utile selon la situation
FROM ligne
)
SELECT
setsrid(
make_point(
X(st_line_interpolate_point(geom,1)) + rayon*sin(angle), --0 pour le départ de la
ligne, 1 pour l'arrivée
Y(st_line_interpolate_point(geom,1)) + rayon*cos(angle) --0 pour le départ de la ligne,
1 pour l'arrivée
)
,2154) --fixer la projection
AS geom,
id
FROM tmp
-----------------
Pour la liste des fonctions de qgis, c'est par ici:
https://docs.qgis.org/3.22/fr/docs/user_manual/expressions/functions_list.h…
Sur la capture en PJ:
- ligne pour la couche en entrée
- milieu pour le milieu des segments
- point pour les points situés à 1km et 45° depuis le dernier point de chaque ligne
----------------------------------------
Ce message est accompagné de fichiers, pour les télécharger, suivre le lien ci-dessous.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=354165#p354165
Pour y répondre : qgis_fr(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