├── README.md ├── agpl-3.0.txt ├── css ├── ajax-loader.gif ├── fonts │ ├── slick.eot │ ├── slick.svg │ ├── slick.ttf │ └── slick.woff ├── jsdotpattern.css ├── slick-theme.css └── slick.css ├── dotpattern.html ├── js ├── README.md ├── jquery-1.11.1.min.js ├── seedrandom.min.js ├── slick.min.js ├── snap.svg-min.js ├── svg_todataurl.js └── url.min.js ├── jsdotpattern.js ├── relax_ww.js ├── svg_pattern.sh ├── symbols.js ├── symbols ├── bforest.svg ├── bog.svg ├── corner_up.svg ├── cross1.svg ├── cross2.svg ├── cross_diagonal4.svg ├── dash.svg ├── dash_cross_diagonal.svg ├── dash_diagonal1.svg ├── dash_diagonal1_thin.svg ├── dash_diagonal2.svg ├── dash_diagonal2_thin.svg ├── dash_pair.svg ├── dash_thin.svg ├── dot.svg ├── flower1.svg ├── flower1b.svg ├── flower2.svg ├── flower2b.svg ├── flower3.svg ├── flower3b.svg ├── forest.svg ├── grass.svg ├── grass_small.svg ├── grass_tall.svg ├── grave.svg ├── heap.svg ├── hilal1.svg ├── hilal2.svg ├── mangrove.svg ├── marsh │ ├── 1.svg │ └── 2.svg ├── pineapple.svg ├── pixel.svg ├── quarry1.svg ├── quarry2.svg ├── reed │ ├── 1.svg │ └── 2.svg ├── reef_coral │ ├── 1.svg │ ├── 2.svg │ ├── 3.svg │ └── 4.svg ├── rice.svg ├── ring10.svg ├── ring10_thick.svg ├── ring12.svg ├── ring12_thick.svg ├── ring4.svg ├── ring4_thick.svg ├── ring6.svg ├── ring6_thick.svg ├── ring8.svg ├── ring8_thick.svg ├── ring9.svg ├── ring9_thick.svg ├── rock │ ├── 1.svg │ ├── 10.svg │ ├── 11.svg │ ├── 12.svg │ ├── 2.svg │ ├── 3.svg │ ├── 4.svg │ ├── 5.svg │ ├── 6.svg │ ├── 7.svg │ ├── 8.svg │ └── 9.svg ├── rock_thin │ ├── 1.svg │ ├── 10.svg │ ├── 11.svg │ ├── 12.svg │ ├── 2.svg │ ├── 3.svg │ ├── 4.svg │ ├── 5.svg │ ├── 6.svg │ ├── 7.svg │ ├── 8.svg │ └── 9.svg ├── scree │ ├── 1.svg │ ├── 2.svg │ ├── 3.svg │ ├── 4.svg │ ├── 5.svg │ └── 6.svg ├── scrub.svg ├── scrub2.svg ├── scrub_broad_o1.svg ├── scrub_needle_o1.svg ├── star_of_david1.svg ├── star_of_david2.svg ├── star_of_david3.svg ├── sugarcane │ ├── sugarcane1.svg │ └── sugarcane2.svg ├── sugarcane1.svg ├── sugarcane2.svg ├── tree.svg ├── tree2.svg ├── tree_a1.svg ├── tree_a2.svg ├── tree_apple.svg ├── tree_as1.svg ├── tree_as2.svg ├── tree_banana.svg ├── tree_banana2.svg ├── tree_broad_e1.svg ├── tree_broad_e2.svg ├── tree_broad_o1.svg ├── tree_broad_o2.svg ├── tree_broad_o3.svg ├── tree_broad_o4.svg ├── tree_broad_o5.svg ├── tree_broad_o6.svg ├── tree_broad_o7.svg ├── tree_f.svg ├── tree_f2.svg ├── tree_f2_small.svg ├── tree_f_small.svg ├── tree_mangrove_o1.svg ├── tree_needle_e1.svg ├── tree_needle_e2.svg ├── tree_needle_e3.svg ├── tree_needle_o1.svg ├── tree_needle_o2.svg ├── tree_needle_o3.svg ├── tree_oilpalm.svg ├── tree_oilpalm2.svg ├── tree_olive.svg ├── tree_olive2.svg ├── tree_pair │ ├── 1.svg │ └── 2.svg ├── tree_s1.svg ├── tree_s2.svg ├── tree_star_1.svg ├── tree_star_1a.svg ├── tree_star_1b.svg ├── tree_star_2.svg ├── tree_star_2a.svg ├── tree_star_2b.svg ├── trees1 │ ├── 1.svg │ └── 2.svg ├── trees2 │ ├── 1.svg │ └── 2.svg ├── trees3 │ ├── 1.svg │ └── 2.svg ├── trees4 │ ├── 1.svg │ └── 2.svg ├── trees5 │ ├── 1.svg │ └── 2.svg ├── vpixel │ ├── 1.svg │ ├── 2.svg │ ├── 3.svg │ ├── 4.svg │ └── 5.svg ├── wheat.svg ├── wood │ ├── 1.svg │ ├── 10.svg │ ├── 11.svg │ ├── 12.svg │ ├── 2.svg │ ├── 3.svg │ ├── 4.svg │ ├── 5.svg │ ├── 6.svg │ ├── 7.svg │ ├── 8.svg │ └── 9.svg ├── wood1 │ ├── 1.svg │ ├── 2.svg │ ├── 3.svg │ ├── 4.svg │ ├── 5.svg │ └── 6.svg ├── wood2 │ ├── 1.svg │ ├── 2.svg │ ├── 3.svg │ ├── 4.svg │ ├── 5.svg │ └── 6.svg ├── wood2a │ ├── 1.svg │ ├── 2.svg │ ├── 3.svg │ ├── 4.svg │ ├── 5.svg │ └── 6.svg └── wood_s │ ├── 1.svg │ ├── 10.svg │ ├── 11.svg │ ├── 12.svg │ ├── 2.svg │ ├── 3.svg │ ├── 4.svg │ ├── 5.svg │ ├── 6.svg │ ├── 7.svg │ ├── 8.svg │ └── 9.svg └── symbols_json.sh /README.md: -------------------------------------------------------------------------------- 1 | 2 | Periodic dot and symbol pattern generator 3 | ========================================= 4 | 5 | This is the source code of a javascript tool to generate random periodic 6 | dot and symbol patterns for use in map rendering. You can try it out 7 | in the [online version](http://www.imagico.de/map/jsdotpattern.php). 8 | 9 | The tool is completely in javascript, no server side components. It makes 10 | use of the following javascript libraries: 11 | 12 | * [JQuery](http://jquery.com/download/) 13 | * [Snap.svg](http://snapsvg.io/) 14 | * [SVG.toDataURL()](https://github.com/sampumon/SVG.toDataURL) 15 | * [seedrandom](https://github.com/davidbau/seedrandom) 16 | * [slick.js](http://github.com/kenwheeler/slick) 17 | 18 | Adding your own symbols 19 | ----------------------- 20 | 21 | The content of the symbol library is stored in a javascript object in `symbols.js`. 22 | This is generated with the shell script `symbols_json.sh` from the individual SVG files 23 | in the `symbols` subdirectory. You can add your own symbols by putting them there and 24 | running the script again. Note this is not very robust so you might have troubles when 25 | you add complex SVGs. Have a look at the existing files for the expected structure. 26 | 27 | Licensed under AGPLv3. 28 | 29 | -------------------------------------------------------------------------------- /css/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imagico/jsdotpattern/d20f66f86fc36f7d6b16d892633fa98ed3b3b151/css/ajax-loader.gif -------------------------------------------------------------------------------- /css/fonts/slick.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imagico/jsdotpattern/d20f66f86fc36f7d6b16d892633fa98ed3b3b151/css/fonts/slick.eot -------------------------------------------------------------------------------- /css/fonts/slick.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Generated by Fontastic.me 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /css/fonts/slick.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imagico/jsdotpattern/d20f66f86fc36f7d6b16d892633fa98ed3b3b151/css/fonts/slick.ttf -------------------------------------------------------------------------------- /css/fonts/slick.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imagico/jsdotpattern/d20f66f86fc36f7d6b16d892633fa98ed3b3b151/css/fonts/slick.woff -------------------------------------------------------------------------------- /css/jsdotpattern.css: -------------------------------------------------------------------------------- 1 | 2 | #Svg_Test { 3 | margin: 1px; 4 | } 5 | 6 | #pointdata { 7 | margin-top: 12px; 8 | font-family: monospace; 9 | font-size: 90%; 10 | clear: both; 11 | } 12 | 13 | .code, textarea { 14 | font-family: monospace; 15 | font-size: 90%; 16 | } 17 | 18 | #msg { 19 | color: #000080; 20 | font-style:italic; 21 | } 22 | 23 | #B_casing { 24 | vertical-align: bottom; 25 | } 26 | 27 | .input-color { 28 | height:16px; 29 | } 30 | 31 | .dotpattern { 32 | font-size: 12px; 33 | padding-top:1px; 34 | } 35 | 36 | .rim { 37 | vertical-align: top; 38 | border-color: #CCCCCC; 39 | background-color: #d0d0d0; 40 | border: 1px solid; 41 | padding: 0px; 42 | } 43 | 44 | div.form { 45 | padding: 6px; 46 | border: 1px solid #c0c0c0; 47 | background-color: #f0f0f0; 48 | float: left; 49 | } 50 | 51 | input.nb { 52 | width: 21px; 53 | } 54 | 55 | p em, ul em { 56 | font-style:italic; 57 | } 58 | 59 | td { 60 | vertical-align: top; 61 | } 62 | 63 | .help, .cmdseq { 64 | display: none; 65 | } 66 | 67 | .active { 68 | color: #AA4411; 69 | background-color: #E0D0C0; 70 | } 71 | 72 | .inactive { 73 | color: #dddddd; 74 | background-color: #808AC0; 75 | } 76 | 77 | .inactive:hover { 78 | border: 1px outset #404050; 79 | } 80 | 81 | .sz-switch { 82 | border: 1px solid #505050; 83 | padding: 1px; 84 | padding-right: 3px; 85 | padding-left: 3px; 86 | cursor:pointer; 87 | } 88 | 89 | 90 | .sym-switch-use, .sym-switch-add { 91 | border: 1px solid #505050; 92 | padding-right: 2px; 93 | padding-left: 2px; 94 | cursor:pointer; 95 | vertical-align: middle; 96 | } 97 | 98 | .sym-sel-entry { 99 | padding-top: 2px; 100 | border-bottom: 1px solid #808080; 101 | height: 20px; 102 | } 103 | 104 | .sym-sel-caption { 105 | padding: 3px; 106 | width:100px; 107 | overflow: hidden; 108 | display: inline-block; 109 | vertical-align: middle; 110 | } 111 | 112 | .sym-sel-svg { 113 | height:16px; 114 | padding-right: 1px; 115 | padding-left: 1px; 116 | overflow: hidden; 117 | margin-left: 1px; 118 | border-left: 1px solid #808080; 119 | display: inline-block; 120 | vertical-align: middle; 121 | } 122 | 123 | .sym-sel-svg-wrapper { 124 | width:16px; 125 | height:16px; 126 | overflow: hidden; 127 | display: inline-block; 128 | } 129 | 130 | .sym-sel-svg-wrapper svg { 131 | max-width:16px; 132 | max-height:16px; 133 | } 134 | 135 | .sym-sel-caption { 136 | font-size: 85%; 137 | } 138 | 139 | .svg-code { 140 | width:396px; 141 | } 142 | 143 | #cmd_seq { 144 | display: inline-block; 145 | vertical-align:top; 146 | color: #000080; 147 | font-family: monospace; 148 | font-size: 90%; 149 | max-width: 780px; 150 | word-wrap: break-word; 151 | } 152 | 153 | #sym_selector_box { 154 | width: 420px; 155 | overflow: scroll; 156 | } 157 | 158 | .sym-multi { 159 | color: red; 160 | font-size: 14px; 161 | font-weight: bold; 162 | border: 2px solid red; 163 | padding:-1px; 164 | border-radius: 4px; 165 | } 166 | 167 | .sym-active { 168 | background-color: #f0d0c0; 169 | } 170 | 171 | .sym-stuff { 172 | position: relative; 173 | min-height: 256px; 174 | } 175 | 176 | .sym-bar { 177 | padding-left: 30px; 178 | position: absolute; 179 | bottom: 0px; 180 | background-color: #f0f0f0; 181 | } 182 | 183 | #sym_preview { 184 | position: absolute; 185 | left: 0px; 186 | bottom: 0px; 187 | border-color: #CCCCCC; 188 | border: 1px solid; 189 | width: 24px; 190 | height: 24px; 191 | overflow: hidden; 192 | } 193 | -------------------------------------------------------------------------------- /css/slick-theme.css: -------------------------------------------------------------------------------- 1 | @charset 'UTF-8'; 2 | /* Slider */ 3 | .slick-loading .slick-list 4 | { 5 | background: #fff url('./ajax-loader.gif') center center no-repeat; 6 | } 7 | 8 | /* Icons */ 9 | @font-face 10 | { 11 | font-family: 'slick'; 12 | font-weight: normal; 13 | font-style: normal; 14 | 15 | src: url('./fonts/slick.eot'); 16 | src: url('./fonts/slick.eot?#iefix') format('embedded-opentype'), url('./fonts/slick.woff') format('woff'), url('./fonts/slick.ttf') format('truetype'), url('./fonts/slick.svg#slick') format('svg'); 17 | } 18 | /* Arrows */ 19 | .slick-prev, 20 | .slick-next 21 | { 22 | font-size: 0; 23 | line-height: 0; 24 | 25 | position: absolute; 26 | top: 50%; 27 | 28 | display: block; 29 | 30 | width: 20px; 31 | height: 20px; 32 | margin-top: -10px; 33 | padding: 0; 34 | 35 | cursor: pointer; 36 | 37 | color: transparent; 38 | border: none; 39 | outline: none; 40 | background: transparent; 41 | } 42 | .slick-prev:hover, 43 | .slick-prev:focus, 44 | .slick-next:hover, 45 | .slick-next:focus 46 | { 47 | color: transparent; 48 | outline: none; 49 | background: transparent; 50 | } 51 | .slick-prev:hover:before, 52 | .slick-prev:focus:before, 53 | .slick-next:hover:before, 54 | .slick-next:focus:before 55 | { 56 | opacity: 1; 57 | } 58 | .slick-prev.slick-disabled:before, 59 | .slick-next.slick-disabled:before 60 | { 61 | opacity: .25; 62 | } 63 | 64 | .slick-prev:before, 65 | .slick-next:before 66 | { 67 | font-family: 'slick'; 68 | font-size: 20px; 69 | line-height: 1; 70 | 71 | opacity: .75; 72 | color: #000080; 73 | 74 | -webkit-font-smoothing: antialiased; 75 | -moz-osx-font-smoothing: grayscale; 76 | } 77 | 78 | .slick-prev 79 | { 80 | left: -25px; 81 | } 82 | [dir='rtl'] .slick-prev 83 | { 84 | right: -25px; 85 | left: auto; 86 | } 87 | .slick-prev:before 88 | { 89 | content: '←'; 90 | } 91 | [dir='rtl'] .slick-prev:before 92 | { 93 | content: '→'; 94 | } 95 | 96 | .slick-next 97 | { 98 | right: -25px; 99 | } 100 | [dir='rtl'] .slick-next 101 | { 102 | right: auto; 103 | left: -25px; 104 | } 105 | .slick-next:before 106 | { 107 | content: '→'; 108 | } 109 | [dir='rtl'] .slick-next:before 110 | { 111 | content: '←'; 112 | } 113 | 114 | /* Dots */ 115 | .slick-slider 116 | { 117 | margin-bottom: 4px; 118 | } 119 | 120 | .slick-dots 121 | { 122 | position: absolute; 123 | bottom: -45px; 124 | 125 | display: block; 126 | 127 | width: 100%; 128 | padding: 0; 129 | 130 | list-style: none; 131 | 132 | text-align: center; 133 | } 134 | .slick-dots li 135 | { 136 | position: relative; 137 | 138 | display: inline-block; 139 | 140 | width: 20px; 141 | height: 20px; 142 | margin: 0 5px; 143 | padding: 0; 144 | 145 | cursor: pointer; 146 | } 147 | .slick-dots li button 148 | { 149 | font-size: 0; 150 | line-height: 0; 151 | 152 | display: block; 153 | 154 | width: 20px; 155 | height: 20px; 156 | padding: 5px; 157 | 158 | cursor: pointer; 159 | 160 | color: transparent; 161 | border: 0; 162 | outline: none; 163 | background: transparent; 164 | } 165 | .slick-dots li button:hover, 166 | .slick-dots li button:focus 167 | { 168 | outline: none; 169 | } 170 | .slick-dots li button:hover:before, 171 | .slick-dots li button:focus:before 172 | { 173 | opacity: 1; 174 | } 175 | .slick-dots li button:before 176 | { 177 | font-family: 'slick'; 178 | font-size: 6px; 179 | line-height: 20px; 180 | 181 | position: absolute; 182 | top: 0; 183 | left: 0; 184 | 185 | width: 20px; 186 | height: 20px; 187 | 188 | content: '•'; 189 | text-align: center; 190 | 191 | opacity: .25; 192 | color: black; 193 | 194 | -webkit-font-smoothing: antialiased; 195 | -moz-osx-font-smoothing: grayscale; 196 | } 197 | .slick-dots li.slick-active button:before 198 | { 199 | opacity: .75; 200 | color: black; 201 | } 202 | -------------------------------------------------------------------------------- /css/slick.css: -------------------------------------------------------------------------------- 1 | /* Slider */ 2 | .slick-slider 3 | { 4 | position: relative; 5 | 6 | display: block; 7 | 8 | -moz-box-sizing: border-box; 9 | box-sizing: border-box; 10 | 11 | -webkit-user-select: none; 12 | -moz-user-select: none; 13 | -ms-user-select: none; 14 | user-select: none; 15 | 16 | -webkit-touch-callout: none; 17 | -khtml-user-select: none; 18 | -ms-touch-action: pan-y; 19 | touch-action: pan-y; 20 | -webkit-tap-highlight-color: transparent; 21 | } 22 | 23 | .slick-list 24 | { 25 | position: relative; 26 | 27 | display: block; 28 | overflow: hidden; 29 | 30 | margin: 0; 31 | padding: 0; 32 | } 33 | .slick-list:focus 34 | { 35 | outline: none; 36 | } 37 | .slick-list.dragging 38 | { 39 | cursor: pointer; 40 | cursor: hand; 41 | } 42 | 43 | .slick-slider .slick-track, 44 | .slick-slider .slick-list 45 | { 46 | -webkit-transform: translate3d(0, 0, 0); 47 | -moz-transform: translate3d(0, 0, 0); 48 | -ms-transform: translate3d(0, 0, 0); 49 | -o-transform: translate3d(0, 0, 0); 50 | transform: translate3d(0, 0, 0); 51 | } 52 | 53 | .slick-track 54 | { 55 | position: relative; 56 | top: 0; 57 | left: 0; 58 | 59 | display: block; 60 | } 61 | .slick-track:before, 62 | .slick-track:after 63 | { 64 | display: table; 65 | 66 | content: ''; 67 | } 68 | .slick-track:after 69 | { 70 | clear: both; 71 | } 72 | .slick-loading .slick-track 73 | { 74 | visibility: hidden; 75 | } 76 | 77 | .slick-slide 78 | { 79 | display: none; 80 | float: left; 81 | 82 | height: 100%; 83 | min-height: 1px; 84 | } 85 | [dir='rtl'] .slick-slide 86 | { 87 | float: right; 88 | } 89 | .slick-slide img 90 | { 91 | display: block; 92 | } 93 | .slick-slide.slick-loading img 94 | { 95 | display: none; 96 | } 97 | .slick-slide.dragging img 98 | { 99 | pointer-events: none; 100 | } 101 | .slick-initialized .slick-slide 102 | { 103 | display: block; 104 | } 105 | .slick-loading .slick-slide 106 | { 107 | visibility: hidden; 108 | } 109 | .slick-vertical .slick-slide 110 | { 111 | display: block; 112 | 113 | height: auto; 114 | 115 | border: 1px solid transparent; 116 | } -------------------------------------------------------------------------------- /js/README.md: -------------------------------------------------------------------------------- 1 | 2 | Javascript libraries used by jsdotpattern 3 | ========================================= 4 | 5 | * [JQuery](http://jquery.com/download/) - MIT license 6 | * [Snap.svg](http://snapsvg.io/) - Apache 2 license 7 | * [SVG.toDataURL()](https://github.com/sampumon/SVG.toDataURL) - MIT license 8 | * [slick](http://kenwheeler.github.io/slick/) - MIT license 9 | * [seedrandom](https://github.com/davidbau/seedrandom) - MIT license 10 | * [url](https://github.com/websanova/js-url) - MIT license 11 | -------------------------------------------------------------------------------- /js/seedrandom.min.js: -------------------------------------------------------------------------------- 1 | !function(a,b){function c(c,j,k){var n=[];j=1==j?{entropy:!0}:j||{};var s=g(f(j.entropy?[c,i(a)]:null==c?h():c,3),n),t=new d(n),u=function(){for(var a=t.g(m),b=p,c=0;q>a;)a=(a+c)*l,b*=l,c=t.g(1);for(;a>=r;)a/=2,b/=2,c>>>=1;return(a+c)/b};return u.int32=function(){return 0|t.g(4)},u.quick=function(){return t.g(4)/(4*(1<<30))},u["double"]=u,g(i(t.S),a),(j.pass||k||function(a,c,d,f){return f&&(f.S&&e(f,t),a.state=function(){return e(t,{})}),d?(b[o]=a,c):a})(u,s,"global"in j?j.global:this==b,j.state)}function d(a){var b,c=a.length,d=this,e=0,f=d.i=d.j=0,g=d.S=[];for(c||(a=[c++]);l>e;)g[e]=e++;for(e=0;l>e;e++)g[e]=g[f=s&f+a[e%c]+(b=g[e])],g[f]=b;(d.g=function(a){for(var b,c=0,e=d.i,f=d.j,g=d.S;a--;)b=g[e=s&e+1],c=c*l+g[s&(g[e]=g[f=s&f+b])+(g[f]=b)];return d.i=e,d.j=f,c})(l)}function e(a,b){return b.i=a.i,b.j=a.j,b.S=a.S.slice(),b}function f(a,b){var c,d=[],e=typeof a;if(b&&"object"==e)for(c in a)try{d.push(f(a[c],b-1))}catch(g){}return d.length?d:"string"==e?a:a+"\0"}function g(a,b){for(var c,d=a+"",e=0;e3?"/":"")+c.slice(3,c.length).join("/").split("?")[0].split("#")[0];var g=e.pathname;"/"===g.charAt(g.length-1)&&(g=g.substring(0,g.length-1));var h=e.hostname,i=h.split("."),j=g.split("/");if("hostname"===b)return h;if("domain"===b)return/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/.test(h)?h:i.slice(-2).join(".");if("sub"===b)return i.slice(0,i.length-2).join(".");if("port"===b)return e.port;if("protocol"===b)return e.protocol.split(":")[0];if("auth"===b)return e.auth;if("user"===b)return e.auth.split(":")[0];if("pass"===b)return e.auth.split(":")[1]||"";if("path"===b)return e.pathname;if("."===b.charAt(0)){if(b=b.substring(1),a(b))return b=parseInt(b,10),i[0>b?i.length+b:b-1]||""}else{if(a(b))return b=parseInt(b,10),j[0>b?j.length+b:b]||"";if("file"===b)return j.slice(-1)[0];if("filename"===b)return j.slice(-1)[0].split(".")[0];if("fileext"===b)return j.slice(-1)[0].split(".")[1]||"";if("?"===b.charAt(0)||"#"===b.charAt(0)){var k=d,l=null;if("?"===b.charAt(0)?k=(k.split("?")[1]||"").split("#")[0]:"#"===b.charAt(0)&&(k=k.split("#")[1]||""),!b.charAt(1))return k;b=b.substring(1),k=k.split("&");for(var m=0,n=k.length;n>m;m++)if(l=k[m].split("="),l[0]===b)return l[1]||"";return null}}return""}}(),"undefined"!=typeof jQuery&&jQuery.extend({url:function(a,b){return window.url(a,b)}}); -------------------------------------------------------------------------------- /svg_pattern.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ------------------------------------------------------------ 3 | # sanitize a jsdotpattern produced SVG for use with Mapnik 4 | # ------------------------------------------------------------ 5 | 6 | SRC="$1" 7 | TARGET="$2" 8 | CLIP="$3" 9 | NOCLIP= 10 | 11 | if [ -z "$1" ] || [ -z "$2" ] ; then 12 | echo "Usage: $0 [clip_width]" 13 | echo "Warning: do not use this on SVGs not generated with jsdotpattern," 14 | echo " it likely don't work" 15 | exit 16 | fi 17 | 18 | SIZE=`grep "width" "$SRC" | head -n 1 | sed "s?\"??g;s?.*width=\([0-9]*\).*?\1?"` 19 | 20 | if [ -z "$SIZE" ] ; then 21 | echo "Error: pattern size could not be read from source SVG." 22 | fi 23 | 24 | if [ -z "$CLIP" ] ; then 25 | CLIP="$SIZE" 26 | NOCLIP=on 27 | fi 28 | 29 | cp "$SRC" "$TARGET" 30 | 31 | # this is for normal jsdotpattern SVGs with 32 | if grep " /dev/null ; then 33 | echo "processing non-inlined SVG..." 34 | inkscape \ 35 | --actions="select-all:groups;object-release-clip;select-clear;select-by-element:rect;delete-selection;select-all;clone-unlink;select-all:groups;selection-ungroup;select-all:groups;selection-ungroup;select-all:groups;selection-ungroup;select-all;object-to-path;select-all;path-combine;select-all;object-release-clip;" \ 36 | --export-filename="$TARGET" --export-overwrite --export-type=SVG "$TARGET" 37 | 38 | else # this is for inline SVGs 39 | # if clip is specified check for nested groups or transforms 40 | # to see if this is necessary (or has been performed before) 41 | if [ ! -z "$NOCLIP" ] || grep "" "$TARGET" > /dev/null || grep " /dev/null ; then 42 | echo "processing inlined SVG..." 43 | 44 | inkscape \ 45 | --actions="select-all:groups;object-release-clip;select-clear;select-by-element:rect;delete-selection;select-all:groups;selection-ungroup;select-all:groups;selection-ungroup;select-all:groups;selection-ungroup;select-all;object-to-path;select-all;path-combine;select-all;object-release-clip;select-all:groups;selection-ungroup;" \ 46 | --export-filename="$TARGET" --export-overwrite --export-type=SVG "$TARGET" 47 | 48 | else 49 | echo "only clipping SVG since it seems to be sanitized already..." 50 | fi 51 | fi 52 | 53 | # this is pretty whacky since it depends on the specific structure of the file (specifically the presence of a tag at the very end) 54 | sed -i -e "s? 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/bog.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/corner_up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/cross1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/cross2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/cross_diagonal4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/dash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/dash_cross_diagonal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/dash_diagonal1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/dash_diagonal1_thin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/dash_diagonal2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/dash_diagonal2_thin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/dash_pair.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/dash_thin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/dot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/flower1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/flower1b.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/flower2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/flower2b.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/flower3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/flower3b.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/forest.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /symbols/grass.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/grass_small.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/grass_tall.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/grave.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/heap.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/hilal1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/hilal2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/mangrove.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/marsh/1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/marsh/2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/pineapple.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/pixel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/quarry1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/quarry2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/reed/1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/reed/2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/reef_coral/1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/reef_coral/2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/reef_coral/3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/reef_coral/4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rice.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/ring10.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/ring10_thick.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/ring12.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/ring12_thick.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/ring4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/ring4_thick.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/ring6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/ring6_thick.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/ring8.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/ring8_thick.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/ring9.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/ring9_thick.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock/1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock/10.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock/11.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock/12.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock/2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock/3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock/4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock/5.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock/6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock/7.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock/8.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock/9.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock_thin/1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock_thin/10.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock_thin/11.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock_thin/12.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock_thin/2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock_thin/3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock_thin/4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock_thin/5.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock_thin/6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock_thin/7.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock_thin/8.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/rock_thin/9.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/scree/1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/scree/2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/scree/3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/scree/4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/scree/5.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/scree/6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/scrub.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/scrub2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/scrub_broad_o1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/scrub_needle_o1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/star_of_david1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/star_of_david2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/star_of_david3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/sugarcane/sugarcane1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/sugarcane/sugarcane2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/sugarcane1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/sugarcane2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_a1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_a2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /symbols/tree_apple.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_as1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_as2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_banana.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_banana2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /symbols/tree_broad_e1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_broad_e2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_broad_o1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_broad_o2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_broad_o3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_broad_o4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_broad_o5.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_broad_o6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_broad_o7.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_f.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_f2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_f2_small.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_f_small.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_mangrove_o1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_needle_e1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_needle_e2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_needle_e3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_needle_o1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_needle_o2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_needle_o3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_oilpalm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_oilpalm2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_olive.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_olive2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_pair/1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_pair/2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_s1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_s2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_star_1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_star_1a.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_star_1b.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_star_2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_star_2a.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/tree_star_2b.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/trees1/1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/trees1/2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/trees2/1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/trees2/2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/trees3/1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/trees3/2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/trees4/1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/trees4/2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /symbols/trees5/1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/trees5/2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/vpixel/1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/vpixel/2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/vpixel/3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/vpixel/4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/vpixel/5.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/wheat.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /symbols/wood/10.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /symbols/wood/11.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 10 | 14 | 17 | 19 | 20 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /symbols/wood/12.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 10 | 12 | 13 | 14 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /symbols/wood/4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 16 | 19 | 21 | 25 | 28 | 30 | 32 | 34 | 36 | 41 | 43 | 48 | 51 | 52 | 54 | 58 | 61 | 63 | 64 | 66 | 67 | 69 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /symbols/wood/6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 16 | 18 | 20 | 22 | 23 | 25 | 27 | 30 | 33 | 35 | 36 | 42 | 44 | 46 | 48 | 53 | 55 | 57 | 60 | 64 | 66 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /symbols/wood/7.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 9 | 10 | 12 | 13 | 15 | 20 | 22 | 24 | 26 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /symbols/wood/8.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 11 | 13 | 14 | 15 | 17 | 22 | 24 | 25 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /symbols/wood/9.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 13 | 15 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /symbols/wood1/4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 16 | 19 | 21 | 25 | 28 | 30 | 32 | 34 | 36 | 41 | 43 | 48 | 51 | 52 | 54 | 58 | 61 | 63 | 64 | 66 | 67 | 69 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /symbols/wood1/6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 16 | 18 | 20 | 22 | 23 | 25 | 27 | 30 | 33 | 35 | 36 | 42 | 44 | 46 | 48 | 53 | 55 | 57 | 60 | 64 | 66 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /symbols/wood2/1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 9 | 10 | 12 | 13 | 15 | 20 | 22 | 24 | 26 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /symbols/wood2/2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 11 | 13 | 14 | 15 | 17 | 22 | 24 | 25 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /symbols/wood2/3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 13 | 15 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /symbols/wood2/4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /symbols/wood2/5.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 10 | 14 | 17 | 19 | 20 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /symbols/wood2/6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 10 | 12 | 13 | 14 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /symbols/wood2a/4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 20 | 23 | 25 | 26 | 29 | 31 | 33 | 35 | 36 | 37 | 38 | 40 | 41 | 43 | 44 | 46 | 47 | 49 | 51 | 55 | 57 | 60 | 61 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /symbols/wood2a/6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 20 | 29 | 33 | 35 | 37 | 38 | 42 | 44 | 47 | 52 | 53 | 55 | 59 | 62 | 65 | 66 | 68 | 70 | 72 | 74 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /symbols/wood_s/10.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /symbols/wood_s/11.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 10 | 14 | 17 | 19 | 20 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /symbols/wood_s/12.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 10 | 12 | 13 | 14 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /symbols/wood_s/4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 16 | 19 | 21 | 25 | 28 | 30 | 32 | 34 | 36 | 41 | 43 | 48 | 51 | 52 | 54 | 58 | 61 | 63 | 64 | 66 | 67 | 69 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /symbols/wood_s/6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 16 | 18 | 20 | 22 | 23 | 25 | 27 | 30 | 33 | 35 | 36 | 42 | 44 | 46 | 48 | 53 | 55 | 57 | 60 | 64 | 66 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /symbols/wood_s/7.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 9 | 10 | 12 | 13 | 15 | 20 | 22 | 24 | 26 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /symbols/wood_s/8.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 11 | 13 | 14 | 15 | 17 | 22 | 24 | 25 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /symbols/wood_s/9.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 13 | 15 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /symbols_json.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # ------------------------------------------------------------ 3 | # assembles svg code from symbol files into json 4 | # ------------------------------------------------------------ 5 | 6 | SYMBOLS= 7 | #SYMBOLS=" forest bforest scrub scrub2 grass grass_tall dot dash dash_thin pixel vpixel tree_s1 tree_s2 tree_a1 tree_a2 tree_as1 tree_as2 tree tree2 mangrove trees1 trees2 trees3 trees4 trees5 tree_pair marsh reed bog scree rock wood wood_s wood1 wood2 wood2a quarry1 quarry2 hilal1 hilal2 cross1 cross2 star_of_david1 star_of_david2 star_of_david3 grave " 8 | 9 | for SYM in `find "symbols" -maxdepth 1 -name "*.svg" | sort` ; do 10 | SYM_NAME=`basename $SYM .svg` 11 | if ! echo "$SYMBOLS" | grep " $SYM_NAME " > /dev/null ; then 12 | SYMBOLS="$SYMBOLS$SYM_NAME " 13 | fi 14 | done 15 | 16 | for SYM in `find "symbols" -mindepth 1 -type d | sort` ; do 17 | SYM_NAME=`basename $SYM` 18 | if ! echo "$SYMBOLS" | grep " $SYM_NAME " > /dev/null ; then 19 | SYMBOLS="$SYMBOLS$SYM_NAME " 20 | fi 21 | done 22 | 23 | echo "// Symbol library for jsdotpattern 24 | // nontrivial symbols are licensed under CC0 25 | // generated by symbols_json.sh 26 | 27 | var SelSyms = [" > "symbols.js" 28 | 29 | FIRST=1 30 | 31 | for SYM in $SYMBOLS ; do 32 | SYM_NAME=`echo "$SYM" | sed "s?_? ?g"` 33 | echo "$SYM_NAME" 34 | if [ -d "symbols/$SYM" ] ; then 35 | touch "symbols/$SYM" 36 | if [ -z "$FIRST" ] ; then 37 | echo "," >> "symbols.js" 38 | else 39 | FIRST= 40 | fi 41 | echo " { \"name\":\"$SYM_NAME\", \"svg\":[" >> "symbols.js" 42 | SUB_FIRST=1 43 | for SUB_SYM in `find "symbols/$SYM" -name "*.svg" | cut -d "/" -f 3- | sort -n` ; do 44 | if [ -z "$SUB_FIRST" ] ; then 45 | echo "," >> "symbols.js" 46 | else 47 | SUB_FIRST= 48 | fi 49 | SYM_CODE=`cat "symbols/$SYM/$SUB_SYM" | tr "\n\t" " " | sed 's/]*>//;s/]*>//;s???;s?^ [ ]*??g;s?>[ ]*> "symbols.js" 51 | done 52 | echo "" >> "symbols.js" 53 | echo -n " ] }" >> "symbols.js" 54 | elif [ -r "symbols/$SYM.svg" ] ; then 55 | if [ -z "$FIRST" ] ; then 56 | echo "," >> "symbols.js" 57 | else 58 | FIRST= 59 | fi 60 | SYM_CODE=`cat "symbols/$SYM.svg" | tr "\n\t" " " | sed 's/]*>//;s/]*>//;s???;s?^[ ]*??g;s?>[ ]*> "symbols.js" 62 | else 63 | echo "Error: symbol $SYM not found - skipping." 64 | fi 65 | done 66 | 67 | echo "" >> "symbols.js" 68 | echo "];" >> "symbols.js" 69 | --------------------------------------------------------------------------------