[OpenLayers-Users] wfs markers without the redraw?
Christopher Schmidt
crschmidt at metacarta.com
Wed Aug 13 08:58:55 EDT 2008
On Wed, Aug 13, 2008 at 08:42:43AM +0200, Eric Lemoine wrote:
> On Wed, Aug 13, 2008 at 6:51 AM, Brenningmeyer, Todd
> > gmlLayer = new OpenLayers.Layer.GML( "villages",
> > "http://localhost/cgi-bin/mapserv.exe",{
> > map:"../htdocs/amap/sites_wfs.map",
> > typename: "villages",
> > outputformat: "gml2"}//
> > );
>
> You cannot pass params in this way. With Layer.GML you must do:
>
> gmlLayer = new OpenLayers.Layer.GML("villages",
> "http://localhost/cgi-bin/mapserv.exe?map=../htdocs/amap/sites_wfs.map&typename=villages&outputformat=gml2");
>
> In addition, don't you miss the service, version and request params to
> make it an actual WFS request?
>
> gmlLayer = new OpenLayers.Layer.GML("villages", [
> "http://localhost/cgi-bin/mapserv.exe",
> "?map=../htdocs/amap/sites_wfs.map",
> "SERVICE=WFS",
> "VERSION=1.0.0",
> "REQUEST=GetFeature",
> "&typename=villages"
> "&outputformat=gml2"].join(",")
> );
>
> But I don't that will fix the getSize problem, which I currently don't
> see where it comes from. Sorry.
In OpenLayers, the options object, when passed, will override all the
layer's internal settings for any named properties. Specifically, in
this case, the 'map' property passed in will override the 'map' property
on the layer -- meaning that now 'layer.map' is not an OpenLayers.Map,
but instead a string. When map.getSize is called by the renderer later
on, it will fail, because strings don't have a getSize method.
So, changing this (as Eric suggested) is the correct way to solve this
particular problem.
Eric,
I'm not surprised he didn't include the WFS, et.c params: with other use
cases, he didn't have to, because both WMS and WFS build these
internally. (The GML layer has no such 'smarts' built in.)
Regards,
--
Christopher Schmidt
MetaCarta
More information about the Users
mailing list