Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !

10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …

Faire un don 

Retrouver nos membres bienfaiteurs

#1 Tue 21 June 2022 11:27

Tan85
Participant occasionnel
Date d'inscription: 20 Sep 2019
Messages: 23

Déplacement de points superposés dans une vue avec PostGIS

Bonjour,
dans ma base de données PostgreSQL/PostGIS j'ai une vue avec des points.
Certains points sont superposés, ce qui est gênant pour la représentation cartographique. J'aimerais pouvoir les écarter légèrement comme quand dans QGIS ou utilise l'outil "Déplacement de points".
Quelqu'un aurait une idée pour faire ça dans une vue ?

Merci beaucoup
Bonne journée

Hors ligne

 

#2 Tue 21 June 2022 12:04

EliseWi
Participant occasionnel
Date d'inscription: 16 May 2022
Messages: 16

Re: Déplacement de points superposés dans une vue avec PostGIS

Bonjour,

Avez-vous essayé d'utiliser ST_translate ? En mettant une condition sur certains attributs pour que seuls certains points bougent.
Ou vous pouvez aussi appliquer le style "Déplacement de points" et directement l'enregistrer dans votre base Postgres.

Bonne journée !

Hors ligne

 

#3 Tue 21 June 2022 15:05

Tan85
Participant occasionnel
Date d'inscription: 20 Sep 2019
Messages: 23

Re: Déplacement de points superposés dans une vue avec PostGIS

J'ai trouvé cette solution sur le web :

SELECT ST_MakePoint(
         ST_X(geom) + rad*SIND(ang),
         ST_Y(geom) + rad*COSD(ang)
       ) AS geom
FROM   (
    SELECT random() * 360.0 AS ang,
           random() * <radius> AS rad,
           geom
    FROM   <points>
) q


Où "radius" c'est le rayon autour du point d'origine dans lequel on veut disperser les points et "points" est la table où geom se trouve.

Merci en tout cas !!

Hors ligne

 

Pied de page des forums

Powered by FluxBB