From b92592b6b45f1eaf39fd039f0d1e8221b0d78ff9 Mon Sep 17 00:00:00 2001 From: RudyTheDev Date: Sat, 15 Dec 2018 15:32:48 +0200 Subject: [PATCH 1/4] Add fill pattern for reservoir --- css/25_areas.css | 1 + dist/img/pattern/lines.png | Bin 0 -> 18607 bytes modules/svg/areas.js | 2 ++ modules/svg/defs.js | 1 + 4 files changed, 4 insertions(+) create mode 100644 dist/img/pattern/lines.png diff --git a/css/25_areas.css b/css/25_areas.css index f2bb3184f..2c27c0607 100644 --- a/css/25_areas.css +++ b/css/25_areas.css @@ -104,6 +104,7 @@ path.fill.tag-natural-water { background-color: rgba(119, 211, 222, 0.3); } .pattern-color-waves, +.pattern-color-water, .pattern-color-pond { fill: rgba(119, 211, 222, 0.3); } diff --git a/dist/img/pattern/lines.png b/dist/img/pattern/lines.png new file mode 100644 index 0000000000000000000000000000000000000000..d58ff64c752de149d348d8e4947dbeddb6742259 GIT binary patch literal 18607 zcmeI4ZHya78GyG+RFX^6NEB$*fY@_d(uVBqw|8gd^Km&}awqC=T&~Kcw9whv*}GM2 zukr5PIfoRLAb}#FN-1ii3i_ie0*R=zq4Df96viC|$dUM%0|ps+dyz0k#D&1#)!3qoO{S%>I2jzt$Q z1-0?q-(LJ-P7J*9+)=Zvl=!jf&C3dqRYOu# zM*)taitSgfI6|aC!}Fc_(!q9h)z!n&-EDe@pA z4^f-?N~6+hnulau!Bt#~BVwlxw5uWXHf5>cpi77!{Caj4|Eg<{t!ROlc5lBGZkds+} zxahX4JvQ3qgI(LuR&CeB61K6Mx^{iwOBj=&14A(_l)pyT9#9P6E1HCXZKkfF0)ga0 zXehSnVIO$c=o;rC1{hkT)gHLMt@iVIO*M?9)jAoj32PT1U$RvTXtuBB^QL;mR+HQs z^GFC?U_(_=iM6JA#E+qn-Xl}8FxD|L4bw+tbPWnzTG~5Qvg7b_11-tla@m=!MKL7f zaJE!T+7poW09A!~MB1a9iYNJ=p-QgrVhJjql{ZaO^F7!~>R$8ikZQZ`)J|Lv9#)EB zL2P0uDM}tC6iL{9MU{Y>cQp-bF49QH({^T@ZK&vDjesoZu#(Z~u*Ej;u%eLgkl`fx zc>_vNML;qw!`D3{uRxt7MOwuGHyf&&36g|8(VIW5ggt^k-CNpC*w)fphm8m)3(I(} zv$D{&I?cg$CbkwR2cl%rE}~?*#v}uJO1sUXmW5Oy*ceVW1RKnU*Ri&YYnPkuQ&%mm z;ZCB^kJn%WPcD&(kYy!Gz4n^*yC0k-*Ch}UT-{t4RMm0~=q5WtGR}czAj!oFkf5&W zx{3@7*=8rqnJD&mG3iVOaPO+CnU0q4te6?C;ZAyaGHeJ~!q9CaT86bH>=ors&pHMD zE&4A;4u!Q<+_;(~BB=_=)*h3E*>8kZk?se?I22*MUI`FPvQu8IdF_odU4}ay&G`5q z_SM6U;A+Ncrj-H|ozi;Z1S3*&+ z2pks+C91=5Q4}l!$HhX4>Tp~X1&hFOu~4Eq92Z5wB5+(Rl&B8JMNzN_92W~Es>5+n z6f6SA#X^bda9k7xi@HLW$~d zToeV1z;UrqqB{NdiRy4%6a|aGaj{UM zIvf{8!6I;6ER?7Y$3;=F2pks+C91=5Q4}l!$HhX4>Tp~X1&hFOu~4Eq92Z5wB3u^N zNcUH9aE<&F&Kmj6n_ryU`X};xIU<^wFAKu@-GcDQ=LF$j?~w1m3c`va2p1j}1m~^&Q>yN}+zP0)`w%@kn;BTIJ;iYq1%6tFt zkL|frV;{Kmp1D0g`Qk_QZ~peemIrqK^UfVJPoLTU@>iG6ez5t(t;;7rVm`6uWaE`x qui3w^Pl%`A{r1~`HopG|5~lAsJGZ!V?pvhS!tC_n(sKtMKJ_0c-dcwM literal 0 HcmV?d00001 diff --git a/modules/svg/areas.js b/modules/svg/areas.js index 3192d7fd6..4c1072a2e 100644 --- a/modules/svg/areas.js +++ b/modules/svg/areas.js @@ -41,6 +41,7 @@ export function svgAreas(projection, context) { meadow: 'meadow', military: 'construction', orchard: 'orchard', + reservoir: 'water', quarry: 'quarry', vineyard: 'vineyard' }, @@ -51,6 +52,7 @@ export function svgAreas(projection, context) { scrub: 'scrub', water: [ { water: 'pond', pattern: 'pond' }, + { water: 'reservoir', pattern: 'water' }, { pattern: 'waves' } ], wetland: [ diff --git a/modules/svg/defs.js b/modules/svg/defs.js index 726ea7b29..a6eb14b39 100644 --- a/modules/svg/defs.js +++ b/modules/svg/defs.js @@ -125,6 +125,7 @@ export function svgDefs(context) { ['quarry', 'quarry'], ['scrub', 'bushes'], ['vineyard', 'vineyard'], + ['water', 'lines'], ['waves', 'waves'], ['wetland', 'wetland'], ['wetland_marsh', 'wetland_marsh'], From 89a128f14ca88be844a194314865812d044a3343 Mon Sep 17 00:00:00 2001 From: RudyTheDev Date: Sat, 15 Dec 2018 15:58:39 +0200 Subject: [PATCH 2/4] Allow directly specified fill pattern for entire tag (not using for anything as of yet) --- modules/svg/areas.js | 51 +++++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/modules/svg/areas.js b/modules/svg/areas.js index 4c1072a2e..1f3a0d1c3 100644 --- a/modules/svg/areas.js +++ b/modules/svg/areas.js @@ -11,6 +11,8 @@ export function svgAreas(projection, context) { // Patterns only work in Firefox when set directly on element. // (This is not a bug: https://bugzilla.mozilla.org/show_bug.cgi?id=750632) var patterns = { + // tag - pattern name + // -or- // tag - value - pattern name // -or- // tag - value - rules (optional tag-values, pattern name) @@ -93,33 +95,38 @@ export function svgAreas(projection, context) { var entityValue = entity.tags[tag]; if (!entityValue) continue; - var values = patterns[tag]; - for (var value in values) { - if (entityValue !== value) continue; + if (typeof patterns[tag] === 'string') { // extra short syntax (just tag) - pattern name + this.style.fill = this.style.stroke = 'url("#pattern-' + patterns[tag] + '")'; + return; + } else { + var values = patterns[tag]; + for (var value in values) { + if (entityValue !== value) continue; - var rules = values[value]; - if (typeof rules === 'string') { // short syntax - pattern name - this.style.fill = this.style.stroke = 'url("#pattern-' + rules + '")'; - return; - } else { // long syntax - rule array - for (var ruleKey in rules) { - var rule = rules[ruleKey]; + var rules = values[value]; + if (typeof rules === 'string') { // short syntax - pattern name + this.style.fill = this.style.stroke = 'url("#pattern-' + rules + '")'; + return; + } else { // long syntax - rule array + for (var ruleKey in rules) { + var rule = rules[ruleKey]; - var pass = true; - for (var criterion in rule) { - if (criterion !== 'pattern') { // reserved for pattern name - // The only rule is a required tag-value pair - var v = entity.tags[criterion]; - if (!v || v !== rule[criterion]) { - pass = false; - break; + var pass = true; + for (var criterion in rule) { + if (criterion !== 'pattern') { // reserved for pattern name + // The only rule is a required tag-value pair + var v = entity.tags[criterion]; + if (!v || v !== rule[criterion]) { + pass = false; + break; + } } } - } - if (pass) { - this.style.fill = this.style.stroke = 'url("#pattern-' + rule.pattern + '")'; - return; + if (pass) { + this.style.fill = this.style.stroke = 'url("#pattern-' + rule.pattern + '")'; + return; + } } } } From dee530c8af749e1546a33db2a3a8b7662a1b9540 Mon Sep 17 00:00:00 2001 From: RudyTheDev Date: Sat, 15 Dec 2018 16:16:36 +0200 Subject: [PATCH 3/4] Add groyne and breakwater stroke style --- css/25_areas.css | 4 +++- css/50_misc.css | 10 +++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/css/25_areas.css b/css/25_areas.css index 2c27c0607..081302258 100644 --- a/css/25_areas.css +++ b/css/25_areas.css @@ -80,7 +80,9 @@ path.stroke.tag-natural-water, path.stroke.tag-landuse-aquaculture, path.stroke.tag-landuse-basin, path.stroke.tag-landuse-harbour, -path.stroke.tag-landuse-reservoir { +path.stroke.tag-landuse-reservoir, +path.stroke.tag-man_made-groyne, +path.stroke.tag-man_made-breakwater { stroke: rgb(119, 211, 222); } path.fill.tag-amenity-swimming_pool, diff --git a/css/50_misc.css b/css/50_misc.css index 25ed4e08a..ee52751ce 100644 --- a/css/50_misc.css +++ b/css/50_misc.css @@ -96,16 +96,20 @@ path.line.stroke.tag-natural-tree_row { } -/* barriers */ +/* barriers and similar */ path.line.stroke.tag-barrier:not(.tag-barrier-hedge) { stroke: #ddd; } -path.line.stroke.tag-barrier { +path.line.stroke.tag-barrier, +path.stroke.tag-man_made-groyne, +path.stroke.tag-man_made-breakwater { stroke-width: 3px; stroke-linecap: round; stroke-dasharray: 15, 5, 1, 5; } -.low-zoom path.line.stroke.tag-barrier { +.low-zoom path.line.stroke.tag-barrier, +.low-zoom path.stroke.tag-man_made-groyne, +.low-zoom path.stroke.tag-man_made-breakwater { stroke-width: 2px; stroke-linecap: butt; stroke-dasharray: 8, 2, 2, 2; From 743be30a76f4a8e2d4fe119bf269a1f8335f5bd3 Mon Sep 17 00:00:00 2001 From: RudyTheDev Date: Sat, 15 Dec 2018 16:33:06 +0200 Subject: [PATCH 4/4] Use water fill pattern for fountain area --- css/25_areas.css | 5 ++++- modules/svg/areas.js | 7 ++++--- modules/svg/defs.js | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/css/25_areas.css b/css/25_areas.css index 081302258..3224a3c62 100644 --- a/css/25_areas.css +++ b/css/25_areas.css @@ -95,6 +95,9 @@ path.fill.tag-natural-water { stroke: rgba(119, 211, 222, 0.3); fill: rgba(119, 211, 222, 0.3); } +path.fill.tag-amenity-fountain { + fill: rgba(119, 211, 222, 0.3); +} .preset-icon-fill-area.tag-amenity-swimming_pool, .preset-icon-fill-area.tag-leisure-swimming_pool, .preset-icon-fill-area.tag-landuse-aquaculture, @@ -106,7 +109,7 @@ path.fill.tag-natural-water { background-color: rgba(119, 211, 222, 0.3); } .pattern-color-waves, -.pattern-color-water, +.pattern-color-water_standing, .pattern-color-pond { fill: rgba(119, 211, 222, 0.3); } diff --git a/modules/svg/areas.js b/modules/svg/areas.js index 1f3a0d1c3..8a0ef97e1 100644 --- a/modules/svg/areas.js +++ b/modules/svg/areas.js @@ -18,7 +18,8 @@ export function svgAreas(projection, context) { // tag - value - rules (optional tag-values, pattern name) // (matches earlier rules first, so fallback should be last entry) amenity: { - grave_yard: 'cemetery' + grave_yard: 'cemetery', + fountain: 'water_standing' }, landuse: { cemetery: [ @@ -43,7 +44,7 @@ export function svgAreas(projection, context) { meadow: 'meadow', military: 'construction', orchard: 'orchard', - reservoir: 'water', + reservoir: 'water_standing', quarry: 'quarry', vineyard: 'vineyard' }, @@ -54,7 +55,7 @@ export function svgAreas(projection, context) { scrub: 'scrub', water: [ { water: 'pond', pattern: 'pond' }, - { water: 'reservoir', pattern: 'water' }, + { water: 'reservoir', pattern: 'water_standing' }, { pattern: 'waves' } ], wetland: [ diff --git a/modules/svg/defs.js b/modules/svg/defs.js index a6eb14b39..47d9722a5 100644 --- a/modules/svg/defs.js +++ b/modules/svg/defs.js @@ -125,7 +125,7 @@ export function svgDefs(context) { ['quarry', 'quarry'], ['scrub', 'bushes'], ['vineyard', 'vineyard'], - ['water', 'lines'], + ['water_standing', 'lines'], ['waves', 'waves'], ['wetland', 'wetland'], ['wetland_marsh', 'wetland_marsh'],