Pages: 1
- Sujet précédent - [MAPSERVER] avoir une image vide quand le fichier json est vide - Sujet suivant
#1 Wed 24 May 2017 15:13
- Jean-Marie64
- Participant actif
- Lieu: Pau
- Date d'inscription: 6 Nov 2007
- Messages: 131
[MAPSERVER] avoir une image vide quand le fichier json est vide
Bonjour
nous avons défini un layer WMS connectée à un fichier json
le problème que nous avons est pour obtenir une image vide quand le fichier json ne contient pas de donnée
à la place nous avons une erreur
est-il possible de dire à mapserver de ne rien faire pour un layer quand le fichier ne contient pas de donnée
par exemple, le layer "cells" suivant attend la propriété "alarm"
Code:
LAYER TYPE polygon NAME "cells" METADATA OWS_TITLE "MetGeoJSON Polygon" END CONNECTIONTYPE OGR CONNECTION "/var/www/html/meteo/prod/cellules/data/cells_empty.json" DATA "OGRGeoJSON" STATUS default PROJECTION "init=epsg:4326" END FILTERITEM "alarm" FILTER /active_cell|severe_storm/ CLASSITEM "alarm" CLASS EXPRESSION "active_cell" STYLE OUTLINECOLOR 0 0 0 COLOR 113 80 121 OPACITY 40 END END CLASS EXPRESSION "severe_storm" STYLE OUTLINECOLOR 0 0 0 COLOR 113 80 121 OPACITY 80 END END END
si celle-ci est absente, on a l'erreur
Code:
msDrawMap(): Image handling error. Failed to draw layer named 'cells'. msOGRLayerInitItemInfo(): OGR error. Invalid Field name: alarm
actuellement pour avoir une image vide le fichier json minimal est
Code:
{ "features": [ { "properties": { "alarm": "" } } ], "type": "FeatureCollection" }
l'idéal serait de pouvoir traiter un fichier vide (0 octets)
merci d'avance pour votre aide
Jean-Marie
Hors ligne
#2 Fri 26 May 2017 18:08
- Blaise Picinbono
- Participant actif
- Date d'inscription: 8 Jan 2015
- Messages: 70
- Site web
Re: [MAPSERVER] avoir une image vide quand le fichier json est vide
Bonjour;
Un fichier vide (0 octets) n'est pas un fichier geojson valide
Partant de là, il y a une solution, certes un peu tordue, pour afficher une image vide à partir d'un tel fichier avec mapserver:
Créer un fichier map pour cette couche "cells" uniquement (nommé par exemple cellules.map).
Dans le client, l'appeler avec une url de ce type:
Code:
url: 'http://localhost/cgi-bin/mapserv.cgi?map=/var/www/html/meteo/prod/cellules/cellules.map&EXCEPTIONS=BLANK'
(Notez le "&EXCEPTIONS=BLANK" à la fin de l'url)
Ainsi, le fichier map général contenant les autres couches ne plantera pas lorsque le fichier cells_empty.json sera vide, et le fichier map cellules.map affichera une image vide (transparente) lorsque ce fichier cells_empty.json sera vide.
Attention cependant, une image vide sera aussi sans doute générée s'il y a des erreurs dans le fichier json ou dans ce fichier map particulier.
Je ne suis pas certain d'être bien clair, demandez si vous voulez des précisions.
Hors ligne
#3 Mon 29 May 2017 11:43
- Jean-Marie64
- Participant actif
- Lieu: Pau
- Date d'inscription: 6 Nov 2007
- Messages: 131
Re: [MAPSERVER] avoir une image vide quand le fichier json est vide
Bonjour
merci pour votre réponse
suite à votre remarque qu'un fichier json vide n'est pas un format valide,
peut-on envisager de s'en sortir avec un fichier minimal ne contenant pas de feature tel que :
Code:
{ "type": "FeatureCollection", "features": [] }
je précise que nous traitons un GeoJSON
le problème est donc de faire en sorte que mapserver ne génère pas d'erreur si la propriété alarm" est absente
merci d'avance
Jean-Marie
Hors ligne
#4 Mon 29 May 2017 17:13
- Jean-Marie64
- Participant actif
- Lieu: Pau
- Date d'inscription: 6 Nov 2007
- Messages: 131
Re: [MAPSERVER] avoir une image vide quand le fichier json est vide
pour info nous utilisons :
MapServer version 7.0.5
gdal version 1.9.2
il semble qu'avec la version 2.1.0 un bug soit corrigé en rapport avec notre problématique : fix crash on null / non-json object f
Hors ligne
Pages: 1
- Sujet précédent - [MAPSERVER] avoir une image vide quand le fichier json est vide - Sujet suivant