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 à 6 sur 6
  1. #1

    Date d'inscription
    janvier 2005
    Messages
    374

    Par défaut Non Résolu : Sélectionner des entités d'une couche wms

    Bonjour,

    j'affiche une couche wms de polygones sur ma carte, et je voudrais en sélectionner certains.

    je défini ma map avec la carte de fond :
    Code:
    var map = new OpenLayers.Map('map');
    
    var wmsLayer = new OpenLayers.Layer.WMS(
                    "vmap0",
                    "http://vmap0.tiles.osgeo.org/wms/vmap0",
                    {layers: 'basic', isBaseLayer:true}
    );
    Mon layer wms :
    Code:
    var monlayerwms = new OpenLayers.Layer.WMS(
                    "monlayerwms",
                    "http://monsite.fr:8080/geoserver/wms",
                    {layers: 'monlayer', transparent: true}
    );
    Le controle de sélection :
    Code:
    var select, hover, control;
    select = new OpenLayers.Layer.Vector("Selection", {styleMap: 
                    new OpenLayers.Style(OpenLayers.Feature.Vector.style["select"])
                });
                hover = new OpenLayers.Layer.Vector("Hover");
    //            map.addLayers([layer, hover, select]);
    map.addLayers([wmsLayer, monlayerwms, hover, select]);
                
                control = new OpenLayers.Control.GetFeature({
                    protocol: OpenLayers.Protocol.WFS.fromWMSLayer(monlayerwms),
                    box: true,
                    hover: true,
                    multipleKey: "shiftKey",
                    toggleKey: "ctrlKey"
                });
                control.events.register("featureselected", this, function(e) {
                    select.addFeatures([e.feature]);
                });
                control.events.register("featureunselected", this, function(e) {
                    select.removeFeatures([e.feature]);
                });
                control.events.register("hoverfeature", this, function(e) {
                    hover.addFeatures([e.feature]);
                });
                control.events.register("outfeature", this, function(e) {
                    hover.removeFeatures([e.feature]);
                });
                map.addControl(control);
                control.activate();
    mais quand je sélectionne un polygone, il n'y a rien qui se sélectionne ...
    je me suis basé sur cet exemple, qui marche parfaitement :
    http://openlayers.org/dev/examples/getfeature-wfs.html

    qu'est ce qui cloche ?

    Merci,
    Nico

  2. #2

    Date d'inscription
    mars 2012
    Messages
    9

    Par défaut

    Il faudrait que tu ouvres la console de développeur Web (Ctrl+Maj+I sous chrome, Ctrl+Maj+K sous firefox) pour voir s'il y a des erreurs dans la console ou dans les requêtes de l'onglet réseau. Si tu en vois reporte nous les.

    Tu peux aussi essayer de remplacer ton layer par le layer de l'exemple pour voir si ça vient pas de lui.

  3. #3

    Red face

    Bonjour tout le monde,

    J'ai exactement le même problème , lorsque je sélectionne un polygone dans openLayers, rien est sélectionné. J'ai ouvert le console d'exécution (ctrl+ Maj + k) mais il n'y a pas d'erreur. Pourriez vous m'aider sil vous plait.

    Merci beaucoup,
    Houlder

  4. #4

    Date d'inscription
    janvier 2005
    Messages
    374

    Par défaut

    Il faut installer un fichier proxy dans cgi-bin :

    récupérer le fichier d'exemple proxy.cgi ici :
    http://trac.osgeo.org/openlayers/bro...ples/proxy.cgi

    dans la liste allowedHosts, rajouter le nom du serveur qu'on veut atteindre.

    copier le fichier dans /usr/lib/cgi-bin et le rendre exécutable (chmod a+x proxy.cgi).

    dans le fichier de votre application Ext JS, il faut déclarer le proxy :
    Code:
    OpenLayers.ProxyHost= "../cgi-bin/proxy.cgi?url=";
    et ça marche ...

    Nico

  5. #5

    Par défaut

    Bonjour


    je dispose du même problème sauf que moi, j’exécute mon programme dans tomcat via netbeans (port: 8084) et je fais appel au wfs dans geoserver dans le port:8080

    Commen faire dans ce cas ? Merci

  6. #6

    Date d'inscription
    mai 2005
    Messages
    4

    Par défaut

    Il faut mettre en place un reverse proxy qui permet au client web de ne voir qu'un seul serveur et donc de ne pas avoir des problèmes de sécurité.

 

 

Discussions similaires

  1. [OpenLayers] Sélectionner des entités d'une couche wms/wfs
    Par hnahoulder dans le forum Assistance et Programmation
    Réponses: 0
    Dernier message: 05/06/2012, 15h26
  2. [ArcGIS 9.x] Générer une boucle pour selectionner des entités
    Par depdep dans le forum Assistance Technique
    Réponses: 0
    Dernier message: 28/03/2011, 16h03
  3. [ArcGIS 9.x] Sélectionner par entités en VBA
    Par VincentF dans le forum Programmation
    Réponses: 2
    Dernier message: 16/11/2009, 14h42
  4. [ArcGIS 9.x] Selectionner les entités selon un intervalle d'attributs
    Par skaguigui dans le forum Assistance Technique
    Réponses: 4
    Dernier message: 05/11/2009, 11h05
  5. Réponses: 4
    Dernier message: 23/02/2009, 13h00

Les tags pour cette discussion

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
  •