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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#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