Hi all,

Firstly, sorry for my english...

I'm working since few month with Open Layer and I think it is really fun

Currently, I have a map with my own WMS server and a vector layer based on strategies and protocol (HTTP) like that :
function init() {
.....
var myprotocol = new OpenLayers.Protocol.HTTP({
        format: new OpenLayers.Format.GeoJSON(),
        url: "getGeoJSON.php",
        params: {idView: 169,model: 'startEnd'}
});

// setup tiled layer
var  base = new OpenLayers.Layer.WMS(
        "frj:world - Tiled", "http://localhost:8080/geoserver/wms";,
{srs: 'EPSG:4326',layers: 'frj:world',format: 'image/ png',tiled: 'true'},
        {buffer: 0}
);

// setup vector layer
view = new OpenLayers.Layer.Vector("View", {
        strategies:  [new OpenLayers.Strategies.Fixed()],
        protocol: myprotocol,
        styleMap: new OpenLayers.StyleMap({
                "default": style,
                "select": {fillColor: "#8aeeef",strokeColor: "#32a8a9"}
        })
});

map.addLayers([base, view]);

...

}

When I refresh the page, the map and the layer with my features corresponding on idView are correctly displayed.

The problem is that I have a xhtml select list with other views. When I select an other view, I have to load features that corresponds to the selected view. Based on the example (http://openlayers.org/dev/examples/protocol-gears.html ), I create a method called sync :

function sync() {
        resp = view.protocol.read();
        if (!resp.success()) {
                alert("reading failed");
                return;
        }
        view.destroyFeatures();
        if (!resp.features || resp.features.length <= 0) {
                alert("No features to read");
                return;
        }
        view.addFeatures(resp.features);
        alert("features successfully read");
}


view.protocol.read() is correctly working (I saw the call to getGeoJSON in firebug) and my getGeoJSON.php return the correct GeoJSON. But my function always do the alert on the "reading failed" and I don't understand why!?

I saw that resp.features is null.

So, I tried to create a new protocol and call the read() method but the problem persist:
myprotocol = new OpenLayers.Protocol.HTTP({
        format: new OpenLayers.Format.GeoJSON(),
        url: "test4_.php",
        params: {
                idView: 169, //, callback: "changeClass"
                model: 'startEnd'
        }
});
resp = myprotocol.read();

Does anyone has an idea?

Thank a lot,
Jerome F.
_______________________________________________
Users mailing list
[email protected]
http://openlayers.org/mailman/listinfo/users

Reply via email to