1 votos

¿Cómo seleccionar características de diferentes capas de WFS?

Estoy tratando de seleccionar características de diferentes capas WFS, pero desafortunadamente no funciona en mi código.

Este es mi código:

var select = new OpenLayers.Layer.Vector("Selección", {styleMap: new OpenLayers.Style(OpenLayers.Feature.Vector.style["select"])});
var hover = new OpenLayers.Layer.Vector("Hover");

map.addLayers([hover,select]);

controles = new OpenLayers.Control.GetFeature({
    protocol: new OpenLayers.Protocol.WFS({
        url: "http://demo.opengeo.org/geoserver/wfs",
        featureType: ["states","world"]}),
    box: true,
    hover: true,
    multipleKey: "shiftKey",
    toggleKey: "ctrlKey",
});

controles.events.register("featureselected", this, function(e) {
      select.addFeatures([e.feature]);
});

controles.events.register("featureunselected", this, function(e) {
      select.removeFeatures([e.feature]);
});

controles.events.register("hoverfeature", this, function(e) {
      hover.addFeatures([e.feature]);
});

controles.events.register("outfeature", this, function(e) {
      hover.removeFeatures([e.feature]);
});

map.addControl(controles);
controles.activate();

Como puedes ver, he puesto en el featureType dos capas pero solo la primera puede ser seleccionada. ¿Qué estoy haciendo mal?

2voto

Sara Puntos 16

La documentación y el código fuente dicen que featureType tiene el tipo 'String' no array

controles = new OpenLayers.Control.GetFeature({
    protocol: new OpenLayers.Protocol.WFS({
        url: "http://demo.opengeo.org/geoserver/wfs",
        featureType: "states"}),
    box: true,
    hover: true,
    multipleKey: "shiftKey",
    toggleKey: "ctrlKey",
});

Es mejor crear cada capa en un solo paso y pasarlas a una instancia de OpenLayers.Control.SelectFeature.

Aquí está el enlace al ejemplo oficial: http://openlayers.org/dev/examples/select-feature-multilayer.html

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X