[OpenLayers-Users] Issues with some popups

Nicholas Efremov-Kendall n.e.kendall at gmail.com
Fri Aug 21 10:09:50 EDT 2009


Eric,
If I understand you correctly, every instance of feature.something, should
now be evt.feature.something?

On Sun, Aug 16, 2009 at 8:00 PM, Eric Lemoine
<eric.lemoine at camptocamp.com>wrote:

> On Sunday, August 16, 2009, Nicholas Efremov-Kendall
> <n.e.kendall at gmail.com> wrote:
> > Hi all,
> > I'm having some issues with my code, and I'm not sure where the problem
> lies. This code worked at one point, and I've been staring at it for too
> long to see the problem. Two firebug errors fire when I click on one of the
> POI's "feature.geometry is undefined" and "popup is undefined". Any
> suggestions?
> >
> >
> > var map, layer, selectedFeature, selectControl, selectedFeature,
> sites;function onPopupClose(evt) {
>  selectControl.unselect(selectedFeature);        }
> >
> > function onFeatureSelect(feature) {            selectedFeature = feature;
>
> "featureselected" listeners do not receive a feature but an object
> with a feature property referencing the selected feature. So your code
> should look like this:
>
> function onFeatureSelect(evt) {
>    selectedFeature = evt.feature;
>    ...
> }
>
> cheers,
>
>
>
>
> > popup = new OpenLayers.Popup.FramedCloud("chicken",
>                 feature.geometry.getBounds().getCenterLonLat(),
> >                                      null,
>       "<div style='font-size:.8em'>Site_ID: " + feature.attributes.title
> +"<hr />Locality: " + feature.attributes.title+"<br/>Description: "
> +feature.attributes+"<br/> Feature ID: "+feature.id+"<br/>Feature
> Type:"+feature.attributes.NEWSITE_ +"</div>",
> >                                      null, true, onPopupClose);
>  feature.popup = popup;            map.addPopup(popup);             }
> >                 function onFeatureUnselect(feature) {
>  map.removePopup(feature.popup);            feature.popup.destroy();
>    feature.popup = null;
> >         }
> >               function init() {                       map = new
> OpenLayers.Map ("map",
> >                                       {
>     controls:[                                      new
> OpenLayers.Control.Navigation(),
> >                                       new
> OpenLayers.Control.PanZoomBar(),                                    new
> OpenLayers.Control.LayerSwitcher(),
> >                                       new
> OpenLayers.Control.Attribution()],
>  sphericalMercator: true,                                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"),
> >                                       }                       );
> >                       var     sites = new OpenLayers.Layer.GML (
>              "Archaeological Sites", "data/siteswatr.gml",
> >                       {                       style: {pointRadius: 2.5},
>                     projection: new OpenLayers.Projection("EPSG:4326"),
> >                       format: OpenLayers.Format.GML                   }
>                     );
> >               map.addLayer(sites);
> >               sites.events.on({                       'featureselected':
> onFeatureSelect,
> >               'featureunselected': onFeatureUnselect
>      });
> >
> >             selectControl = new OpenLayers.Control.SelectFeature(sites,
>              {clickout: true,                               toggle: false,
>                        hover: false,
> >                               }            );
>  map.addControl(selectControl);
> >             selectControl.activate();
> >                       if( ! map.getCenter() ){
>  sites.events.register('loadend', sites,
> function(){map.zoomToExtent(sites.getDataExtent())});
> >                       map.setCenter(null, null);                      };}
> > --
> > Nicholas Efremov-Kendall
> > Fulbright Student 2009-2010, Ukraine
> > nefremov at artsci.wustl.edu
> > c/o Halyna Yerko
> > Balzaka 92a, Kv 27
> > 02232
> > Kyiv, Ukraine
> > (mob) +380963576524
> >
> >
>
> --
> Eric Lemoine
>
> Camptocamp France SAS
> Savoie Technolac, BP 352
> 73377 Le Bourget du Lac, Cedex
>
> Tel : 00 33 4 79 44 44 96
> Mail : eric.lemoine at camptocamp.com
> http://www.camptocamp.com
>



-- 
Nicholas Efremov-Kendall
Fulbright Student 2009-2010, Ukraine
nefremov at artsci.wustl.edu
c/o Halyna Yerko
Balzaka 92a, Kv 27
02232
Kyiv, Ukraine
(mob) +380963576524
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20090821/704638a1/attachment.html


More information about the Users mailing list