Message posté par : Stéphane ROGER
----------------------------------------
Bonjour,
De mon côté, j'ai résolu le problème en installant la version 32bits au lieu de 64bits. J'utilise le Postgis 10.19.
Stéphane Paul
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=349366#p349366
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 : croy (cdrcroy(a)gmail.com)
----------------------------------------
Bonjour à tous,
J'essaie d'intégrer des données dans une base postgresql via un formulaire php.
J'arrive bien à intégrer des données dans UNE SEULE table via une requete INSERT INTO mais je n'arrive pas à insérer des données dans plusieurs tables reliées avec des clés étrangères via un seul formulaire :
exemple du code ci-dessous : je remplis la table geolive.prestation puis je récupère l''id_prestation pour remplir la table geolive.diagnostic. Ca fonctionne bien sous pgadmin mais ca ne fonctionne pas en php.
voici le php :
-----------------
Code :
$date_prestation = $_POST["date_prestation"];
$obs_prestation = $_POST["obs_prestation"];
$obs_conseil = $_POST["obs_conseil"];
$poids_recolte_tritu = $_POST["poids_recolte_tritu"];
$nb_litres = $_POST["nb_litres"];
$id_agent = $_POST["id_agent"];
$id_prop = $_POST["id_prop"];
$id_olivier = $_POST["id_olivier"];
$etat_sanitaire = $_POST["etat_sanitaire"];
$obs_diagnostic = $_POST["obs_diagnostic"];
$img_diag = $_POST["img_diag"];
$query = pg_query($connexion, "WITH ins1 AS
(INSERT INTO geolive.prestation (date_prestation,obs_prestation,obs_conseil,poids_recolte_tritu,nb_litres,id_agent,id_prop)
VALUES ('$date_prestation','$obs_prestation','$obs_conseil','poids_recolte_tritu','nb_litres','$id_agent','$id_prop') RETURNING id_prestation) INSERT INTO geolive.diagnostic (id_prestation, id_olivier, etat_sanitaire, obs_diagnostic, img_diag) SELECT id_prestation,'$id_olivier','$obs_diagnostic','$etat_sanitaire', '$obs_diagnostic', '$img_diag' FROM ins1;");
if ( $query ) {
echo(" La nouvelle prestation a bien été ajoutée !");
}
-----------------
Une erreur pourrait provenir du SELECT, il n'arriverait pas à aller chercher dans le formulaire pour remplir la table?
Si vous avez des pistes, je vous en remercie d'avance,
Cédric
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=348778#p348778
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.
----------------------------------------
Salut à tous :)
Je fais mes premiers pas avec Python et je tente de manipuler des données dans une base Spatialite.
Pas de souci avec la librairie sqlite3 pour gérer les données en SQL non spatial (SQLite).
Mais j'aimerais maintenant manipuler des données spatiales.
Des exemples que j'ai trouvés (ici par exemple (https://gis.stackexchange.com/questions/184850/how-to-use-spatialite-functi…) ), il faudrait charger l'extension comme ceci :
-----------------
Code :
connR = sqlite3.connect(':memory:')
connR.enable_load_extension(True)
#now we can load the extension
# depending on your OS and sqlite/spatialite version you might need to add
# '.so' (Linux) or '.dll' (Windows) to the extension name
#mod_spatialite (recommended)
connR.execute('SELECT load_extension("mod_spatialite")')
connR.execute('SELECT InitSpatialMetaData(1);')
# libspatialite
connR.execute('SELECT load_extension("libspatialite")')
connR.execute('SELECT InitSpatialMetaData();')
-----------------
Mais j'obtiens ce message d'erreur :
-----------------
Code :
connR.execute('SELECT load_extension("mod_spatialite")')
sqlite3.OperationalError: Le module spécifié est introuvable.
-----------------
(que ce soit avec #mod_spatialite ou # libspatialite )
J'ai bien vu cet échange (https://stackoverflow.com/questions/33619896/using-spatialite-with-64-bit-p…) qui semble relatif au problème, mais j'ai beau avoir téléchargé les dernières DLL dans les répertoires*, j'ai toujours les messages d'erreur liés au module introuvable.
Est-ce que quelqu'un serait à l'aise sur cette thématique, et pourrait m'aider ?
Merci à lui/elle !
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=348582#p348582
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)
----------------------------------------
Bonjour,
J'ai 2 tables.
Une des table avec les communes de France, et l'autre avec les équipements sportifs.
Je souhaiterais calculer combien j'ai de salles de sport par commune.
J'arrive évidemment à calculer ce nombre dans les communes qui ont une ou plusieurs salles de sport en utilisant ST_DWithin sur les géométries, mais comment renvoyer zéro dans les communes qui n'en ont pas ? Je pensais utiliser ST_DISJOINT mais je ne suis pas sûr que ce soit approprié ...
Voilà ma requête actuelle toute simple :
SELECT count(equip.id),
equip.nom_sdp,
equip.geom,
com.code_insee,
com.nom_comm,
FROM equipements AS equip,
communes AS com
WHERE ST_DWithin(equip.geom, com.geom,0)
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=348690#p348690
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 : cyprien987 (cyprien.peterano(a)gmail.com)
----------------------------------------
Bonjour,
Je voudrais savoir s'il était possible d'importer une vue matérialisée de Postgis vers QGIS avec un même style prédéfini.
Ie, à chaque fois que je voudrais importer ma vm dans QGIS, celle-ci aura le même style de représentation.
Merci pour votre éclairage !!!
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=348354#p348354
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)
----------------------------------------
Ma question va sûrement de soi pour beaucoup mais j'aimerais un éclaircissement en terme de bonnes pratiques sur ma problématique svp.
J'ai 2 tables de données. Dans l'une j'ai l'ensemble des communes d'un département avec leur code INSEE. Dans l'autre, j'ai des parcelles appartenant à plusieurs communes, et le code insee des communes de rattachement.
Dans QGIS, afin de joindre mes 2 tables, je fais une simple jointure sur le code insee.
Pour autant, dans PostGreSQL/PostGIS, puis-je opérer de la même façon avec une relation de 1 à N ou dois je préférablement créer une nouvelle colonne dans chaque table avec un id unique pour l'indexation, sur lequel je devrai faire ma jointure (et non sur le code insee donc) ?
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=348200#p348200
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 : Nat 064
----------------------------------------
Merci pour votre réponse.
Nous sommes plusieurs à alimenter cette table, je ne suis pas spécialiste, pensez-vous qu'une fonction-trigger pourrait régler notre problème.
Et si oui, connaissez-vous le contenu de cette fonction ?
Merci
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=346614#p346614
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
----------------------------------------
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