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.
Pages: 1
- Sujet précédent - Récupérer l'id d'un polygone d'une vector layer [OpenLayers3] - Sujet suivant
#1 Fri 12 January 2018 12:40
- jerem_abroad
- Participant occasionnel
- Date d'inscription: 27 Dec 2017
- Messages: 12
Récupérer l'id d'un polygone d'une vector layer [OpenLayers3]
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:
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 jerem_abroad (Fri 12 January 2018 12:57)
Hors ligne
#2 Sun 14 January 2018 09:50
- jerem_abroad
- Participant occasionnel
- Date d'inscription: 27 Dec 2017
- Messages: 12
Re: Récupérer l'id d'un polygone d'une vector layer [OpenLayers3]
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.
Hors ligne
#3 Sun 14 January 2018 12:14
Re: Récupérer l'id d'un polygone d'une vector layer [OpenLayers3]
Technos OS, je déplace ici.
Hors ligne
#4 Mon 15 January 2018 11:06
- jerem_abroad
- Participant occasionnel
- Date d'inscription: 27 Dec 2017
- Messages: 12
Re: Récupérer l'id d'un polygone d'une vector layer [OpenLayers3]
Problème résolu avec :
var coordinate = map.getEventCoordinate(evt.originalEvent);
var feature = wfs.getSource().getFeaturesAtCoordinate(coordinate);
Hors ligne
Pages: 1
- Sujet précédent - Récupérer l'id d'un polygone d'une vector layer [OpenLayers3] - Sujet suivant