On Tue, Feb 24, 2009 at 05:15:14PM +0100, Kai Behncke wrote: > Hi Till, > > > thank you for the code :-) > It`s quite helpful,although I didn`t get it to run as I want so far. > > The wfs is correctly visualized, I use that one: > http://www.gastronomap.de/cgi-bin/mapserv?map=/home/promotion/behncke/gastronomap_wms/gastronomap_wfs.map&SERVICE=WFS&VERSION=1.0.0&Request=GetFeature&Typename=gastronomie_wfs > > If I do a mouseover at the different points of the wfs the following > > feature_info_hover(arguments[0], gastronomap_wfs) is called. > > > I try: > > function feature_info_hover(feature, myWfsLayer) > { > alert (myWfsLayer.getFeatureById(feature.gid));
getFeatureById is an internal-only function. It does not search by '.gid', it searches by internally assigned OpenLayers identifiers. -- Chris > > ...and get always an alert with "null". > > (an "alert (feature);" gives an alert with [object Object], so I think the > arguments[0]-parameter is transported correctly). > > Has anybody an idea why the gid of the feature doesn`t appear in the alert? > > Best regards, Kai > -------- Original-Nachricht -------- > > Datum: Tue, 24 Feb 2009 15:20:45 +0100 > > Von: Till Adams <[email protected]> > > An: Kai Behncke <[email protected]>, [email protected] > > Betreff: Re: [OpenLayers-Users] Displaying attributes by onmouseover > > > Kai Behncke schrieb: > > > Dear Openlayers-Users, > > > > > > > > > I use an application with a couple of point objects (500) visualized by > > a wms in the map. > > > > > > I´m looking for a function that pops up a small window (for example > > with the name of an object) if I do a mouseover at an object in the map. > > > I think for this using a second layer ("invisible" wfs) could be best > > practise (or which other possibilities shall be usable)?? > > > > > > As far as I can see a script like that does not exist in the examples > > (if I haven`t overseen it.....). > > > I would like to try to write one and supply it. > > > What is the way if I want to supply a script like that to the examples? > > > > > > Best regards, Kai Behncke > > > > > Kai, > > > > > > we use WFS and the select feature from OL:: > > > > ** > > * ------------------------------------------------------------------- > > * feature_info_hover > > * function to hover a feature open a new pop up window and destroy > > * it after 3000 milliseconds (variable at end of function) > > * > > * @feature > > * ------------------------------------------------------------------- > > */ > > function feature_info_hover(feature, myWfsLayer) > > { > > if (this.popup && NABU.MAP && NABU.MAP.popups && > > NABU.MAP.popups.length > 0) > > { > > window.clearTimeout(this.autodestroy); > > this.popup.destroy(); > > this.popup = null; > > } > > var myFeature = myWfsLayer.getFeatureById(feature.id); > > > > if (myFeature) > > { > > > > var window_position = new > > OpenLayers.LonLat(myFeature.geometry.x, myFeature.geometry.y); > > this.popup = new OpenLayers.Popup("ol-info-popup", > > window_position, null, '<div class="map-kurzinfo-popup"><span>' + > > myFeature.data.name + '</span><br><span onclick="javascript:OpenInfo(\'' > > + myFeature.data.gid + '\',\'' + myWfsLayer.typename + '\')" > > style="cursor:pointer;">weitere Informationen</span></div>', false); > > this.popup.autoSize = true; > > map.addPopup(this.popup, true); > > this.autodestroy = window.setTimeout(function() > > { > > if (map && map.popups && map.popups.length > 0) > > { > > var len = map.popups.length; > > for (var i = 0; i < len; i++) > > { > > if (map.popups[i] && map.popups[i].destroy) > > { > > map.popups[i].destroy(); > > } > > } > > } > > }, 3000); > > } > > } > > > > See that we refer manually to "myFeature.data.gid", > > "myFeature.data.name" and "myFeature.data.typename" which is not really > > them ost elegant way... > > > > Then initiate it through that code in the ol init function: > > > > > > hover.parken = new OpenLayers.Control.SelectFeature(tbl_p_parken, { > > callbacks: { > > 'over': function() > > { > > feature_info_hover(arguments[0], tbl_p_parken); > > } > > } > > }); > > map.addControl(hover.parken); > > hover.parken.activate(); > > > > > > Where "tbl_p_parken" is our WFS defined in the layer section of the ol > > init function. This only works for one layer as the select feature of OL > > in the moment only handles one layer, this is to be changed on the next > > OL versions. > > > > Regards, Till > > > > > > ---------------------------------------------------------- > > terrestris GmbH & Co. KG > > Irmintrudisstrasse 17 > > 53111 Bonn > > Germany > > > > Till Adams > > Geschäftsführung > > > > Tel: +49 (0)228 / 962 899-52 > > Fax: +49 (0)228 / 962 899-57 > > [email protected] http://www.terrestris.de > > Amtsgericht Bonn, HRA 6835 > > --------------------------------------------------------- > > > > Komplementärin: > > > > terrestris Verwaltungs GmbH > > > > vertreten durch: > > Hinrich Paulsen, Till Adams > > -- > Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: > http://www.gmx.net/de/go/multimessenger01 > _______________________________________________ > Users mailing list > [email protected] > http://openlayers.org/mailman/listinfo/users -- Christopher Schmidt MetaCarta _______________________________________________ Users mailing list [email protected] http://openlayers.org/mailman/listinfo/users
