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 !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Mooc adress

MOOC Adresse du 4 au 29 novembre 2019

Formation en ligne à destination des élus et techniciens des communes et EPCI
Formation gratuite sur la plateforme FUN
Inscriptions

#1 Wed 27 December 2017 12:39

jerem_abroad
Membre
Date d'inscription: 27 Dec 2017
Messages: 12

Problème getGetFeatureInfoUrl [OpenLayers3 / Geoserver / PostgreSQL]

Bonjour à tous,

J'utilise OpenLayers3, Geoserver2.7.6 et PostgreSQL.
J'ai un problème en utilisant la méthode getGetFeatureInfoUrl qui me renvoi des choses que je ne comprends pas.

J'ai une carte que j'ai modifié et stylisé en SingleBand pseudocolor sous QGIS.
J'ai importer mon fichier TIFF dans ma base de données et je le recupere sous geoserver via ce protocole : http://www-iuem.univ-brest.fr/pops/attachments/884

Lors du clic sur mon image TIF, je veux que cette méthode me renvoi la valeur du pixel de mon image, alors qu'elle me renvoi des choses comme :
367, 87 not in dimensions of image: 256, 256
350, 196 not in dimensions of image: 256, 256
365, 181 not in dimensions of image: 256, 256
A quoi correspond ces chiffres ? 256 est la taille de mes tuiles mais pourquoi OpenLayers me renvoi ça ?

Lorsque je clique via le portail geoserver, geoserver me renvoi 4 bandes de valeurs differentes comme :
layer
fid layer  layer_Band1  layer_Band2  layer_Band3
    127.0  39.0         4.0          255.0
Ces valeurs sont les valeurs des 4 bandes présentes définies dans les métadata de mon fichier TIFF ??? Comment faire pour récupérer uiquement la valeur des pixels et non pas 4 valeurs?? J'ai essayer de paramètrer le Coverage Band Details dans Geoserver (Layers --> Edit Layer), mais impossible de le modifier, il ne prend pas en compte ce que je lui écrit. De quels informations Geoserver se sert pour remplir ces champs là ??

Le gdalinfo de mon fichier:

Code:

Driver: GTiff/GeoTIFF
Files: layer.tif
       layer.tif.aux.xml
       layer.tifw
Size is 1538, 827
Coordinate System is `'
Origin = (96.023245667292642,22.569634759397122)
Pixel Size = (0.010918984280528,-0.010918984280528)
Metadata:
  TIFFTAG_RESOLUTIONUNIT=2 (pixels/inch)
  TIFFTAG_XRESOLUTION=96
  TIFFTAG_YRESOLUTION=96
Image Structure Metadata:
  INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left  (  96.0232457,  22.5696348) 
Lower Left  (  96.0232457,  13.5396348) 
Upper Right ( 112.8166435,  22.5696348) 
Lower Right ( 112.8166435,  13.5396348) 
Center      ( 104.4199446,  18.0546348) 
Band 1 Block=1538x1 Type=Byte, ColorInterp=Red
  Min=127.000 Max=255.000 
  Minimum=127.000, Maximum=255.000, Mean=253.523, StdDev=13.143
  Metadata:
    STATISTICS_MAXIMUM=255
    STATISTICS_MEAN=253.52340702211
    STATISTICS_MINIMUM=127
    STATISTICS_STDDEV=13.143398797696
Band 2 Block=1538x1 Type=Byte, ColorInterp=Green
Band 3 Block=1538x1 Type=Byte, ColorInterp=Blue
Band 4 Block=1538x1 Type=Byte, ColorInterp=Undefined

Pourquoi j'ai 4 bandes Red/Green/Blue/Undefined alors que j'ai stylisé mon TIFF en singlebandpseudocolor sous QGIS ??

Mon code en front:

Code:

    
        Utilisation WMS

        
        

        
        #map {
            height: 500px;
            width: 500px;
            border-style: solid;
        }

        

   
   

    
    info:
     

    

    /*********************** PARTIE WMS *******************************************/
    
    var source = new ol.source.TileWMS({
          url: 'http://localhost:8080/geoserver/wms',
          params: {
                   'LAYERS': 'gaez_fao:gleyic_layer',
                   'TILED': true
                   },
            serverType: 'geoserver'
            });    

    var layer = new ol.layer.Tile({
          preload: Infinity,
          visible: true,
        source: source
        });
    layer.setProperties({opacity: 1, contrast:1});

    var layers = [layer];

    var view = new ol.View({
           center: [11500000, 2000000],
        zoom: 6
      });

    var map = new ol.Map({
      layers: layers,
      target: 'map',
      view: view
    });

    /*http://openlayers.org/en/latest/examples/getfeatureinfo-tile.html*/
    map.on('singleclick', function(evt) {
        document.getElementById('info').innerHTML = '';
        var viewResolution = (view.getResolution());
        var url = source.getGetFeatureInfoUrl(
            evt.coordinate, viewResolution, 'EPSG:4326',
            {'INFO_FORMAT': 'text/html'});
        if (url) {
          document.getElementById('info').innerHTML =
              '';
        }
      });

J'espere avoir été le plus complet. Pouvez vous m'aidez svp ?

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |