#1 Fri 05 June 2009 16:40
[OpenLayers][Popup] Pas d'affichage de la popup
Bonjour,
Je souhaite créer une carte avec des popups s'affichant lors de la sélection d'un objet de ma couche WFS.
La fonction popUP attribuée lors de la sélection d'un objet est bien active. Par contre, elle bute lors de la création de la popup...
Je ne vois pas trop ce qui bloque au niveau du code de création de la popup...
Voici le code de ma méthode:
Code:
function popUP(feature) { if(typeof popup!='undefined'){ popup.destroy(); } //var content=e.attributes.descriptio; alert("1"); popup = new OpenLayers.Popup.FramedCloud( "id", feature.geometry.getBounds().getCenterLonLat(), null, "<b>contenu</b>", null, false, null ); alert("popup créé"); feature.popup = popup; map.addPopup(popup); }
le alert "1" s'affiche bien mais pas le alert "popup créé".
J'en ai donc déduit que qqch n'allait pas au niveau de la création du popup mais je ne vois pas quoi...
Voici le code en entier, si jamais...
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link rel="stylesheet" href="/geoserver/style.css" type="text/css" /> <style type="text/css"> body { margin: 1em; } #map { width: 800px; height: 475px; border: 1px solid black; } </style> <script src="openlayers/OpenLayers.js"></script> <script type="text/javascript"> var map; function init(){ map = new OpenLayers.Map('map'); var political = new OpenLayers.Layer.WMS( "State", "/geoserver/wms", {layers: 'topp:tasmania_state_boundaries', format: 'image/png'} ); var cities = new OpenLayers.Layer.WFS( "Cities", "/geoserver/wfs", {typename: 'topp:test_points_tasmania'}, { typename: 'test_points_tasmania', featureNS: 'http://www.openplans.org/topp', extractAttributes: true } ); cities.style = OpenLayers.Util.applyDefaults({strokeColor: "#0000ff"}, OpenLayers.Feature.Vector.style["default"]); map.addLayers([political,cities]); map.addControl(new OpenLayers.Control.LayerSwitcher()); map.zoomToExtent( new OpenLayers.Bounds(145.51045,-44.0,149.0,-40.5) ); // Instanciation du control selectFeature options = { hover: false, onSelect: popUP, }; sf = new OpenLayers.Control.SelectFeature(cities, options) map.addControl(sf); sf.activate(); function popUP(feature) { if(typeof popup!='undefined'){ popup.destroy(); } //var content=e.attributes.descriptio; alert("1"); popup = new OpenLayers.Popup.FramedCloud( "id", feature.geometry.getBounds().getCenterLonLat(), null, "<b>contenu</b>", null, false, null ); alert("popup créé"); feature.popup = popup; map.addPopup(popup); } } </script> </head> <body onload="init()"> <h3>OpenLayers WFS</h3> <div id="map"></div> </body> </html>
Si jamais vous avez une idée de la source du problème, voire d'une méthode de débuggage,
En vous remerciant par avance..
Dernière modification par baobazz (Fri 05 June 2009 16:42)
geodata au cerema et petits billets en géomatique
Hors ligne
#2 Tue 09 June 2009 08:27
Re: [OpenLayers][Popup] Pas d'affichage de la popup
bonjour,
le problème venait du fait que j'utilisais la libraire OL intégrée à geoserver.
Sa version est la 2.6.
En utilisant la 2.7, tout fonctionne parfaitement à présent.
geodata au cerema et petits billets en géomatique
Hors ligne
#3 Tue 09 June 2009 09:07
Re: [OpenLayers][Popup] Pas d'affichage de la popup
Merci du retour Baobazz !
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