Bueno al final ya lo he solucionado, aunque de una forma distinta,lo que
he hecho es lo siguiente:
                
                //Registramos el evento de mouseup para el marcador, cuando 
alguien lo
haga se disparara la funcion addclose
                pois.events.register("mouseup", pois,addclose);

        }
        function adclose()
        {
                //esperamos 200ms para que aparezca el popup sino diria que no 
existe
map.popups[0]
                setTimeout("map.popups[0].addCloseBox()",200);
//Generamos un click en el mapa porque sino queda el mouse atrapado y
cuando se mueve el mouse se mueve el mapa
                map.events.triggerEvent("click",{});

        }

> Hola,
> 
> yo guardo un array de features con los popus, me la he echo yo para 
> poder cambiar el texto del popup dinámicamente. Si no no podia saber si 
> una feature tenia o no el popup 'abierto' o 'cerrado'.
> 
> Salut,
> 
> Jaume.
> 
> xevi wrote:
> > Ya he consegido cerrar un popup , el problema que tengo es que he
> > probado de cerrarlo con el .hide() o con el .destroy() y a la que le
> > vuelvo a dar la POI no se abre.He buscado en la documentacion si hay
> > alguna forma de recargar los markers o saber a que marker esta asociado
> > el popup para ver si podia dejarlo listo para que volviera a mostrar el
> > popup , pero no he encontrado nada.Ahora mismo los elimino de la
> > siguiernte forma:
> > 
> >     map.popups[0].destroy();
> >     map.popups[0]=null;
> > Y el objeto map lo creo asi:
> >     map = new OpenLayers.Map ("map", {
> >                 controls:[
> >                     new OpenLayers.Control.Navigation(),
> >                     new OpenLayers.Control.PanZoomBar(),
> >                 new OpenLayers.Control.LayerSwitcher(),
> >                     new OpenLayers.Control.Attribution(),],
> >                 maxExtent: new      OpenLayers.Bounds
> > (-20037508.34,-20037508.34,20037508.34,20037508.34),
> >                 maxResolution: 156543.0399,
> >                 numZoomLevels: 19,
> >                 units: 'm',
> >                 projection: new OpenLayers.Projection("EPSG:900913"),
> >                 displayProjection: new OpenLayers.
> > Projection("EPSG:4326")
> >             } );
> > 
> > Por cierto tienes razon, con un solo popup(almenos en mi caso no me ha
> > hecho falta ningun control)
> > 
> > Y muchas gracias por el codigo me ha aclarado un bastante las ideas
> >> Hola,
> >>
> >> es que no te havia puesto el control :P zorry.
> >>
> >> popupControl = new OpenLayers.Control.SelectFeature(trackingLayer, {
> >> onSelect: onFeatureSelect,
> >> onUnselect: onFeatureUnselect,
> >> multiple: true,
> >> clickout: false
> >> });
> >> map.addControl(popupControl);
> >> popupControl.activate();
> >>
> >> Pero me parece que si solo permites tener un popup abierto no hace falta 
> >> el control.
> >>
> >> Salut!
> >>
> >> Jaume.
> >>
> >> xevi wrote:
> >>> Muchas gracias por el codigo , pero sigue habiendo algo que no entiendo, 
> >>> como 
> >>> conecto los eventos de cuando se pulsa encima de los POIs con las 
> >>> funciones?
> >>> Salud
> >>>> Hola,
> >>>>
> >>>> jorrrr.... tienes tantos js, que francamente no se donde buscar. Pero 
> >>>> bueno, te paso un poco de mi código, yo utilizo un control por que 
> >>>> permito tener diferentes popups abiertos. Pero te puedes inspirar.
> >>>>
> >>>> Supongo que en tu caso lo más simple es guardar en una variable global 
> >>>> el popup y en close destruyes el popup (yo lo guardo en un feature).
> >>>>
> >>>> Salut!
> >>>>
> >>>> Jaume.
> >>>>
> >>>> function onFeatureSelect(feature) {
> >>>> var popup = new OpenLayers.Popup.FramedCloud(feature.attributes.did,
> >>>> new OpenLayers.LonLat(feature.geometry.x,feature.geometry.y),
> >>>> new OpenLayers.Size(200,200),
> >>>> feature.attributes.description,
> >>>> null,
> >>>> true,
> >>>> onPopupClose);
> >>>> feature.popup = popup;
> >>>> map.addPopup(popup);
> >>>> popup.updatePosition();
> >>>> }
> >>>>
> >>>> function onFeatureUnselect(feature) {
> >>>> map.removePopup(feature.popup);
> >>>> feature.popup.destroy();
> >>>> feature.popup = null;
> >>>> }
> >>>>
> >>>> function onPopupClose(evt) {
> >>>> iSize = rssDevices.length;
> >>>> for (var i = 0; i < iSize; i++) {
> >>>> if (rssDevicesFeatures[i].popup != null) {
> >>>> if (rssDevicesFeatures[i].popup == this) {
> >>>> popupControl.unselect(rssDevicesFeatures[i]);
> >>>> }
> >>>> }
> >>>> }
> >>>> }
> >>>>
> >>>> xevi wrote:
> >>>>> Hola lista, estoy intentando migrar unos mapad de Google Maps a Mapnik
> >>>>> +Google Maps con Openlayers, el problema que tengo es que para importar
> >>>>> los puntos de interes uso el OpenLayers.Layer.Tex(), el mapa muestra
> >>>>> bien los puntos, no hay ningun problema en este paso , el problema viene
> >>>>> de que me gustaria que apareciera un botoncito para cerrar los popups de
> >>>>> los POIs, he consegido hacer aparecer un cuadrito para cerrar i que al
> >>>>> pulsar encima se ejecute un script de javascript, pero no se como
> >>>>> hacerlo para hacer que se cierre.Por otro lado he estado mirando un
> >>>>> ejemplo de la web de OpenLayers donde si que aparecen los botoncitos
> >>>>> para cerrar los popups pero usan un archivo KML para generar los POIs.Mi
> >>>>> duda es si hay alguna forma de hacer algun botoncito para cerrar el
> >>>>> popup usando Text() o si para hacer esto debo usar el metodo del KML del
> >>>>> ejemplo?
> >>>>>
> >>>>> El mapa donde quiero hacer cerrar los popups:
> >>>>> http://test.agendadeconcerts.net/mapa.html
> >>>>>
> >>>>>
> >>>>> El ejemplo de KML:
> >>>>> http://openlayers.org/dev/examples/sundials-spherical-mercator.html
> >>>>>
> >>>>> El ejemplo de Text sobre el que me he basado:
> >>>>> http://wiki.openstreetmap.org/wiki/Openlayers_POI_layer_example
> >>>>>
> >>>>>
> >>>>> Saludos
> >>>>>
> >>>>>
> >>>>> _______________________________________________
> >>>>> Talk-es mailing list
> >>>>> [email protected]
> >>>>> http://lists.openstreetmap.org/listinfo/talk-es
> >>>>>
> >>>> _______________________________________________
> >>>> Talk-es mailing list
> >>>> [email protected]
> >>>> http://lists.openstreetmap.org/listinfo/talk-es
> >>>
> >>> _______________________________________________
> >>> Talk-es mailing list
> >>> [email protected]
> >>> http://lists.openstreetmap.org/listinfo/talk-es
> >>>
> >> _______________________________________________
> >> Talk-es mailing list
> >> [email protected]
> >> http://lists.openstreetmap.org/listinfo/talk-es
> > 
> > 
> > _______________________________________________
> > Talk-es mailing list
> > [email protected]
> > http://lists.openstreetmap.org/listinfo/talk-es
> > 
> 
> _______________________________________________
> Talk-es mailing list
> [email protected]
> http://lists.openstreetmap.org/listinfo/talk-es


_______________________________________________
Talk-es mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-es

Responder a