source: josm/trunk/data_nodist/amenity-in-amenity.osm

Last change on this file was 15102, checked in by GerdP, 5 months ago

fix #10391: Add support for "not element of" operator

  • implement 4 new operators: ⊆,⊈,⊇,⊉
  • ⊆ is a synonym for the existing ∈ operator that uses the ContainsFinder, it

matches for elements which contain one or more elements matching the left Selectors

  • ⊈ matches for elements which do not contain any element matching the left Selectors (also uses the ContainsFinder)
  • ⊇ matches for elements which are contained in an element matching the left Selectors, it uses the InsideOrEqualFinder and is typically slower than ⊆, so it is probably only usefull for the search dialog
  • ⊉ matches for elements which are NOT contained in any element matching the left Selector
  • Both ContainsFinder and InsideOrEqualFinder work with areas, an area is either descibed by a closed way or a valid, complete relation of type=multipolygon or type=boundary. Incomplete objects do not contain something, invalid objects produce unpredictable results.
  • An element A contains another element B when it is an area and when B is either a Node inside the area of A, or when it is also an area that is fully inside or equal to A. An element is not inside a relation when it is a member of that relation.
  • hint: with ∈,⊆,⊈ prefer to use area selector instead of * for the right side, for ⊇,⊉ use area selector on the left side
File size: 1.6 KB
1<?xml version='1.0' encoding='UTF-8'?>
2<osm version='0.6' upload='never' generator='JOSM'>
3  <node id='-3879' action='modify' visible='true' lat='-22.69072960433' lon='-48.5607904595' />
4  <node id='-3877' action='modify' visible='true' lat='-22.69078106744' lon='-48.56082153115' />
5  <node id='-3875' action='modify' visible='true' lat='-22.6907376271' lon='-48.56085907164' />
6  <node id='-3871' action='modify' visible='true' lat='-22.69070289438' lon='-48.56081834975' />
7  <node id='-3863' visible='true' lat='-22.69071631095' lon='-48.56081028236' />
8  <node id='-3862' visible='true' lat='-22.69074204865' lon='-48.56081115962' />
9  <node id='-3861' visible='true' lat='-22.69071809155' lon='-48.56082765213' />
10  <node id='-3860' visible='true' lat='-22.69074528609' lon='-48.56083782836' />
11  <node id='123' version='3' lat='-22.69073023197' lon='-48.56082133585'>
12    <tag k='amenity' v='hospital' />
13  </node>
14  <way id='-3880' action='modify' visible='true'>
15    <nd ref='-3877' />
16    <nd ref='-3879' />
17    <nd ref='-3871' />
18  </way>
19  <way id='-3876' action='modify' visible='true'>
20    <nd ref='-3871' />
21    <nd ref='-3875' />
22    <nd ref='-3877' />
23  </way>
24  <way id='123' version='3' visible='true'>
25    <nd ref='-3861' />
26    <nd ref='-3860' />
27    <nd ref='-3862' />
28    <nd ref='-3863' />
29    <nd ref='-3861' />
30    <tag k='amenity' v='hospital' />
31  </way>
32  <relation id='123' version='3' action='modify' visible='true'>
33    <member type='way' ref='-3876' role='outer' />
34    <member type='way' ref='-3880' role='outer' />
35    <tag k='amenity' v='hospital' />
36    <tag k='type' v='multipolygon' />
37  </relation>
Note: See TracBrowser for help on using the repository browser.