[OpenLayers-Users] using openlayers.rule with existing style
Eric Lemoine
eric.c2c at gmail.com
Fri Aug 22 14:15:52 EDT 2008
Maybe the OpenLayers version you're using does support the display
style property, that one was introduced after the others. I think 2.6
has it. Eric
2008/8/22, Brenningmeyer, Todd <tbrenningmeyer at maryville.edu>:
> Eric,
> Thanks. That helped and I now see that I may be able to do this with the
> addUniqueValueRules? At least it seems that this is the case. I was unable
> to get the symbolizer with {display: "none"} to hide the selected features.
> When I change the fillcolor the color changes on redraw but when display:
> "none" is used nothing seems to change. Is there another way to set this?
> Thanks again,
> Todd
>
> ________________________________
>
> From: Eric Lemoine [mailto:eric.c2c at gmail.com]
> Sent: Thu 8/21/2008 1:15 AM
> To: Brenningmeyer, Todd; users at openlayers.org
> Subject: Re: [OpenLayers-Users] using openlayers.rule with existing style
>
>
>
> Hi. A Rule object as opposed to a Filter object must be passed to
> addRules, the code snippet you first posted had this right. If your
> goal is to not display points matching some criteria, your rule's
> symbolizer will be {display: "none"}. Also, one thing to pay attention
> to: if the feature property is an integer your must have an integer as
> your filter's value (value: "1" looks suspicious to me, but i dont
> know what your data is). Hope this helps. Eric
>
> 2008/8/20, Brenningmeyer, Todd <tbrenningmeyer at maryville.edu>:
>> I was able to get the function to run without crashing but the rules I
>> apply
>> do not seem to change the characteristics of the features. None of the
>> features are filtered when I apply the "filter.comparison.EQUAL_TO". Am I
>> applying this correctly or does it not work the way I thought? Any help
>> is
>> appreciated.
>> Todd
>>
>> function setStyle(index) {
>> if(index == 'all'){
>> gmlLayer.styleMap.styles["default"] =
>> sld.namedLayers["Inked"].userStyles[0];
>> gmlLayer.redraw();
>> } else {
>> var rule = new OpenLayers.Filter.Comparison({
>> type: OpenLayers.Filter.Comparison.EQUAL_TO,
>> property: "plan_inkd",
>> value: "0",
>> symbolizer: {fillColor:"FFFF00"}
>> })
>> sld.namedLayers["NotInked"].userStyles[0].addRules([rule]);
>> gmlLayer.styleMap.styles["default"] =
>> sld.namedLayers["NotInked"].userStyles[0];
>> gmlLayer.redraw();
>> }
>> }
>>
>> ________________________________
>>
>> From: Brenningmeyer, Todd
>> Sent: Wed 8/20/2008 10:50 AM
>> To: users at openlayers.org
>> Subject: using openlayers.rule with existing style
>>
>>
>> Hello,
>> I have a series of points that are symbolized with an sld. Each point
>> represents a site of a particular period (classical, byzantine, etc.).
>> What
>> I want to do is allow the user to turn points on and off by clicking a
>> checkbox on the side (all points are in a "sites" table in postgresql).
>> I'm
>> currently using a filter in the sld to symbolize sites of each period
>> differently. Can I apply a new filter using openlayers.rule with a new
>> openlayers.filter to turn layers on and off? The function below is called
>> when someone clicks on the checkbox. The code below comes up with an
>> "OpenLayers.rule is not a constructor" error when it is executed. I
>> suppose
>> my question is whether or not the features can be filtered to display or
>> not
>> display using this method and if so how would I do this? If it's not a
>> reasonable approach does anyone have ideas about how something like this
>> could be done? I would rather not separate all of the features into
>> different files and an sld with individual styles for each possible
>> combination of clicks could get very long.
>> Thanks,
>> Todd
>>
>> function setStyle(index) {
>> var rule = new OpenLayers.rule({
>> filter: new OpenLayers.Filter.Comparison({
>> type: OpenLayers.Filter.Comparison.EQUAL_TO,
>> property: "plan_inkd",
>> value: "1"
>> }),
>> symbolizer: {
>> Point: { fillColor:"FFFF00", strokeColor: "blue"}
>> }
>> });
>> gmlLayer.styleMap.styles["default"] =
>> sld.namedLayers["Villages"].userStyles[0].addRule(rule);
>> gmlLayer.redraw();
>> }
>> _______________________________________________
>> Users mailing list
>> Users at openlayers.org
>> http://openlayers.org/mailman/listinfo/users
>>
>
>
>
More information about the Users
mailing list