[mkgmap-dev] Little assist needed from the style code implementors
From Steve Ratcliffe steve at parabola.me.uk on Mon Sep 13 09:52:51 BST 2010
On 12/09/10 21:08, WanMil wrote: > Hi, > > I have rather finished the changes for the new multipolygon line/polygon > tag handling (see > http://www.mkgmap.org.uk/pipermail/mkgmap-dev/2010q3/008977.html). But I > need some quick help from someone who known the Java internals of the > style processing. > > All line rules should be executed only if the line contains the tag > "mkgmap:styleusage=line" or if the tag is not set. The same for polygons > with "mkgmap:styleusage=polygon". > I think this should be easy with an AndOp? But I don't know how to set > this rule to the lines/polygons RuleSet in StyleImpl. Any suggestions? The way is converted into a garmin element by OsmConverter.convertWay(). It matches against both line and polygon rules together because normally it doesn't know if something is a line or a polygon. As I understand your change you want to mark ways as being definitely a polygon or definitely a line and only match against the polygon or line rules respectively. I would do this by adding the hint to the Element (or Way) and then catching this in convertWay(). This incomplete patch shows what I mean: Index: src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java =================================================================== --- src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java (revision 1677) +++ src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java (revision ) @@ -278,7 +278,15 @@ preConvertRules(way); - wayRules.resolveType(way, new TypeResult() { + Rule rules; + if (way.getKind() == GType.POLYLINE) + rules = lineRules; + else if (way.getKind() == GType.POLYGON) + rules = polygonRules; + else + rules = wayRules; + + rules.resolveType(way, new TypeResult() { public void add(Element el, GType type) { if (type.isContinueSearch()) { // If not already copied, do so now In this waysRules exists already and it is the union of linesRules and polygonRules (you would have to make them available separately). You set way.kind to be POLYLINE or POLYGON or leave it unset in the normal case. ..Steve
- Previous message: [mkgmap-dev] Little assist needed from the style code implementors
- Next message: [mkgmap-dev] Little assist needed from the style code implementors
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the mkgmap-dev mailing list