Bienvenue! Inscrivez-vous et rejoignez notre communaut :)
  • Login:

Bienvenue sur Forum SIG - Systmes d'Information Gographique et Gomatique.

Bienvenue sur le forumSIG. S'il s'agit de votre premire visite, assurez vous de faire une recherche pralable dans les FAQ SIG. Vous devez vous inscrire avant de pouvoir poster.

Affichage des rsultats 1 4 sur 4
  1. #1

    Date d'inscription
    dcembre 2017
    Messages
    18

    Par dfaut Interroger une couche vectorielle (polygones) Rcuprer infos polygone au click [OL3]

    Bonjour,

    J'aimerais afficher les infos de mon polygone dans une info-bulle. Mon problme est que je n'arrive pas rcuprer l'id de mon polygone lors de mon click. J'arrive rcuprer l'ensemble de mes infos de ma couche mais pas uniquement l'id de mon polygone slectionn.

    Pouvez-vous m'aider ??


    Mon code:


    /*DEFINITION COUCHE WMS*/
    var osm = new ol.layer.Tile({
    source: new ol.source.OSM()
    });

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

    var wms = new ol.layer.Tile({
    source: wms_source
    });

    /*DEFINITION COUCHE WFS*/

    var vector_source = new ol.source.Vector({
    format: new ol.format.GeoJSON(),
    url: function(extent, resolution, projection) {
    return 'http://localhost:8080/geoserver/wfs?service=WFS&' +
    'version=1.1.0&request=GetFeature&typename=gaez_fao:gleyic_shapefile_table&' +
    'outputFormat=application/json&srsname=EPSG:4326&' +
    'bbox=' + extent.join(',') + ',EPSG:4326';
    },
    strategy: ol.loadingstrategy.bbox
    });

    var wfs = new ol.layer.Vector({
    source: vector_source,
    style: new ol.style.Style({
    stroke: new ol.style.Stroke({
    color: 'green',
    width: 2
    })
    })
    });

    /*DEFINITION MAP*/
    var view = new ol.View({
    //laos
    center: [11500000, 2000000],
    //zoom: 6
    zoom: 2
    });

    var map = new ol.Map({
    layers: [osm,wms,wfs],
    overlays: [overlay],
    target: 'map',
    view: view
    });


    map.on('singleclick', function(evt) {
    //RECUPERATION DES COORDONNEES DU CLIC
    var source = evt.target;
    console.log('evt.coordinate[0] = ' + evt.coordinate[0]);
    console.log('evt.coordinate[1] = ' + evt.coordinate[1]);
    var lonlat = ol.proj.transform(evt.coordinate,'EPSG:3857','EPSG:4326')
    console.log('lon = ' + lonlat[0]);
    console.log('lat = ' + lonlat[1]);

    //COUCHE WFS
    if(wfs.getSource().getState() == 'ready'){
    var features = wfs.getSource().getFeatures();
    //récupération de toutes les coordonnées des polygones
    features.forEach(function(feature){
    console.log(feature.getGeometry().getCoordinates()); // coordonne
    console.log(feature.getId()); // id de tous mes polygones
    });

    //AFFICHAGE DANS UNE BULLE --> AU LIEU DE 10001, J'AIMERAIS INDIQUER L'ID DE MON POLYGONE SLECTIONNE
    content.innerHTML = '<p>pixel value:</p><code>' + features[10001].N.pixel_value + '</code>';
    console.log('features[10001].N.geometry = ' + features[10001].N.geometry);
    overlay.setPosition(evt.coordinate);
    }
    });

    Dernire modification par SkL ; 15/01/2018 10h54.

  2. #2

    Date d'inscription
    dcembre 2017
    Messages
    18

    Par dfaut Re : Rcuprer l'id d'un polygone dans une vector layer

    Je vais tre un peu plus prcis.

    J'ai publi mon shapefile (couche de polygones) dans GEOSERVER et je voudrais interroger ma couche vectorielle pour pouvoir rcuprer mes informations relatives un polygone en particulier depuis mon front avec OpenLayers3.

    Est ce que ma couche vectorielle est bien dclar ? (J'ai publi ma table sur Geoserver avec la fonction PostGIS Database). Le format de ma couche vectorielle (GeoJSON) est-il judicieux ?

    Est ce possible de rcuprer les attributs d'un polygone en particulier grce l'event du click ? Si oui, quels attributs de l'event faut-il que j'utilise ?Ou est-ce prfrable de rcuprer les coordonnes du click et de faire une recherche dans mon shapefile en fonction de ses coordonnes ?

    Merci pour votre aide.

    Cordialement.

  3. #3

    Date d'inscription
    dcembre 2017
    Messages
    18

    Par dfaut Re : Rcuprer l'id d'un polygone dans une vector layer

    Problme rsolu avec :

    var coordinate = map.getEventCoordinate(evt.originalEvent);

    var feature = wfs.getSource().getFeaturesAtCoordinate(coordinate);
    Dernire modification par SkL ; 15/01/2018 10h55.

  4. #4
    Chasseur de Bots
    Date d'inscription
    aot 2011
    Localisation
    Paris > Strasbourg
    Emploi
    Charg de mission SIG
    ge
    34
    Messages
    1 446

    Par dfaut Re : Rcuprer l'id d'un polygone dans une vector layer

    Merci pour le suivi.

    J'ai balis ton code avec XCODE=javascript pour un meilleur affichage.
    Pourrais-t-on avoir le code final fonctionnel complet ?

 

 

Discussions similaires

  1. [QGIS 2.x] Vector layer not found
    Par matchev dans le forum Assistance et Programmation
    Rponses: 0
    Dernier message: 19/02/2015, 15h06
  2. [OpenLayers] Zoomer sur l'extent d'un vector layer
    Par Nico dans le forum Assistance et Programmation
    Rponses: 3
    Dernier message: 04/10/2012, 08h19
  3. [OpenLayers] Ajouter des features dans un vector layer
    Par Nico dans le forum Assistance et Programmation
    Rponses: 0
    Dernier message: 22/03/2012, 07h29
  4. [OpenLayers] WMS et Vector Layer
    Par Nico dans le forum Assistance et Programmation
    Rponses: 2
    Dernier message: 04/06/2010, 11h26
  5. [OpenLayers] Ordre des features dans un OpenLayers.Layer.Vector
    Par Kap dans le forum Assistance et Programmation
    Rponses: 2
    Dernier message: 18/06/2008, 17h06

Liens sociaux

Rgles de messages

  • Vous ne pouvez pas crer de nouvelles discussions
  • Vous ne pouvez pas envoyer des rponses
  • Vous ne pouvez pas envoyer des pices jointes
  • Vous ne pouvez pas modifier vos messages
  •