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

Bienvenue sur Forum SIG - Systèmes d'Information Géographique et Géomatique.

Bienvenue sur le forumSIG. S'il s'agit de votre première visite, assurez vous de faire une recherche préalable dans les FAQ SIG. Vous devez vous inscrire avant de pouvoir poster.

Affichage des résultats 1 à 4 sur 4
  1. #1

    Date d'inscription
    décembre 2017
    Messages
    18

    Par défaut Interroger une couche vectorielle (polygones) Récupérer infos polygone au click [OL3]

    Bonjour,

    J'aimerais afficher les infos de mon polygone dans une info-bulle. Mon problème est que je n'arrive pas à récupérer l'id de mon polygone lors de mon click. J'arrive à récupérer l'ensemble de mes infos de ma couche mais pas uniquement l'id de mon polygone sélectionné.

    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()); // coordonnée
    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 SÉLECTIONNE
    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);
    }
    });

    Dernière modification par SkåL ; 15/01/2018 à 10h54.

  2. #2

    Date d'inscription
    décembre 2017
    Messages
    18

    Par défaut Re : Récupérer l'id d'un polygone dans une vector layer

    Je vais être un peu plus précis.

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

    Est ce que ma couche vectorielle est bien déclaré ? (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 récupérer les attributs d'un polygone en particulier grâce à l'event du click ? Si oui, quels attributs de l'event faut-il que j'utilise ?Ou est-ce préférable de récupérer les coordonnées du click et de faire une recherche dans mon shapefile en fonction de ses coordonnées ?

    Merci pour votre aide.

    Cordialement.

  3. #3

    Date d'inscription
    décembre 2017
    Messages
    18

    Par défaut Re : Récupérer l'id d'un polygone dans une vector layer

    Problème résolu avec :

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

    var feature = wfs.getSource().getFeaturesAtCoordinate(coordinate);
    Dernière modification par SkåL ; 15/01/2018 à 10h55.

  4. #4
    Chasseur de Bots
    Date d'inscription
    août 2011
    Localisation
    Paris > Strasbourg
    Emploi
    Chargé de mission SIG
    Âge
    34
    Messages
    1 453

    Par défaut Re : Récupérer 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
    Réponses: 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
    Réponses: 3
    Dernier message: 04/10/2012, 08h19
  3. [OpenLayers] Ajouter des features dans un vector layer
    Par Nico dans le forum Assistance et Programmation
    Réponses: 0
    Dernier message: 22/03/2012, 07h29
  4. [OpenLayers] WMS et Vector Layer
    Par Nico dans le forum Assistance et Programmation
    Réponses: 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
    Réponses: 2
    Dernier message: 18/06/2008, 17h06

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •