Pages: 1
- Sujet précédent - [PostGis] La fonction ST_makevalid (geometry) n'existe pas - Sujet suivant
#1 Mon 05 January 2015 14:34
- Vincent.lametro
- Juste Inscrit !
- Date d'inscription: 8 Dec 2014
- Messages: 9
[PostGis] La fonction ST_makevalid (geometry) n'existe pas
Bonjour à tous,
Je tente d'intégrer le cadastre dans une base de donnée PostGis via Qqis et le module cadastre.
Je suis en :
- QGIS 2.4.0 Chugiak
- PostGres 8.4
- PostGis 1.4 edit 1.0 en fait ...
Et j'ai la série de messages d'erreurs suivante :
Code:
ERREUR: la fonction st_makevalid(geometry) n'existe pas LINE 6: ...000'), 'YYYYMMDD'), ST_Multi(ST_CollectionExtract(ST_MakeVal... ^ HINT: Aucune fonction ne correspond au nom donné et aux types d'arguments. Vous devez ajouter des conversions explicites de type.
Code:
-- geo_commune: utilisation de max et non distinct on pour compatibilite sqlite INSERT INTO "public".geo_commune ( geo_commune, annee, object_rid, idu, tex2, creat_date, update_dat, geom, lot) SELECT '2014'||SUBSTRING(idu,1,3), '2014', object_rid, idu, tex2, to_date(to_char(creat_date,'00000000'), 'YYYYMMDD'), to_date(to_char(update_date,'00000000'), 'YYYYMMDD'), ST_Multi(ST_CollectionExtract(ST_MakeValid(geom),3)), '059' FROM "public".commune_id JOIN (SELECT idu as t_idu, MAX(update_date) AS t_update_date, MAX(creat_date) AS t_creat_date FROM "public".commune_id GROUP BY idu, tex2) t2 ON idu = t2.t_idu AND update_date = t2.t_update_date AND creat_date = t2.t_creat_date GROUP BY tex2, idu, update_date, creat_date, geom, object_rid ORDER BY tex2, idu, update_date DESC, creat_date DESC
Code:
Traceback (most recent call last): File "C:/Users/christophe_v/.qgis2/python/plugins\cadastre\cadastre_dialogs.py", line 1059, in processImport qi.endImport() File "C:/Users/christophe_v/.qgis2/python/plugins\cadastre\cadastre_import.py", line 787, in endImport shutil.rmtree(rep) File "C:\PROGRA~1\QGISCH~1\apps\Python27\lib\shutil.py", line 252, in rmtree onerror(os.remove, fullname, sys.exc_info()) File "C:\PROGRA~1\QGISCH~1\apps\Python27\lib\shutil.py", line 250, in rmtree os.remove(fullname) WindowsError: [Error 5] Acc�s refus: u'W:\\SIT\\referentiels\\Cadastre\\2014\\BDDATA_VERIF\\temp\\cad_edigeo_source_mbhpto\\edigeoGK059000AA01.tar.bz2' Version de Python : 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)] Version de QGIS : 2.4.0-Chugiak Chugiak, 8fdd08a Chemin vers Python : ['C:/PROGRA~1/QGISCH~1/apps/qgis/./python/plugins\\processing', 'C:/PROGRA~1/QGISCH~1/apps/qgis/./python', u'C:/Users/christophe_v/.qgis2/python', u'C:/Users/christophe_v/.qgis2/python/plugins', 'C:/PROGRA~1/QGISCH~1/apps/qgis/./python/plugins', 'C:\\PROGRA~1\\QGISCH~1\\bin\\python27.zip', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27\\DLLs', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27\\lib', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27\\lib\\plat-win', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27\\lib\\lib-tk', 'C:\\PROGRA~1\\QGISCH~1\\bin', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27\\lib\\site-packages', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27\\lib\\site-packages\\PIL', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27\\lib\\site-packages\\jinja2-2.7.2-py2.7.egg', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27\\lib\\site-packages\\markupsafe-0.23-py2.7-win-amd64.egg', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27\\lib\\site-packages\\pytz-2012j-py2.7.egg', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27\\lib\\site-packages\\win32', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27\\lib\\site-packages\\win32\\lib', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27\\lib\\site-packages\\Pythonwin', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27\\lib\\site-packages\\Shapely-1.2.18-py2.7-win-amd64.egg', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27\\lib\\site-packages\\six-1.3.0-py2.7.egg', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27\\lib\\site-packages\\wx-2.8-msw-unicode', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27\\lib\\site-packages\\xlrd-0.9.2-py2.7.egg', 'C:\\PROGRA~1\\QGISCH~1\\apps\\Python27\\lib\\site-packages\\xlwt-0.7.5-py2.7.egg', 'C:\\Users\\christophe_v\\.qgis2\\python\\plugins\\cadastre/forms', 'C:\\Users\\christophe_v\\.qgis2\\python\\plugins\\mmqgis/forms', 'C:\\PROGRA~1\\QGISCH~1\\apps\\qgis\\python\\plugins\\fTools\\tools']
On dirait qu'il appel une fonction qui n'existe pas dans ma version de PostGis. La fonction st_makevalid n'apparait que dans la version 2.0. Et on dirait aussi qu'il bug sur le format de la date.
Mais impossible de trouver comment résoudre tout cela, d'où ma demande de coups de pouce ;-)
Merci beaucoup !
PS : je précise l'import en spatialite fonctionne parfaitement.
Dernière modification par Vincent.lametro (Mon 05 January 2015 15:15)
Hors ligne
#2 Mon 05 January 2015 15:00
Re: [PostGis] La fonction ST_makevalid (geometry) n'existe pas
Bonjour,
en effet, la fonction recherchée n'existe pas dans votre ancienne version de PostGIS. Si vous ne pouvez pas mettre votre serveur de base de données à niveau, vous pouvez créer dasn votre base de donnée une fonction du même nom.
Par exemple la fonction proposée ci-dessous, trés utilisée avant l'existence de st_makevalid :
http://www.sogis1.so.ch/sogis/dl/postgi … ometry.sql
Pensez bien à la renommer st_makevalid.
Vous n'êtes pas à l’abri que d'autres fonctions utilisées par le plugin n'existe pas dans votre version de PostGis ou de PostgreSQL.
Dernière modification par MathieuB (Mon 05 January 2015 15:01)
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#3 Mon 05 January 2015 15:07
Re: [PostGis] La fonction ST_makevalid (geometry) n'existe pas
Bonjour,
PostGIS 1.4 : Je crois que j'étais pas né à l'époque où elle est sortie
Plus sérieusement, pourquoi ne pas penser à la mettre à jour au moins à la version 1.5 ? Voire à la 2.x ? Idem pour PostgreSQL, passer à une version plus récente vous donnera une amélioration des performances **très** sensible.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#4 Mon 05 January 2015 15:14
- Vincent.lametro
- Juste Inscrit !
- Date d'inscription: 8 Dec 2014
- Messages: 9
Re: [PostGis] La fonction ST_makevalid (geometry) n'existe pas
Merci mathieu, je vai regarder ça voir si cela fonctionne !
Yves : Ne rigolez pas j'ai fait une erreur de frappe on est 1.0 pour Postgis ... nous sommes entrain de regarder pour migrer en 1.5 ;-)
Merci de votre aide.
Hors ligne
#5 Mon 05 January 2015 16:11
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: [PostGis] La fonction ST_makevalid (geometry) n'existe pas
Bonjour,
Je rejoins Yves pour vous inviter à installer une version récente: ca se fait facilement, ainsi que la migration d'éventuelles anciennes données.
Vous perdrez moins de temps, il me semble, que de faire marcher une version aussi ancienne avec des outils SIG récents.
Nicolas
Hors ligne
Pages: 1
- Sujet précédent - [PostGis] La fonction ST_makevalid (geometry) n'existe pas - Sujet suivant