Doh - this is the feedback we need when trying to represent "default 
geometry" - we proceeded with <PropertyName></PropertyName> under the 
assumption this was an invalid XPath .... it looks to me like this is 
already covered by the use case you describe so we need a new trick :-(

So justin I think this is a case of "you win" - and now you have some 
work to do :-(

You going to walk through the SLD case in order to confirm that it 
agrees with WFS GetFeaures (which is where you example comes from?)

My understanding of what SLD does is this:
<Rule>
    ....
    <ogc:Filter>
         <ogc:Not>
            <ogc:PropertyIsEqualTo>
               <ogc:PropertyName>TYPE</ogc:PropertyName>
               <ogc:Literal>highway</ogc:Literal>
            </ogc:PropertyIsEqualTo>
        </ogc:Not>
    </ogc:Filter>
    ...
</Rule>

For the <ogc:Filter> (if supplied) I think they have to be in agreement 
with what you do for WFS GetFeatures? If a user does not supply one we 
assume Filter.INCLUDES etc... There is no problem here; time to move on.

The other place this appears is
<Rule>
   ....
   <LineSymbolizer>
      <Stroke>
         <CssParameter name="stroke">#319738</CssParameter>
         <CssParameter name="stroke-width">2</CssParameter>
       </Stroke>
   </LineSymbolizer>
</Rule>

That is the LineSymbolizer has not specified what geometry is being 
used, We should represent this as lineSymbolizer.getGeometryExpression() 
= Expression.NULL - Right now in the Renderer code we detect this; and 
make a <PropertyName/> just so we can hook into the 
PropertyAcessorFactory thing you made ... we need an alternate way to do 
this; I would still like to see it part of PropertyAccessor (since we 
are accessing a "default" property after all).

Cheers,
Jody
> Hi all,
>
> The reason for my last question about BinarySpatialOperator was this filter:
>
> <Filter>
>    <Intersects>
>      <PropertyName />
>      <Envelope>
>      ...
>      </Envelope>
>    </Intersects>
> </Filter>
>
> Note the empty property name. How i need to interpret this is as run the 
> intersection against every geometric attribute in the type. My question 
> is how do I do that.
>
> With the PropertyAccessor interface, we can handle some "special" 
> property names given some context. For instance an empty string "" with 
> a Geometry.class returns the default geometry of a feature.
>
> Now we could recognize the "*" string with a Geometry context, but that 
> would imply that a collection should be returned. I am weary of 
> implementing this as I am sure not much of our code out there is ready 
> to handle this case of multiple properties mapping to a single property 
> name.
>
> Tough one. Anyone have any thoughts.
>
> -Justin
>
>   


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to