#1 Mon 20 October 2008 21:54
- kiki170
- Juste Inscrit !
- Date d'inscription: 8 Oct 2008
- Messages: 2
[OpenLayers] Protocole Http
Bonjour à toutes et tous,
Je suis en train de faire des essais avec la classe OpenLayers.Protocol.HTTP mais je peine un peu...
Je crée une map puis un layer de cette manière :
Code:
var myprotocol = new OpenLayers.Protocol.HTTP({ format: new OpenLayers.Format.GeoJSON(), url: "test4_.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} ); view = new OpenLayers.Layer.Vector("View", { strategies: [fixedStrategy], protocol: myprotocol, styleMap: new OpenLayers.StyleMap({ "default": style, "select": { fillColor: "#8aeeef", strokeColor: "#32a8a9" } }) }); map.addLayer(view);
Lors du premier chargement, la page m'affiche bien ma carte ainsi que mes features qui sont renvoyée par la page "test4_.php" au format GeoJSON.
Par contre, je voulais faire en sorte de pouvoir charger d'autre features en fonction de l'id passé en parametre lorsque je clique sur un bouton.
J'ai donc ajouté une méthode sync qui est appelée lorsque je clic sur un bouton :
Code:
function _sync() { var resp = myprotocol.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"); }
Malheureusement, j'ai a chaque fois une alert avec le reading failed. En utilisant Firebug, je constate que l'ouverture de la page se fait bien et que cela me retourne bien un autre GeoJSON.
Est-ce que ce que je fais est bien juste? Dois-je modifier quelque chose? Quelle serait la solution pour que cela fonctionne? :S
Je suis un peu perdu et ca fait depuis ce matin 08h00 que je bloque la dessus...
Merci d'avance.
PS : la méthode sync est inspirée du trunk/openlayers/examples/protocol-gears.html
Hors ligne
#2 Tue 21 October 2008 14:43
- gde
- Participant occasionnel
- Date d'inscription: 8 Oct 2007
- Messages: 18
Re: [OpenLayers] Protocole Http
Bonjour,
D'ou viens la fonction success() ?
ne faudrait pas plutôt tester si une feature, geometry ou featurecollection
est retournée ?
Hors ligne
#3 Tue 21 October 2008 15:32
- kiki170
- Juste Inscrit !
- Date d'inscription: 8 Oct 2008
- Messages: 2
Re: [OpenLayers] Protocole Http
J'ai tirer le concept de la méthode _sync de l'exemple : http://openlayers.org/dev/examples/protocol-gears.html
En ce qui concerne le test, malheureusement, resp.features est null.
Par contre, dans resp.priv (que je peux accéder avec JS), il y a une propriété nommée _object que je ne peux pas accéder en javascript mais que je peux consulter via Firebug. Et c'est la que j'ai vu qu'une réponse géoJSON était bel et bien renvoyée
Hors ligne
#4 Tue 21 October 2008 17:07
- gde
- Participant occasionnel
- Date d'inscription: 8 Oct 2007
- Messages: 18
Re: [OpenLayers] Protocole Http
L'exemple gears ne peut fonctionner qu'avec un des protocols de gears (et donc avec Google gears installé) pas avec HTTP.
Hors ligne