[OpenLayers-Users] Problem extracting attributes from WFS

Hans Gregers Petersen HGP at blominfo.dk
Wed Apr 22 10:29:39 EDT 2009


Hi All,

I am currently trying to get OpenLayers + Geoserver + PostGIS working.
I use Geoserver to serv features to Openlayers (via WFS) and the points
are added to the map as they are supposed to.
My problem is getting the attribute dato from each feature, I can
extract feature.fid, which is correct, but nothing is available from
feature.attributes.

Should it not be possible to extract attributes from the feature, when
the WFS constructor is given the "extractAttributes:true" option?
I have googled and googled (there does not seem to be more than a number
of people using WFS + attributes?), and tried a number of things so any
help or hints would be great. 

Best Regards,

Gregers Petersen




A sample of the returned GML is:

<gml:featureMember>
<paspunkter:punkter fid="punkter.1">
<paspunkter:x>43.4</paspunkter:x>
<paspunkter:y>47.12</paspunkter:y>
<paspunkter:z>23.1</paspunkter:z>
<paspunkter:kvalitetplan>1.2</paspunkter:kvalitetplan>
<paspunkter:latlon>
<gml:Point srsName="http://www.opengis.net/gml/srs/epsg.xml#900913">
<gml:coordinates decimal="." cs="," ts="
">1322846.5784869,7360249.01559515</gml:coordinates>
</gml:Point>
</paspunkter:latlon>
</paspunkter:punkter>
</gml:featureMember>


The relevant parts of my JavaScript code is:


function onFeatureSelect(feature) {
  selectedFeature = feature;

  var streng = "<div style='font-size:.8em'>Feature: " + feature.fid +
"<br/>Attributes:";
  for(var i in feature.attributes)
    streng += "<br/><b>" + i + "</b>: "+  feature.attributes[i];
  streng += "</div>"
            
  popup = new OpenLayers.Popup.FramedCloud("GlibGlab", 
 
feature.geometry.getBounds().getCenterLonLat(),
                                     null,
                                     streng,
                                     null, true, onPopupClose);
  feature.popup = popup;
  map.addPopup(popup);
}

/* snip */

function init(){
  var options = {
    projection: new OpenLayers.Projection("EPSG:900913"),
    units: "m",
    maxResolution: 156543.0339,
    maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34,
20037508.34, 20037508.34)
  };

  map = new OpenLayers.Map( 'map', options );

  // Google Satellite
  var googleSatLayer = new OpenLayers.Layer.Google("Google
Satellite",{type: G_SATELLITE_MAP, sphericalMercator:true,
numZoomLevels: 21 });
  map.addLayer(googleSatLayer);

	/* snip */

	// Our paspunkt layer
	var ppLayer = new OpenLayers.Layer.WFS( "Paspunkter",
"WFSproxy.ashx?",
			{typename: "paspunkter:punkter",
extractAttributes:true, displayInLayerSwitcher:false});
       map.addLayer(ppLayer);
            
  /* snip */            
   			
}



More information about the Users mailing list