Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#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: 67
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 smile

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

 

Pied de page des forums

Powered by FluxBB