banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

State Of The Map 2024

#1 Sun 18 September 2011 15:08

aminealaoui
Juste Inscrit !
Date d'inscription: 29 Aug 2011
Messages: 3

probélme de GetFeature lors de plusieurs Layer ou un gourpe layer

bonjour ,
cher amies j'ai besoin de votre aide j’arrive pas a récupérer des informations sur ma couche grâce a la fonction OpenLayers.Control.GetFeature quand j'ai 2 couche mais pour une seul couche ça marche bien voici le code utilisé

Code:

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    
    <script src="http://api.maps.yahoo.com/ajaxymap?v=3.0&appid=euzuro-openlayers"></script>

    <link rel="stylesheet" href="/geoserver/style.css" type="text/css" />
    <link rel="stylesheet" href="openlayers/theme/default/style.css" type="text/css" />

    <style type="text/css">
        body {
            margin: 1em;
        }
        #map {
            width: 95%;
            height: 512px;
            border: 1px solid gray;
        }
        div.olControlMousePosition {
            color: white;
        }
        #bounds {
            font-size: 0.9em;
        }
    </style>

    <script src="http://openlayers.org/api/OpenLayers.js"></script>
    <script type="text/javascript">
 
        // make map available for easy debugging
        var map;

        // avoid pink tiles
        OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
        OpenLayers.Util.onImageLoadErrorColor = "transparent";

        function init(){
            var options = {
                // the "community" epsg code for spherical mercator
                projection: "EPSG:900913",
                // map horizontal units are meters
                units: "m",
                // this resolution displays the globe in one 256x256 pixel tile
                maxResolution: 78271.51695,
                // these are the bounds of the globe in sperical mercator
                maxExtent: new OpenLayers.Bounds(-20037508, -20037508,
                                                 20037508, 20037508)
            };
            // construct a map with the above options
            map = new OpenLayers.Map('map', options);


            // create Yahoo layer (only the default layer works, the hibrid and the
            // satellite ones do throw exceptions and rendering goes totally bye bye)
            var yahoosat = new OpenLayers.Layer.Yahoo("Yahoo", {
                 sphericalMercator: true
            });

            // create WMS layer
            var wms = new OpenLayers.Layer.WMS(
                "ville",
                "http://localhost:8080/geoserver/wms?",
                {
                   layers: 'maroc:Villes_principales',
                   styles: '',
                   srs: 'EPSG:4326',
                   format: 'image/png',
                   tiled: 'true',
                   tilesOrigin : "143.60260815000004,-43.851764249999995",
                   transparent: true
                },
                {
                    'opacity': 0.75, 'isBaseLayer': false, 'wrapDateLine': true
                }
            );

            var usBounds = new OpenLayers.Bounds(
              -3123522.723286, 2000815.652034, 2996331.508242, 4505504.194434
            );

             select = new OpenLayers.Layer.Vector("Selection", {styleMap: 
                new OpenLayers.Style(OpenLayers.Feature.Vector.style["select"])
            });
            hover = new OpenLayers.Layer.Vector("Hover");
            map.addLayers([yahoosat, wms]);
            
             control = new OpenLayers.Control.GetFeature({
                protocol: OpenLayers.Protocol.WFS.fromWMSLayer(wms),
                box: true,
                hover: true,
                multipleKey: "shiftKey",
                toggleKey: "ctrlKey"
            });
            control.events.register("featureselected", this, function(e) {
            document.getElementById('repclique').innerHTML = 'amine';
                select.addFeatures([e.feature]);
                alert(e.feature.fid);
                //document.getElementById('repclique').innerHTML = e.feature.attributes['nom'];            
            });
            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();
              map.addControl(new OpenLayers.Control.LayerSwitcher());
              map.zoomToExtent(usBounds);
            
            
        }
        
    </script>
  </head>
  <body onLoad="init()">
    <h3>eoserver OpenLayers </h3>
    <div id="map">  </div>
     <div id="repclique">
            <em>Click on the map to get feature info</em>
        </div>
    <p>&nbsp;</p>
  
  </body>
</html>

et Merci d'avance

Hors ligne

 

Pied de page des forums

Powered by FluxBB