Message posté par : neskuik01
----------------------------------------
Bonjour
J'ai une couche de points que je cherche à joindre à une couche de surface sur la base d'une distance de 1000m ,
J'ai utilisé st_dwithin(b.geom, a.geom,1000) le souci c'est que du coup un point peut se retrouver dans plusieurs polygones, j'ai donc rajouté limit 1 mais je pense que j'ai pas mis la limite au bon endroit ( je me retrovue que avec 1 jointure )
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=347977#p347977
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
Message posté par : Olivier Pompier (pompierolivier(a)hotmail.com)
----------------------------------------
Bonjour,
N'ayant pas trouvé d'équivalent, je me permets de déposer ce script permettant d'insérer des données (attributs + geometrie)issus d'un shape ou d'un autre format vecteur vers une base de données PG via psycopg2.
Dans mon cas , je suis passé par Python pour intégration dans un plugin.
C'est écrit avec peu d'élégance mais ça a le mérite d'être fonctionnel, toute suggestion de correction/amélioration est bienvenue
-----------------
Code :
try:
connection = psycopg2.connect(user="postgres",
password="postgres",
host="localhost",
port="5432",
database="db")
# Create a cursor to perform database operations
cursor = connection.cursor()
insertquery = "INSERT INTO table (champ1, champ2, geom) VALUES {} ".format(self.valSql(lyr))
cursor.execute(insertquery)
connection.commit()
except (Exception, Error) as error:
self.iface.messageBar().pushMessage('Error while connecting to PostgreSQL')
finally:
if (connection):
cursor.close()
connection.close()
#
def valSql(lyr):
''' retourne les valeurs placées dans la requête INSERT INTO '''
l = []
for feat in lyr.getFeatures():
l.append('(')
l.append(str((feat['CHAMP1'])) + ',')
l.append(str((feat['CHAMP2'])) + ',')
l.append('(ST_GeomFromText (\'' + feat.geometry().asWkt() + '\', 32631)))') # On assigne le SCR EPSG:32631 ou autre
l.append(',')
liste_vers_str_geom = ''.join(str(e) for e in l)
return liste_vers_str_geom[:-1] # avec le -1 on se débarasse de la virgule finale
-----------------
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=347441#p347441
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
Message posté par : Hippo (jerome.hippolyte(a)yahoo.fr)
----------------------------------------
Bonsoir,
J'ai une table dans PostGreSQL qui liste les départements français et les communes composant chacun des départements, ainsi que les populations municipales.
Je souhaiterais que ma requête retourne pour chaque département les 5 communes ayant le plus d'habitants.
J'ai bien essayé quelquechose comme :
SELECT * FROM table ORDER BY departement,population DESC FETCH FIRST 5 ROWS ONLY
Mais la requête me renvoie évidemment les 10 premières lignes de mon tableau et non les 5 premières lignes pour chaque département ...
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=347903#p347903
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
Message posté par : Sylvain M.
----------------------------------------
Bonjour,
J'ai une couche de points (adresses) et une coche de polygones (zones d'interventions), qui sont en relation attributaire (1-1) via un identifiant.
J'arrive à calculer la distance minimale entre le point et le polygone joint via cette requête :
-----------------
Code :
SELECT pt.id
st_distance(pt.geom, poly.geom) as dist_min
FROM pt
JOIN poly ON pt.id = poly.id
-----------------
Mais j'aimerais récupérer les coordonnées du point du polygone correspondant à cette plus courte distance, et ainsi pouvoir construire la ligne [1] entre le point et le polygone.
Est-ce quelqu'un aurait une idée de requête pour récupérer ce point de distance minimale entre le polygone et le point, sur le périmètre du polygone ?
Merci pour vos conseils ! :D
[1] avec un ST_Makeline() :
-----------------
Code :
st_makeLine(pt.geom, /* geom du point recherché */ )
-----------------
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=347887#p347887
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
Message posté par : neskuik01
----------------------------------------
Je suis tombé sur la fonction rédigé par tumasgiu : http://sqlfiddle.com/#!17/53864/4
J'ai juste du mal à comprendre à quoi correspond start s et end e ? s'agit-il des extrémités aval et amont d'un réseau ?
Ou start serait les segment dont st_equals(st_startpoint(t.geom), st_endpoint(t.geom)) = FALSE
et
END st_equals(st_endpoint(t.geom), st_startpoint(t.geom)) is FALSE ?
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=345945#p345945
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
Message posté par : TheoSB (theo.murcia.pro(a)gmail.com)
----------------------------------------
Bonjour,
Je suis dans la même situation que vous, avez-vous trouvé une solution ?
Merci d'avance. Théo
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=338055#p338055
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