Message posté par : Nicolas Ribot
----------------------------------------
-----------------
franck06 écrit :
Merci à vous, je débute avec postgis (avant sur oracle) et qgis donc je repars de la base.
version postgresql9.5.12.2.
Oui nous nous repérons à l'adresse exacte c.a.d au numéri de rue qui possèdent un x,y.
merci à vous
-----------------
Ah ! Alors le lien vers le troncon ne sert pas vraiment dans ce cas, si ?
-----------------
Code :
select id_adresse, st_buffer(geom, 50) as cercle1, st_buffer(geom, 100) as cercle2
-----------------
Ou si vous voulez une seule geom avec deux cercles:
-----------------
Code :
select id_adresse, st_collect(st_buffer(geom, 50) , st_buffer(geom, 100)) as cercles
-----------------
Nico
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=324649#p324649
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 : Nicolas Ribot
----------------------------------------
Si ce sont bien les adresses qui doivent etre entourées, voici une fonction plpython, appelable en SQL, qui geocode une serie d'adresses et renvoie un ensemble de docs JSON avec champs remplis par le geocodeur (meme structure que le doc renvoyé par le geocodeur):
• La fonction prend une requete SQL qui doit renvoyer les champs ids, voie, ville, cp: ids est un tableau des id à géocoder, histoire de pouvoir faire un update sur la table (tableau car dans mon cas, j'avais une table avec plusieurs adresses identiques et je en voulais pas appeler le geocodeur plusieurs fois pour la meme adresse)
• Elle construit le csv en mémoire et l'envoie au géocodeur, puis retourne un objet jsonb par adresse géocodée, cet objet contient les lat/long de l'adresse:
-----------------
Code :
drop function geocode_add(query text);
create or replace function geocode_add(query text)
RETURNS setof jsonb as
$$
import csv
import io
from collections import OrderedDict
import requests
import json
with io.BytesIO(b"") as stream:
writer = csv.writer(stream, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
writer.writerow(["ids", "voie", "ville", "cp"])
for row in plpy.cursor(query):
# writes row in csv to csv stream
writer.writerow([row['ids'], row['voie'], row['ville'], row['cp']])
requests_session = requests.Session()
kwargs = {
'data': OrderedDict([
('columns', ['voie', 'ville', 'cp']),
('postcode', 'cp')
]),
'method': 'post',
'files': OrderedDict([
('data', ('addpg.csv',stream.getvalue()))
]),
'stream': True,
'url': 'https://api-adresse.data.gouv.fr/search/csv/'
}
response = requests_session.request(**kwargs)
for row in csv.DictReader(response.text.encode('utf-8').splitlines()):
yield json.dumps(row)
$$ language plpythonu VOLATILE;
-----------------
La fonction s'utilise comme ceci pour extraire les infos des documents retournés:
-----------------
Code :
select t->>'ids' as ids, t->>'result_label' as adr,
st_astext(st_transform(
st_setSRID(
st_makePoint((t->>'longitude')::float, (t->>'latitude')::float), 4326), 2154)) as geom
from geocode_add($$select '{1}'::text[] as ids, '2, place du capitole' as voie, 'TOulouse' as ville, '31000' as cp$$) as t;
ids adr geom
['1'] Place du Capitole 31000 Toulouse POINT(574291.035317137 6279607.04961392)
-----------------
Nico
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=324647#p324647
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 : franck06
----------------------------------------
Merci à vous, je débute avec postgis (avant sur oracle) et qgis donc je repars de la base.
version postgresql9.5.12.2.
Oui nous nous repérons à l'adresse exacte c.a.d au numéri de rue qui possèdent un x,y.
merci à vous
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=324646#p324646
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 : T. Rossini
----------------------------------------
-----------------
Citation :
(ah je vois que tumasgiu a répondu déjà wink )
-----------------
Oui, et comme d'habitude trop vite,
j'avais compris que c'était le tronçon qui devait être entouré...
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=324645#p324645
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 : Nicolas Ribot
----------------------------------------
Bonjour,
Si les adresses ne disposent pas d'une géométrie ponctuelle exacte, il va falloir que vous géocodiez ces adresses pour avoir ces points, sinon vous ne pourrez pas créer des cercles centrés sur les adresses
(pour créer ces cercles: st_buffer(geom_adresse, 50) et st_buffer(geom_adresse, 100))
Vous pouvez géocoder des adresses avec le géocodeur data.gouv.fr en ligne (https://adresse.data.gouv.fr/csv). Ca peut se faire depuis PG avec une fonction python ou un FDW qui se connecte au géocodeur et envoie les adresses de votre table.
(ah je vois que tumasgiu a répondu déjà ;) )
Nicolas
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=324644#p324644
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 : T. Rossini
----------------------------------------
Salut,
si votre version de postgis le permet vous pouvez
utiliser la fonction ST_MinimumBoundingCircle, au nom
assez explicite.
Ensuite avec la fonction st_Buffer, vous pourrez faire "gonfler"
vos cercles.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=324643#p324643
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 : franck06
----------------------------------------
Bonjour à tous je souhaite créer une requête postgis sur nos données adresses pour utilisation QGIS en mode web.
Chaque numéro de rue est relié à un tronçon de voie par un identifiant commun.
Le but est que lorsque une adresse est recherchée, lors du centrage (car dans un environnement tablette) l’adresse trouvée soit entourée de deux disques concentriques de couleurs différentes matérialisant 50 mètres et 100 mètres.
Nom de la table : point_routier, le champ de l adresse (du numéro) NOM, le champ pour faire correspondance avec la voie : IDENTIFIANT
merci de votre aide
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=324642#p324642
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 : Romary Munier
----------------------------------------
Merci pour vos réponses. Rassurez-vous c'est une base de test. Et c'est le seul emplacement qui fonctionnait après moultes essais ailleurs...
En essayant d'autres manip voilà le résultat... c'est toujours le même.
-----------------
Code :
C:\Program Files\PostgreSQL\9.6\bin>initdb -D "C:\tmp\pgdata" -U postgres -W
Les fichiers de ce cluster appartiendront à l'utilisateur « admin.fbe ».
Le processus serveur doit également lui appartenir.
L'instance sera initialisée avec la locale « French_France.1252 ».
L'encodage par défaut des bases de données a été configuré en conséquence
avec « WIN1252 ».
La configuration de la recherche plein texte a été initialisée à « french ».
Les sommes de contrôles des pages de données sont désactivées.
Saisissez le nouveau mot de passe du super-utilisateur :
Saisissez-le à nouveau :
correction des droits sur le répertoire existant C:/tmp/pgdata... initdb : n'a pas pu modifier les droits du répertoire « C:/tmp/pgdata » : Permission denied
C:\Program Files\PostgreSQL\9.6\bin>
-----------------
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=324620#p324620
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 : zack
----------------------------------------
Merci pour votre réponse qui m'a orienté vers la solution. J'ai ajouté un SET CLIENT_ENCODING TO 'UTF8' ; à mon script SQL et ça fonctionne parfaitement.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=324578#p324578
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 : Nicolas Ribot
----------------------------------------
Bonjour,
Houla, c'est joueur de définir un nouveau tablespace sur l'emplacement des data PG ;)
je viens de tester sous windows 10, admin de la machine: repertoire c:\tmp\pgdata créé avec exploreur,
puis dans psql:
-----------------
Code :
nicolas=# create tablespace testts location 'C:\\tmp\\pgdata';
CREATE TABLESPACE
nicolas=# create table toto(id int) tablespace testts;
CREATE TABLE
nicolas=#
-----------------
Nicolas
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=324568#p324568
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