[OpenLayers-Users] typename error in WFS GetFeature request

sunny74 sb.ray at hotmail.com
Tue Apr 6 15:50:11 EDT 2010



Dear Friends,

I am making a WFS Getfeature request and parsing the response of that
request using GML to add a new vector layer over a particular feature of a
layer.

The purpose is to change the color of a one or more features in a layer
So  I have a WMS layer and I am making a WFS GetFeature request for getting
data to create a new vector layer over a feature on the WMS layer.
I have created 2 map files one for wms and other for  wfs because I think a
single map file cannot have both the attributes(correct me if I am wrong).

My code:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
      <title></title>
     <script type="text/javascript"
src="OL28/OL28/lib/OpenLayers.js"></script>
     <script type="text/javascript">

         var mapview, layer, layer1, map, popup, latlon;
         var highlight_style,wfs_url;
    
         function load() {
             //OpenLayers.ProxyHost = "proxy.cgi?url=";
             var lon = 77.384;
             var lat = 28.389;
             var zoom = 9;
             map = new OpenLayers.Map('<%=map.ClientID%>', {
                 controls: [
                    new OpenLayers.Control.PanZoom(),
                    new OpenLayers.Control.Permalink(),
                    new OpenLayers.Control.Navigation()
                ]
             });
              
             //            layer = new OpenLayers.Layer.WMS("OpenLayers
WMS",
             //                "http://localhost:9000/cgi-bin/mapserv.exe?",
{ map: '../htdocs/Shape/newwr1rec.map', layers: 'STATE', format: 'png' });
             //            layer1 = new OpenLayers.Layer.WMS("Rstations",
             //                "http://localhost:9000/cgi-bin/mapserv.exe?",
{ map: '../htdocs/Shape/newwr1rec.map', transparent: true, layers:
'RailwayStations', format: 'png' });
             //alert(map);
            
             layer = new OpenLayers.Layer.WMS("OpenLayers WMS",
"/cgi-bin/mapserv.exe?map=C:/Program Files/Apache Software
Foundation/Apache2.2/htdocs/Delhi/Delhi1.map", { 'layers': 'Adminbndy3',
transparent: false, format: "image/png" });
            
             //map.addLayer(layer);
           
//             var defaultStyle = new OpenLayers.Style({
//                 'pointRadius': 10,
//                 'externalGraphic': '${thumbnail}'
             //             });

//             select = new OpenLayers.Layer.Vector("Selection", { styleMap:
//              new
OpenLayers.Style(OpenLayers.Feature.Vector.style["select"])
//             });
//             hover = new OpenLayers.Layer.Vector("Hover");
             //map.addLayers(layer);
           
//             control = new OpenLayers.Control.GetFeature({
//                 protocol: OpenLayers.Protocol.WFS.fromWMSLayer(layer),
//                 box: true,
//                 hover: true,
//                 multipleKey: "shiftKey",
//                 toggleKey: "ctrlKey"
//             });
//             control.events.register("featureselected", this, function(e)
{
//                 select.addFeatures([e.feature]);
//             });
//             control.events.register("featureunselected", this,
function(e) {
//                 select.removeFeatures([e.feature]);
//             });
//             control.events.register("hoverfeature", this, function(e) {
//                 hover.addFeatures([e.feature]);
//             });
//             control.events.register("outfeature", this, function(e) {
//                 hover.removeFeatures([e.feature]);
//             });
//             map.addControl(control);
//             control.activate();
             // map.setCenter(new OpenLayers.Bounds(76.507859, 27.613907,
78.439621, 28.941223).getCenterLonLat(), 9);
             // define a blank Vector layer and add it to the map
             highlight_style = { fillColor: '#99CCFF', strokeColor:
'#3399FF', fillOpacity: 0.7 };
             hilites = new OpenLayers.Layer.Vector("Highlighted",
                { isBaseLayer: false, features: [], visibility: true, style:
highlight_style }
            );
                map.addLayer(layer, hilites);
                map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
                map.addControl(new OpenLayers.Control.LayerSwitcher());

                // define the WFS server which will fill requests

                wfs_url =
'/cgi-bin/mapserv.exe?map=C:/ms4w/Apache/htdocs/Delhi/Delhi1_wfs.map&SERVICE=WFS&VERSION=1.0.0';
            

             

         }
         function highlightFeatures(typename, attribute, value) {
             
             
               alert("wfs_url :"+ wfs_url);
               var wfsurl = wfs_url + '&REQUEST=getfeature&typename=' +
typename +
                 '&Filter=<Filter><PropertyIsEqualTo><PropertyName>' +
attribute + '</PropertyName><Literal>' + value +
'</Literal></PropertyIsEqualTo></Filter>';
               //alert(wfsurl);
                OpenLayers.loadURL(wfsurl,'',null,highlight_them);
               }
 
 
  function highlight_them(response) {
                          // use the GML parser to turn the XML into a list
of Feature objects
      var features = new
OpenLayers.Format.GML().read(response.responseText);
      alert(response.responseText);
                          // have the Vector layer purge its feature list,
replace them with the new ones
                          hilites.destroyFeatures();
                          hilites.addFeatures(features);
                          hilites.setVisibility(true);
                     
   }

   function chfeatcolor() {

       //alert('Hello');
       highlightFeatures('Adminbndy3', 'Polygon_nm', 'Gautam Buddha Nagar');

   }

Now when I call the highlightFeatures() function through my code I get an
error "InvalidparametersValue" -typename does not exist.

so the error says that I given an invalid value for the typename parameter.
As you can see I have given Adminbndy3  as the typename which is the name of
the shapefile and also the wms layer.
So where am I going wrong?
What should I give as value for the typename paremeter?
Let me know if you need the wfs mapfile.

Thanks for your attention and efforts.

-- 
View this message in context: http://n2.nabble.com/typename-error-in-WFS-GetFeature-request-tp4860968p4860968.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.



More information about the Users mailing list