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
ENDsi 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: 72
- 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


