The "x-" is used to indicate that this is a extension to the base SLD spec. YSLD does not do anything special here it just generates the equivalent data structure as SLD would....
Searching through the code: https://github.com/geotools/geotools/search?q=firstMatch&unscoped_q=firstMatch only shows "firstMatch" in documentation - so something is odd here. Reading the docs https://docs.geotools.org/latest/userguide/library/render/style.html#featuretypestyle firstMatch: stops rule evaluation after the first match (making it easier to work with datasets where content is classified by distinct attribute values) // exit rules on first match, like a switch statement fts.getOptions().put("ruleEvaluation", "first"); So try experimenting with x-ruleEvaulation: "first" -- Jody Garnett On Fri, 19 Jul 2019 at 06:42, groznykh <[email protected]> wrote: > Hello. > > According to documentation > < > https://docs.geoserver.org/stable/en/user/styling/ysld/reference/featurestyles.html#syntax> > > x-firstMatch property of featureType in YSLD style "Stops rule evaluation > after the first match". But somehow it does not. > > I use: > > - window 7 > - GeoServer 2.15.2 > - mongoDB plugin (for GeoServer 2.15.2) > - YSLD plugin (for GeoServer 2.15.2) > > I populated mongoDB collection with two records: > > - { > "name" : "name 1", > "geom" : { > "type" : "Polygon", > "coordinates" : [ > [ > [ > 101.200407, > 58.922034 > ], > [ > 102.200221, > 58.918487 > ], > [ > 102.200161, > 59.917305 > ], > [ > 101.200228, > 59.916561 > ], > [ > 101.200407, > 58.922034 > ] > ] > ] > } > } > > - { > "name" : "name 2", > "geom" : { > "type" : "Polygon", > "coordinates" : [ > [ > [ > 103.200407, > 58.922034 > ], > [ > 104.200221, > 58.918487 > ], > [ > 104.200161, > 59.917305 > ], > [ > 103.200228, > 59.916561 > ], > [ > 103.200407, > 58.922034 > ] > ] > ] > } > } > > > Then I create a layer and an YSLD style for that layer: > > feature-styles: > - name: some_name > *x-firstMatch: true* > rules: > - filter: ${name = 'name 1'} > symbolizers: > - polygon: > fill-color: 'red' > fill-opacity: 0.5 > stroke-color: 'red' > stroke-opacity: 0.5 > - symbolizers: > - polygon: > fill-color: 'yellow' > fill-opacity: 0.5 > stroke-color: 'yellow' > stroke-opacity: 0.5 > > In preview the feature with name = 'name 1' is orange (both rules are > applied) and the feature with name = 'name 2' is yellow. But first feature > should be red (not orange) - only first rule should be applied. > > </file/t385081/KAgqWDPuEYyeym.jpg> > > Why so? > > Thanks in advance for any help > > > > -- > Sent from: > http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html > > > _______________________________________________ > Geoserver-users mailing list > > Please make sure you read the following two resources before posting to > this list: > - Earning your support instead of buying it, but Ian Turton: > http://www.ianturton.com/talks/foss4g.html#/ > - The GeoServer user list posting guidelines: > http://geoserver.org/comm/userlist-guidelines.html > > If you want to request a feature or an improvement, also see this: > https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer > > > [email protected] > https://lists.sourceforge.net/lists/listinfo/geoserver-users >
_______________________________________________ Geoserver-users mailing list Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer [email protected] https://lists.sourceforge.net/lists/listinfo/geoserver-users
