#1 Thu 25 October 2018 18:14
- Raph Sorlin
- Juste Inscrit !
- Lieu: Saint-Paul
- Date d'inscription: 25 Oct 2018
- Messages: 5
Lizmap - QGIS Server et cadastre
Bonjour à vous,
Après moult tentatives pour trouver une solution à mon problème solitairement, je pense que le temps est venu de lancer un appel à l’aide !
J’officie en collectivité en tant que chargé de mission SIG et j’utilise Lizmap pour ouvrir le parcellaire cadastral (avec MAJIC 3) aux communes membres de ma communauté de communes.
L’outil est hébergé sur un serveur Debian 9.5 (chez OVH), avec Nginx, Php7, QGIS Server, PostgreSQL 10.5 – PostGis 2.4 et QGIS Las Palmas. Et j’ai bien sûr le plugin cadastre pour le projet en question.
Le problème survient lors de l’édition d’un relevé parcellaire, le PDF n’est pas édité et la page m’affiche « Erreur de création du relevé » suivie, après un retour sur la page d’accueil des projets Lizmap, d’un « QGIS Server has not returned expected response ». J’avais eu un problème similaire auparavant en désactivant le WFS de la clé primaire de la table parcelle sur QGIS, mais ce n’est pas le cas cette fois-ci.
Je me suis donc redirigé vers le log de QGIS Server, mais là j’avoue n’avoir rien vue de particulier. N’ayant pas un niveau de compréhension élevé de ce langage, je vous le transmets.
1°) Lorsque que je clique sur une parcelle :
Code:
[10481][09:29:07] WFSFilter.responseComplete [10481][09:29:07] Sending HTTP response [10482][09:29:11] inserting pair BBOX // 287847.894027,5282930.813173,288976.534523,5283473.635507 into the parameter map [10482][09:29:11] inserting pair CRS // EPSG:3857 into the parameter map [10482][09:29:11] inserting pair EXCEPTIONS // application/vnd.ogc.se_inimage into the parameter map [10482][09:29:11] inserting pair FEATURE_COUNT // 10 into the parameter map [10482][09:29:11] inserting pair FI_LINE_TOLERANCE // 10 into the parameter map [10482][09:29:11] inserting pair FI_POINT_TOLERANCE // 20 into the parameter map [10482][09:29:11] inserting pair FI_POLYGON_TOLERANCE // 5 into the parameter map [10482][09:29:11] inserting pair FORMAT // image/png into the parameter map [10482][09:29:11] inserting pair HEIGHT // 909 into the parameter map [10482][09:29:11] inserting pair I // 584 into the parameter map [10482][09:29:11] inserting pair INFO_FORMAT // text/xml into the parameter map [10482][09:29:11] inserting pair J // 336 into the parameter map [10482][09:29:11] inserting pair LAYERS // ligne,point,Parcelles into the parameter map [10482][09:29:11] inserting pair MAP // /srv/data/cadastre/cadastre.qgs into the parameter map [10482][09:29:11] inserting pair QUERY_LAYERS // ligne,point,Parcelles into the parameter map [10482][09:29:11] inserting pair REQUEST // GetFeatureInfo into the parameter map [10482][09:29:11] inserting pair SERVICE // WMS into the parameter map [10482][09:29:11] inserting pair STYLES // default,default,default into the parameter map [10482][09:29:11] inserting pair VERSION // 1.3.0 into the parameter map [10482][09:29:11] inserting pair WIDTH // 1890 into the parameter map [10482][09:29:11] WFSFilter.requestReady [10482][09:29:11] BBOX // 287847.894027,5282930.813173,288976.534523,5283473.635507 [10482][09:29:11] CRS // EPSG:3857 [10482][09:29:11] EXCEPTIONS // application/vnd.ogc.se_inimage [10482][09:29:11] FEATURE_COUNT // 10 [10482][09:29:11] FI_LINE_TOLERANCE // 10 [10482][09:29:11] FI_POINT_TOLERANCE // 20 [10482][09:29:11] FI_POLYGON_TOLERANCE // 5 [10482][09:29:11] FORMAT // image/png [10482][09:29:11] HEIGHT // 909 [10482][09:29:11] I // 584 [10482][09:29:11] INFO_FORMAT // text/xml [10482][09:29:11] J // 336 [10482][09:29:11] LAYERS // ligne,point,Parcelles [10482][09:29:11] MAP // /srv/data/cadastre/cadastre.qgs [10482][09:29:11] QUERY_LAYERS // ligne,point,Parcelles [10482][09:29:11] REQUEST // GetFeatureInfo [10482][09:29:11] SERVICE // WMS [10482][09:29:11] STYLES // default,default,default [10482][09:29:11] VERSION // 1.3.0 [10482][09:29:11] WIDTH // 1890 [10482][09:29:11] enable on the fly projection [10482][09:29:11] mMapRenderer->extent(): 287847.8940267823054455,5282930.8131729997694492 : 288976.5345232177060097,5283473.6355069996789098 [10482][09:29:11] mMapRenderer width = 1890 height = 909 [10482][09:29:11] mMapRenderer->mapUnitsPerPixel() = 0.597164 [10482][09:29:11] Calculating layerset using 3 layers, 3 styles and CRS WGS 84 / Pseudo Mercator [10482][09:29:11] Trying to get layer ligne//default [10482][09:29:11] Checking layer: ligne [10482][09:29:11] Trying to get layer point//default [10482][09:29:11] Checking layer: point [10482][09:29:11] Trying to get layer Parcelles//default [10482][09:29:11] Checking layer: Parcelles [10482][09:29:11] Info format is:text/xml [10482][09:29:11] Checking byte array is ok to set... [10482][09:29:11] Byte array looks good, setting response... [10482][09:29:11] WFSFilter.responseComplete [10482][09:29:11] Sending HTTP response
2°) Lorsque que je demande un relevé parcellaire :
Code:
[10481][09:31:12] inserting pair FEATUREID // Parcelles.28889 into the parameter map [10481][09:31:12] inserting pair GEOMETRYNAME // none into the parameter map [10481][09:31:12] inserting pair MAP // /srv/data/cadastre/cadastre.qgs into the parameter map [10481][09:31:12] inserting pair OUTPUTFORMAT // GeoJSON into the parameter map [10481][09:31:12] inserting pair PROPERTYNAME // geo_parcelle into the parameter map [10481][09:31:12] inserting pair REQUEST // GetFeature into the parameter map [10481][09:31:12] inserting pair SERVICE // WFS into the parameter map [10481][09:31:12] inserting pair TYPENAME // Parcelles into the parameter map [10481][09:31:12] inserting pair VERSION // 1.0.0 into the parameter map [10481][09:31:12] WFSFilter.requestReady [10481][09:31:12] Info format is:GeoJSON [10481][09:31:12] Sending HTTP response [10481][09:31:12] Sending HTTP response [10481][09:31:12] Sending HTTP response [10481][09:31:12] WFSFilter.responseComplete [10481][09:31:12] Sending HTTP response [10481][09:31:12] Trying to send out an invalid response [10482][09:31:12] inserting pair LAYER // Parcelles into the parameter map [10482][09:31:12] inserting pair MAP // /srv/data/cadastre/cadastre.qgs into the parameter map [10482][09:31:12] inserting pair PARCELLE // 2018660107000AX0050 into the parameter map [10482][09:31:12] inserting pair REQUEST // createPdf into the parameter map [10482][09:31:12] inserting pair SERVICE // CADASTRE into the parameter map [10482][09:31:12] inserting pair TYPE // parcelle into the parameter map [10482][09:31:12] WFSFilter.requestReady [10482][09:31:12] Checking byte array is ok to set... [10482][09:31:12] Byte array looks good, setting response... [10482][09:31:12] WFSFilter.responsoriale [10482][09:31:12] Sending HTTP response
Le log de PostgreSQL ne donne pas d’erreur sur le schéma de BDD.
Ce blocage est arrivé peu de temps après le passage à la version 2018 des données cadastrales (MAJIC et PCI vecteur) et au changement de ma clé API de l’IGN.
L’autre incompréhension vient aussi de mon hébergement. J’ai remonté une sauvegarde de mon serveur postérieur à ce problème, et il est quand même survenue avec celle-ci.
Les logiciels sont à jour et fonctionnent pour les autres projets, de même que l’impression de carte en PDF.
Si vous avez eu un problème similaire ou si vous avez des pistes, je suis tout ouïe !
Merci d’avance
Raphaël Sorlin
Chargé de Mission SIG
Hors ligne
#2 Fri 26 October 2018 10:32
- mfangain
- Participant actif
- Date d'inscription: 12 Jun 2012
- Messages: 88
Re: Lizmap - QGIS Server et cadastre
Bonjour,
Si je comprends bien, sur d'autres projets l'édition des mises en page fonctionne mais pas sur ce projet.
Y a-t-il d'autres mises en pages prédéfinies sur ce projet? Si oui, fonctionnent-elles?
Votre mise en page comporte-t-elle un atlas, des tables attributaires? Si oui, l'édition fonctionne-t-elle depuis votre projet QGIS? Si le problème se produit depuis la mise à jour des données, il se peut que le problème soit lié : il arrive souvent que la structuration des données cadastrales change d'une année à l'autre. Dans ce cas, l'édition de tables attributaires pourrait être perturbée.
Voici quelques pistes de réflexion...
MFANGAIN
Hors ligne
#3 Fri 26 October 2018 13:54
- Raph Sorlin
- Juste Inscrit !
- Lieu: Saint-Paul
- Date d'inscription: 25 Oct 2018
- Messages: 5
Re: Lizmap - QGIS Server et cadastre
Bonjour,
Merci pour votre message.
Pour vous répondre point par point :
- Le module cadastre de Lizmap permet d'éditer des relevés de propriété pour chaque parcelle. Cette option marche très bien en local, sur QGIS, avec le nouveau cadastre (édition PDF de relevé). Les autres projets ont seulement l'impression de plan format PDF ; l'option marche très bien.
- Il n'y a pas d'atlas sur le projet. Il y a bien une table attributaire définie dans Lizmap, il s'agit de la table Parcelle (option que j'ai tournée dans tous les sens pour trouver une possible cause à ce problème). Elle n'est cependant pas éditable. Les seuls éléments éditables sont extérieurs au schéma cadastre.
- J'ai refait le projet QGIS dans sa totalité pour voir si le problème ne venait pas du changement de structuration du cadastre (et donc que l'ancien projet ne convenait plus). Cela n'a malheureusement rien changé.
Raphaël
Raphaël Sorlin
Chargé de Mission SIG
Hors ligne
#4 Fri 23 November 2018 12:28
- Raph Sorlin
- Juste Inscrit !
- Lieu: Saint-Paul
- Date d'inscription: 25 Oct 2018
- Messages: 5
Re: Lizmap - QGIS Server et cadastre
Bonjour,
Une nouvelle piste par le log de Lizmap :
Code:
2018-11-23 12:12:43 notice 2018-11-23 12:12:43 [8] Trying to get property of non-object /srv/lizmap_web_client/lizmap/lizmap-modules/cadastre/controllers/service.classic.php 62 2018-11-23 12:12:43 warning 2018-11-23 12:12:43 [2] Invalid argument supplied for foreach() /srv/lizmap_web_client/lizmap/lizmap-modules/cadastre/controllers/service.classic.php 62
La ligne 62 est entouré du script suivant :
Code:
[...] // Get created PDFs $data = $result->data; $pdfs = array(); $tok = Null; foreach( $data->data->tokens as $token ){ //ligne 62 $tok = $token; $request = new lizmapCadastreRequest( $p, array( 'service'=>'CADASTRE', 'request'=>'getPdf', 'token'=> $token ) ); $result = $request->process(); if( $result->mime != 'application/pdf'){ continue; } $pdfs[$token] = $result->data; } if( count($pdfs) == 1 ){ $rep = $this->getResponse('binary'); $rep->mimeType = 'application/pdf'; $rep->content = $pdfs[$tok]; $rep->doDownload = false; $rep->outputFileName = 'cadastre_' . $tok . '.pdf'; }else if(count($pdfs) == 0){ $rep = $this->getResponse('text'); $rep->content = 'Erreur de création du relevé.'; return $rep; [...]
Quelqu'un pourrait-il m'expliquer ce script ? Merci !
Dernière modification par Raph Sorlin (Fri 23 November 2018 13:23)
Raphaël Sorlin
Chargé de Mission SIG
Hors ligne
#5 Mon 26 November 2018 08:53
- chanteclair
- Participant assidu
- Lieu: Pau
- Date d'inscription: 3 Jan 2007
- Messages: 726
Re: Lizmap - QGIS Server et cadastre
Bonjour,
Malheureusement pas de réponse à votre problème, mais je vous encourage à déposer votre question sur le github de 3Liz :
https://github.com/3liz/lizmap-web-client/issues
Vous aurez certainement la réponse adéquate.
Bonne journée.
Hors ligne
#6 Mon 26 November 2018 15:40
- Raph Sorlin
- Juste Inscrit !
- Lieu: Saint-Paul
- Date d'inscription: 25 Oct 2018
- Messages: 5
Re: Lizmap - QGIS Server et cadastre
Merci pour votre réponse.
Malheureusement, la page Github est plus utilisée pour signaler une erreur dans le code.
De plus, le script en question (qui fait partie du module cadastre) n'est pas présent dans leur Github à ce jour.
Mon questionnement porte plus sur ce que représentent '$pdfs' et '$token' dans la fonction array (), en sachant que le log Qgis Server ne signal aucun problème :
Code:
[21963][15:05:52] Checking byte array is ok to set... [21963][15:05:52] Byte array looks good, setting response...
Le tableau est peut-être NULL, mais ce n'est pas visible.
Raphaël Sorlin
Chargé de Mission SIG
Hors ligne
#7 Mon 26 November 2018 16:02
- chanteclair
- Participant assidu
- Lieu: Pau
- Date d'inscription: 3 Jan 2007
- Messages: 726
Re: Lizmap - QGIS Server et cadastre
Les membres de 3Liz et les contributeurs du projet sont en général réactifs.
Cela ne vous coûte rien de poster, d'autant que les posts concernent autant les bugs que les fonctionnalités.
Hors ligne
#8 Thu 29 November 2018 09:20
- Raph Sorlin
- Juste Inscrit !
- Lieu: Saint-Paul
- Date d'inscription: 25 Oct 2018
- Messages: 5
Re: Lizmap - QGIS Server et cadastre
Le lien vers la requête sur le Github Lizmap (au cas où il y aurait la réponse au problème) : https://github.com/3liz/lizmap-web-client/issues/1020
Raphaël Sorlin
Chargé de Mission SIG
Hors ligne