#1 Mon 12 April 2010 10:26
- frankySIG
- Participant occasionnel
- Date d'inscription: 12 Apr 2010
- Messages: 42
[Openlayers Geoserver]
Bonjour, je réalise actuellement une application webmapping avec geoserver et openlayers.
J'arrive a afficher des cartes en WMS mais pas en WFS, le WFS de Geoserver fonctionne ar je peut m'y connecter avec gvSIG.
Mon problème est que je n'arrive pas à me connecter à geoserver en WFS avec Openlayers, j'ai écumé les différents tutoriels du web sans résultats..
Pourriez vous m'expliquer comment charger une carte depuis Geoserver sur Openlayers en WFS (si vous avez des exemples, des bouts de codes...)?
Hors ligne
#2 Mon 12 April 2010 10:41
Re: [Openlayers Geoserver]
Bonjour,
Je te conseil d'utiliser Firebug pour voir si tes données sont chargées. Il est possible que ta config de l'objet WFS côté OpenLayers ne soit pas correct (par exemple un problème de namespace).
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Mon 12 April 2010 10:52
- frankySIG
- Participant occasionnel
- Date d'inscription: 12 Apr 2010
- Messages: 42
Re: [Openlayers Geoserver]
c'est bien ce que je pense, le problème ne vient pas du serveur carto mais plutot du client. Je suis totalement novices dans le domaine de la programmation aurait tu un exemple javascript pour charger une couche en WFS sous openlayers (var wfs = new OpenLayers.Layer.WFS....).
Je vais regarder du côté de FireBug.
Hors ligne
#4 Mon 12 April 2010 13:39
- frankySIG
- Participant occasionnel
- Date d'inscription: 12 Apr 2010
- Messages: 42
Re: [Openlayers Geoserver]
j'ai passé ma page de test (carte avec une couche WMS et WFS) sur Firebug, les deux flux chargent bien, et firebug repère 1 erreur:
"Erreur d'analyse XML : aucun élément trouvé Emplacement : moz-nullprincipal:{e58f5259-e961-4dd0-b75b-d9d8c24d50fe} Numéro de ligne 1, Colonne 1 :
^ " "OpenLayers.js ligne 1081 (this._object.send(vData);if(bGecko&&!this._async){this.readyState=cXMLHttpRequest.OPENED;fSynchronizeValues(this);while(this.readyState<cXMLHttpRequest.DONE){this.readyState++;fReadyStateChange(this);if(this._aborted) )
Qu'est ce que cela peut bien vouloir dire?
Hors ligne
#5 Mon 12 April 2010 14:19
Re: [Openlayers Geoserver]
Bonjour,
Quel est le serveur où tu stockes ton code javascript et quel est l'url du service WFS ?
Je suppute deux noms de domaine différents
http://en.wikipedia.org/wiki/Same_origin_policy
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#6 Mon 12 April 2010 14:21
- frankySIG
- Participant occasionnel
- Date d'inscription: 12 Apr 2010
- Messages: 42
Re: [Openlayers Geoserver]
OpenLayers.js et stocké dans le réprtoire webapps de Geoserver (localhost:8080) et l'url du wfs est http://localhost:8080/geoserver/wfs.
Hors ligne
#7 Mon 12 April 2010 15:03
Re: [Openlayers Geoserver]
Peux tu poster le code js de l'objet WFS que tu crées ?
As tu ce paramètre dans les options de l'objet : "featureNS:" ?
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#8 Mon 12 April 2010 15:11
- frankySIG
- Participant occasionnel
- Date d'inscription: 12 Apr 2010
- Messages: 42
Re: [Openlayers Geoserver]
voici tout le code, je n'ai pas le featureNS, d'ailleur je n'ai pas bien compris l'utilité de celui ci :il correspond à une URL identique à celle de l'espace de travail sous geoserver, je ne sais pas comment la configurer étant donné que je travail en local.
Code:
<html> <head> <script src="OpenLayers-2.8/OpenLayers.js"></script> <script type="text/javascript"> function init(){ var map = new OpenLayers.Map('map'); var wms = new OpenLayers.Layer.WMS( "france", "http://localhost:8080/geoserver/wms?", {layers: 'FRA_adm0'} ); var wfs = new OpenLayers.Layer.WFS( "région", "http://localhost:8080/geoserver/wfs", {typename: "inra:FRA_adm1"} ); map.addLayers([wms, wfs]); map.zoomToMaxExtent(); } </script> </head> <body onload="init()"> <div id="map" style="width: 600px; height: 300px"></div> </body> </html>
Hors ligne
#9 Mon 12 April 2010 15:30
- frankySIG
- Participant occasionnel
- Date d'inscription: 12 Apr 2010
- Messages: 42
Re: [Openlayers Geoserver]
nouvelles découverte: je modifie la sources de ma librairie OpenLayers.js, (http://localhost:8080 pour le serveur jetty de geoserver), je place ma page HTML dans le repertoire webapps de geoserver (aussi sous jetty) et la bingo le WFS fonctionne! maintenant je me pose une question, pour passer par apache (http://localhost) il faut donc que tout mes éléments (wfs, openlayers.js) soit sur le même serveur, pour cela j'imagine que le proxy pourrait êtres utile. néanmoins là où je bosse (INRA, je suis stagiaire en géomatique...) il ne veulent pas de proxy (pourquoi? je sais pas je ne suis pas administrateur réseau), comment peut on faire autrement? y'a il un rapport entre proxy et virtualhost?
Hors ligne