Fantasy-Map-Generator/index.html
2019-05-02 23:18:46 +03:00

2046 lines
186 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Azgaar's Fantasy Map Generator</title>
<meta name="application-name" content="Azgaar's Fantasy Map Generator">
<meta name="author" content="Azgaar (Max Ganiev)">
<meta name="description" content="Azgaar's Fantasy Map Generator and Editor">
<meta name="google" content="notranslate">
<meta property="og:url" content="https://azgaar.github.io/Fantasy-Map-Generator">
<meta property="og:title" content="Azgaar's Fantasy Map Generator">
<meta property="og:description" content="Based on Voronoi diagram rendered to svg">
<meta property="og:image" content="images/preview.png">
<link rel="icon" type="image/png" href="images/favicon-32x32.png" sizes="32x32"/>
<link rel="icon" type="image/png" href="images/favicon-16x16.png" sizes="16x16"/>
<link rel="canonical" href="https://azgaar.github.io/Fantasy-Map-Generator/">
<link rel="stylesheet" type="text/css" href="index.css?version=0.8b"/>
<link rel="stylesheet" type="text/css" href="icons.css?version=0.8b"/>
<link rel="stylesheet" type="text/css" href="libs/jquery-ui.css"/>
</head>
<body>
<svg id="map" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%">
<defs>
<g id="filters">
<filter id="blurFilter" x="-1" y="-1" width="100" height="100">
<feGaussianBlur in="SourceGraphic" stdDeviation="0.2"/>
</filter>
<filter id="blur1" x="-1" y="-1" width="100" height="100">
<feGaussianBlur in="SourceGraphic" stdDeviation="1"/>
</filter>
<filter id="blur5" x="-1" y="-1" width="100" height="100">
<feGaussianBlur in="SourceGraphic" stdDeviation="5"/>
</filter>
<filter id="blur10" x="-1" y="-1" width="100" height="100">
<feGaussianBlur in="SourceGraphic" stdDeviation="10"/>
</filter>
<filter id="splotch">
<feTurbulence type="fractalNoise" baseFrequency=".01" numOctaves="4"/>
<feColorMatrix values="0 0 0 0 0, 0 0 0 0 0, 0 0 0 0 0, 0 0 0 -0.9 1.2" result="texture"/>
<feComposite in="SourceGraphic" in2="texture" operator="in"/>
</filter>
<filter id="bluredSplotch">
<feTurbulence type="fractalNoise" baseFrequency=".01" numOctaves="4"/>
<feColorMatrix values="0 0 0 0 0, 0 0 0 0 0, 0 0 0 0 0, 0 0 0 -0.9 1.2" result="texture"/>
<feComposite in="SourceGraphic" in2="texture" operator="in"/>
<feGaussianBlur stdDeviation="4"/>
</filter>
<filter id="dropShadow">
<feGaussianBlur in="SourceAlpha" stdDeviation="2"/>
<feOffset dx="1" dy="2"/>
<feMerge>
<feMergeNode/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<filter id="dropShadow01">
<feGaussianBlur in="SourceAlpha" stdDeviation=".1"/>
<feOffset dx=".2" dy=".3"/>
<feMerge>
<feMergeNode/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<filter id="dropShadow05">
<feGaussianBlur in="SourceAlpha" stdDeviation=".5"/>
<feOffset dx=".5" dy=".7"/>
<feMerge>
<feMergeNode/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<filter id="outline">
<feGaussianBlur in="SourceAlpha" stdDeviation="1"/>
<feMerge>
<feMergeNode/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<filter id="pencil">
<feTurbulence baseFrequency="0.03" numOctaves="6" type="fractalNoise"/>
<feDisplacementMap scale="3" in="SourceGraphic" xChannelSelector="R" yChannelSelector="G"/>
</filter>
<filter id="turbulence">
<feTurbulence baseFrequency="0.1" numOctaves="3" type="fractalNoise"/>
<feDisplacementMap scale="10" in="SourceGraphic" xChannelSelector="R" yChannelSelector="G"/>
</filter>
<filter id="filter-grayscale">
<feColorMatrix values="0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0"/>
</filter>
<filter id="filter-sepia">
<feColorMatrix values="0.393 0.769 0.189 0 0 0.349 0.686 0.168 0 0 0.272 0.534 0.131 0 0 0 0 0 1 0"/>
</filter>
<filter id="filter-dingy">
<feColorMatrix values="1 0 0 0 0 0 1 0 0 0 0 0.3 0.3 0 0 0 0 0 1 0"/>
</filter>
<filter id="filter-tint">
<feColorMatrix values="1.1 0 0 0 0 0 1.1 0 0 0 0 0 0.9 0 0 0 0 0 1 0"/>
</filter>
</g>
<g id="deftemp">
<mask id="land"></mask>
<mask id="water">
<rect x="0" y="0" width="100%" height="100%" fill="white"></rect>
</mask>
<g id="textPaths"></g>
<g id="statePaths"></g>
</g>
<g id="defs-icons">
<symbol id="icon-anchor" viewBox="0 0 30 28">
<title>Port</title>
<path d="M15 4c0-0.547-0.453-1-1-1s-1 0.453-1 1 0.453 1 1 1 1-0.453 1-1zM28 18.5v5.5c0 0.203-0.125 0.391-0.313 0.469-0.063 0.016-0.125 0.031-0.187 0.031-0.125 0-0.25-0.047-0.359-0.141l-1.453-1.453c-2.453 2.953-6.859 4.844-11.688 4.844s-9.234-1.891-11.688-4.844l-1.453 1.453c-0.094 0.094-0.234 0.141-0.359 0.141-0.063 0-0.125-0.016-0.187-0.031-0.187-0.078-0.313-0.266-0.313-0.469v-5.5c0-0.281 0.219-0.5 0.5-0.5h5.5c0.203 0 0.391 0.125 0.469 0.313s0.031 0.391-0.109 0.547l-1.563 1.563c1.406 1.891 4.109 3.266 7.203 3.687v-10.109h-3c-0.547 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h3v-2.547c-1.188-0.688-2-1.969-2-3.453 0-2.203 1.797-4 4-4s4 1.797 4 4c0 1.484-0.812 2.766-2 3.453v2.547h3c0.547 0 1 0.453 1 1v2c0 0.547-0.453 1-1 1h-3v10.109c3.094-0.422 5.797-1.797 7.203-3.687l-1.563-1.563c-0.141-0.156-0.187-0.359-0.109-0.547s0.266-0.313 0.469-0.313h5.5c0.281 0 0.5 0.219 0.5 0.5z"></path>
</symbol>
</g>
<g id="defs-relief">
<symbol id="relief-mount-1" viewBox="0 0 100 100">
<path d="m3,69 16,-12 31,-32 15,20 30,24" fill="#fff" stroke="#5c5c70" stroke-width="1"></path>
<path d="m3,69 16,-12 31,-32 -14,44" fill="#999999"></path>
<path d="m3,71 h92 m-83,3 h83" stroke="#5c5c70" stroke-dasharray="7, 11" stroke-width="1"></path>
</symbol>
<symbol id="relief-hill-1" viewBox="0 0 100 100">
<path d="m20,55 q30,-28 60,0" fill="#999999" stroke="#5c5c70"></path>
<path d="m38,55 q13,-24 40,0" fill="#fff"></path>
<path d="m20,58 h70 m-62,3 h50" stroke="#5c5c70" stroke-dasharray="7, 11" stroke-width="1"></path>
</symbol>
<symbol id="relief-deciduous-1" viewBox="0 0 100 100">
<path d="m50,52 v7 h1 v-7 h-0.5 q13,-7 0,-16 q-13,9 0,16" fill="#fff" stroke="#5c5c70"></path>
<path d="m50,52 q-12,-7 0,-16 q-3.5,10 0,15.5" fill="#999999"></path>
</symbol>
<symbol id="relief-conifer-1" viewBox="0 0 100 100">
<path d="m50,55 v4 h1 v-4 l4.5,0 -4,-8 l3.5,0 -4.5,-9 -4,9 3,0 -3.5,8 7,0" fill="#fff" stroke="#5c5c70"></path>
<path d="m46,55 l4,-8 -4,0 5,-9 -2.5,9 l1.5,0 -2,8" fill="#999999"></path>
</symbol>
<symbol id="relief-acacia-1" viewBox="0 0 100 100">
<path d="m34.5 44.5 c 1.8, -3 8.1, -5.7 12.6, -5.4 6, -2.2 9.3, -0.9 11.9, 1.3 1.7, 0.2 3.2,-0.3 5.2, 2.2 2.7, 1.2 3.7, 2.4 2.7, 3.7 -1.6, 0.3 -2.2, 0 -4.7, -1.6 -5.2, 0.1 -7, 0.7 -8.7, -0.9 -2.8, 1 -3.6, 0 -9.7, 0.2 -4.6, 0 -8, 1.6 -9.3, 0.4 z" fill="#fff"></path>
<path d="m52 38 c-2.3 -0.1 -4.3 1.1 -4.9 1.1 -2.2 -0.2 -5 0.2 -6.4 1 -1.3 0.7 -2.8 1.6 -3.7 2.1 -1 0.6 -3.4 1.8 -2.2 2.7 1.1 0.9 3.1 -0.2 4.2 0.3 1.4 0.8 2.9 1 4.5 0.9 1.1 -0.1 2.2 -0.4 2.4 1 0.3 1.9 1.1 3.5 2.1 5.1 0.8 2.4 1 2.8 1 6.8 l2 0 c 0 -1.1 -0.1 -4 1.2 -5.7 1.1 -1.4 1.4 -3.4 3 -4.4 0.9 -1.4 2 -2.6 3.8 -2.7 1.7 -0.3 3.8 0.8 5.1 0.3 0.9 -0.1 3.2 1 3.5 -1 0.1 -2 -2.2 -2.1 -3.2 -3.3 -1.1 -1.5 -3.3 -1.9 -4.9 -1.8 -1 -0.5 -2 -2.5 -7.3 -2.5 z m -0.5 0.4 c2.7338 -0.2 5.6 0.2 7.5 2.4 1.7 0 3.7 0 4.8 1.5 1 1.2 3.4 1.8 3.4 3 0 2.1 -3.2 0.5 -3.6 0.1 -1.3 -1.4 -2.9 -0.6 -4.5 -0.7 -1.6 -0.1 -3.2 0.4 -4.6 -0.6 -1.1 -0.7 -2.5 0.1 -3.8 -0.1 -1.8 -0.2 -4 -0.4 -5.9 -0.1 -1.4 0 -2.8 0.1 -4.2 0 -1.7 0.5 -5.5 1.1 -5.4 0.4 0.2 -1.1 4.5 -3.2 5.9 -3.9 1.9 -0.9 3.7 -1.1 6.2 -0.8 0.7 -0.2 1.7 -1.1 4.3 -1.3 z m2 6 c1.6 0.3 2 2.2 1.2 3.3 -1 1.3 -1 -1.3 -1.3 -2 -0.2 -0.5 -0.8 -1.3 0.1 -1.3 z m -12.9 0.2 c1 -0.1 3.5 -0.3 3.1 0.9 -1.4 0 -3.4 0.1 -4.4 -0.6 0.4 -0.2 0.9 -0.2 1.3 -0.3 z m5.6 -0.1 c0.8 0.1 3.1 -0.3 3 0.5 -1.3 0.6 -1.6 2.2 -2.1 3.1 -0.4 -1.2 -0.7 -2.7 -2.1 -3.2 -0.9 -0.6 1 -0.5 1.3 -0.4 z m5.3 0.3 c1.1 0.1 1.6 2.4 0.1 1.3 -1.6 -1.2 -0.6 -1.3 -0.1 -1.3 z m7.5 0.4 c1.2 0 3.3 -0.2 2.9 0.2 -1.4 1.2 -3 -0.3 -4.8 0.8 -0.9 0.5 -2 0.8 -1.1 -0.4 0.5 -0.6 1.3 -0.5 3 -0.6 z m -8.9 0.1 c0.7 1.2 2.1 1.5 2.9 2.1 0.9 1.6 -0.5 3.1 -1.3 4.5 -0.9 1.5 -1.9 2.2 -2.4 0.3 -0.1 -0.5 -1.8 -2.2 -1.2 -3.7 0.3 -1.3 0.6 -2.6 2 -3.2 z m12.5 0.1 c0.6 0.2 1.3 1.1 0.2 0.9 -1.4 -0.1 -1.4 -0.3 -0.2 -0.9 z" fill="#5c5c70"></path>
<path d="m47 42.33 c2 0.1 4.1 0.5 6.1 -0.3 1.4 -0.3 2.6 0.8 3.6 1.6 0.7 0.4 2.5 0.7 2.7 1.2 -2.2 -0.1 -3.6 0.4 -4.8 -0.4 -1 -0.7 -2.2 -0.3 -3 -0.2 -0.9 0.1 -3 -0.4 -5.5 -0.2 -2.6 0.2 -5.1 -0.1 -7.2 0.5 -3.6 0.6 -3.7 0 -3.7 0 2.2 -2 9.1 -1.7 11.9 -2.2 z" fill="#999999"/>
</symbol>
<symbol id="relief-palm-1" viewBox="0 0 100 100">
<path d="m 48.1,55.5 2.1,0 c 0,0 1.3,-5.5 1.2,-8.6 0,-3.2 -1.1,-5.5 -1.1,-5.5 l -0.5,-0.4 -0.2,0.1 c 0,0 0.9,2.7 0.5,6.2 -0.5,3.8 -2.1,8.2 -2.1,8.2 z" fill="#5c5c70"></path>
<path d="m 54.9,48.8 c 0,0 1.9,-2.5 0.3,-5.4 -1.4,-2.6 -4.3,-3.2 -4.3,-3.2 0,0 1.6,-0.6 3.3,-0.3 1.7,0.3 4.1,2.5 4.1,2.5 0,0 -0.6,-3.6 -3.6,-4.4 -2.2,-0.6 -4.2,1.3 -4.2,1.3 0,0 0.3,-1.5 -0.2,-2.9 -0.6,-1.4 -2.6,-1.9 -2.6,-1.9 0,0 0.8,1.1 1.2,2.2 0.3,0.9 0.3,2 0.3,2 0,0 -1.3,-1.8 -3.7,-1.5 -2.5,0.2 -3.7,2.5 -3.7,2.5 0,0 2.3,-0.6 3.4,-0.6 1.1,0.1 2.6,0.8 2.6,0.8 l -0.4,0.2 c 0,0 -1.2,-0.4 -2.7,0.4 -1.9,1.1 -2.9,3.7 -2.9,3.7 0,0 1.4,-1.4 2.3,-1.9 0.5,-0.3 1.8,-0.7 1.8,-0.7 0,0 -0.7,1.3 -0.9,3.1 -0.1,2.5 1.1,4.6 1.1,4.6 0,0 0.1,-3.4 1.2,-5.6 1,-1.9 2.3,-2.6 2.3,-2.6 l 0.4,-0.2 c 0,0 1.5,0.7 2.8,2.8 1,1.7 2.3,5 2.3,5 z" fill="#fff" stroke="#5c5c70" stroke-width=".6"></path>
<path d="m 47.75,34.61 c 0,0 0.97,1.22 1.22,2.31 0.2,0.89 0.35,2.81 0.35,2.81 0,0 -1.59,-1.5 -3.2,-1.61 -1.82,-0.13 -3.97,1.31 -3.97,1.31 0,0 2.11,-0.49 3.34,-0.47 1.51,0.03 3.33,1.21 3.33,1.21 0,0 -1.7,0.83 -2.57,2.8 -0.88,1.97 -0.34,6.01 -0.34,6.01 0,0 0.04,-2.95 0.94,-4.96 0.8,-1.78 2.11,-2.67 2.44,-2.85 0.66,-0.34 0.49,-1.09 0.49,-1.09 0,0 -0.1,-2.18 -0.52,-3.37 -0.42,-1.21 -1.51,-2.11 -1.51,-2.11 z" fill="#999"></path>
<path d="m 42,43.7 c 0,0 1.2,-1.1 1.8,-1.5 0.7,-0.4 2,-0.8 2,-0.8 L 46.5,40.5 c 0,0 -0.8,0 -2.3,0.8 -1.3,0.8 -2.2,2.3 -2.2,2.3 z" fill="#999"></path>
</symbol>
<symbol id="relief-grass-1" viewBox="0 0 100 100">
<path d="m 49.5,53.1 c 0,-3.4 -2.4,-4.8 -3,-5.4 1,1.8 2.4,3.7 1.8,5.4 z M 51,53.2 C 51.4,49.6 49.6,47.9 48,46.8 c 1.1,1.8 2.8,4.6 1.8,6.5 z M 51.4,51.4 c 0.6,-1.9 1.8,-3.4 3,-4.3 -0.8,0.3 -2.9,1.5 -3.4,2.8 0.2,0.4 0.3,0.8 0.4,1.5 z M 52.9,53.2 c -0.7,-1.9 0.5,-3.3 1.5,-4.4 -1.7,1 -3,2.2 -2.7,4.4 z" fill="#5c5c70" stroke="none"></path>
</symbol>
<symbol id="relief-swamp-1" viewBox="0 0 100 100">
<path d="m50,46 v6 l3,-4 m-3,4 l-3,-4 m-7,4.5 h4 m4,0 h4 m4,0 h4" fill="none" stroke="#5c5c70"></path>
</symbol>
<symbol id="relief-dune-1" viewBox="0 0 100 100">
<path d="m 28.7,52.8 c 5,-3.9 10,-8.2 15.8,-8.3 4.5,0 10.8,3.8 15.2,6.5 3.5,2.2 6.8,2 6.8,2" fill="none" stroke="#5c5c70" stroke-width="1.8"></path>
<path d="m 44.2,47.6 c -3.2,3.2 3.5,5.7 5.9,7.8" fill="none" stroke="#5c5c70"></path>
</symbol>
</g>
<g id="defs-markers">
<symbol id="marker0" viewBox="0 0 30 30">
<path d="M6,19 l9,10 L24,19" fill="#000000" stroke="none"></path>
<circle cx="15" cy="15" r="10" stroke-width="1" stroke="#000000" fill="#ffffff"></circle>
<text x="50%" y="50%" fill="#000000" stroke-width="0" stroke="#3200ff" font-size="22px" dominant-baseline="central">?</text>
</symbol>
</g>
<pattern id="oceanic" width="100" height="100" patternUnits="userSpaceOnUse">
<filter id='emptyImage'></filter>
<filter id='mottling'>
<feTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='10' stitchTiles='stitch'/>
</filter>
<filter id='pattern1'>
<feImage x="0" y="0" width="100" height="100" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAAd0SU1FB+EIBw8dCqiO08AAABkhSURBVHhe7d3njiO31oXhlnOOsP/5/q/MNgx4xjmH/vTwm3cOp1ySSurg7oOzAKJY5OYOa2+ySlJ7vPv555+v33zzzatz8ffff4/rSy+9NK7u9X///ferH3/8cVxfffXVMbbb7a7eeuutq7/++mvIvf3221e//vrrmH/55ZefrwUyv/zyy7jCn3/+OWSsMUbOPbgm19hDhlj4X6xr2H399dfXH3/88bPbyzGTilBJCNfX11evvPLKIE1/Sd4ff/wxEshhBJOxXsLcWyuhFQFZ/TfeeOPqhx9+uHr33XeHzH8Ddvvgr5/17xWSYCchUh/B7VSJlZzXX3999H/66aexQ8hK9n5XP0+YOePkJKiiaKz7x4JbTUgVPJMw75wZCP/tt98G0TNU/2uvvfaCLrvA+EywndOOAsmRkHaYOTrsxvfee2/MHwI5ax7CsXd2QgR8X45HlB0U0XaGpJQMSfA8ct+xlo/kJJJMySLb7mpujoce9shkj86S2y6mC26bi93eqetD1RMRnL4rLKuTTURuDZQ8ku22Dz/8cKyLUMcWgl3BTusYbAwiV4JwYY4OOvlGRz5KOhk2W+ferr4N7J48eXLNEKUMcILTKmF2+i7B7pyA5T1IXMfVDLIlMVLmJCxRAVh3iERzkiOpoCCtM4YfffrZZFufrnZVc5dgt3f+2oNSApCwhZwtsA4OrZ0JPkZgIA9rgUbyJX7eFOIsKXYN4NILC1/5ZM71kH8VwEjqt99+e+21EbyxmGyHSJRge/DOR8FWzMRD95cmeon0bUnqfUAicNTucsTNWBbPkofxUN8nZSiQCEEV2Eym5Hz33XfjnhwltrL7jrlkzwU7GrteaZdBzEC8wujh6p7df2uHhJmrSzE+v0nIs/t/YGlE8GCJLdbVzvJAjaRjxKgIDfl02+YcMdbLxfvvvz+uYBwUDPuu1s0Vxg++3taD9abgC17ateLKX2MK2D256O/F4FY+h0QozOoQp0kUR8yR69VTpZf0doWxdqpEN+azhDXffPPNlR392WefvbBLENDOfUhwhImZr67i5Sef195eN+2xyD6Eqvadd94ZX2NU6YxrjEsCYukiT0bzfMpZjR5rVJFEW5se8u69vpoPcxWSe0jAiR2v+sXZNw6HPkrc6if1EPm9LKhqRDMVcZq+Z4Y5DrtKSlWOfM5DbzDm7QZrm7OO7LFnz2PByYQIHgSv+gSvHQPybFXy88NehURiuto1mp3Ti0LzYM5uyVXjmiQ2Zl6SSvhjxQsJEXi3ro4FhGmIRJhxpFWNyD+0/apw5GolYwYiI5b+LWTSxTfyPSAlSDLArgP2lt+VnQPPsGIWCxvFw+ahuM/FXHwjIUg1WECMu3fljES1oONCtXPWuPmUcjg9W5E9kHzYSmS+A9uSG/i1JcF0kGNbvPPnLvdiFluNHWMVnAZbC2oN8fePI8tRg2yKC1RgXRM3Vz/HwZWD1nMQStAwuOK04BBJvz4da8+DnA4djY5FbU4GkC9hxUC3B61xfreOXgQb459+ibBe47tdYc7OFCeu5mP5pjj65SJwZK4GmMk372reldPkEKAfSWyYN24+XWtIF3LICxZJWr6yC+azu4zDXEebBABC+WSNRrf4NPrNk6ffmhLlymfkz3y4gnHr6DzG5ymM77Ii7xJF1nKQIxwUVGOugud0ugW2rGSBlyRJ8Aygx711fLNuDWyUEGu2wK6KbAlgJ588NzzXEAzmyc0+VCjmggT2mp7P9LqWJOsaP4Rbfe2tag+RNyMi4ZiDp9AOdS3p+sd86Fhak6niD/lk/tCchBQX3ZLsWqHEj3kFwV8yxtN7qwm5CxTgqaTZkcudd9vgy5ZdyJfeHsFuc3SWKFfzvn1YxvXgE7IV7YqqcFn9zavEiAF97dCOOYX0boGEzkffjPQ86IRwknsqDmGC6VgKjp957NCR4oiIfNVqTXL6Wyr/XJyTrPAgEyIQBCLb1y8IlBTB+YzA5QgkY/wUofSR0UraGll9laOagXwPb7aMl8BTR9jWI27GeO1tUcagT7uIQEDjqhQ4ea6xc4E45PBlJsgYfxAE5pzT5z5DxGatq4SV7I4VfT6wo0jS307FgbX5RE4/rs5BydvtX/OuGVpucz9G5RAHGOeUVuK0nOTQbSKy2BaoZow/wPYI4Nk8PyJj/lC5dmxIcPFJZOskxJzGjrXAD8CRNfR7IHswz5zMPqwdm2tovVdx68eRZYADDDComdQ4J+C+TogUgbSV3ZMVeJk+BTYj3afdKow9ARnv22IoaK3XS8nQtxZJfCBn3NU4P2dy2LAb+OwTO+gHet33ViRGV+P5QG9rgb9+o2Ffv3jYiRc/GbjGDRtz8tK922fm2mTfTRG4FCmNUOQCRyKJE2xJBjIRZt69KtFXfSCYCsS4FugHOr7//vsxRy8bdFqTvdbrS0iy4mbTPOKNnQKdfHUVk8Tpx6ErfXyo4PRxwnZ+W6vg+GJN8T9/qBM0GEGHIOtkBVeGg/WUWy9ActQb4zRwhOOSRf6Z+WG3SuY49IuhteasBX1Nwkp0do1X3RpdZLpvDd9LuHVzzPkN1pMzxo51bBV/LxxOEDrc48h6vuAHF+bEbN44ffzQdy2BN3rL4hjSKC0gznM0MCKozJAjH8nm5x1lvGNCX/I4DAVfIEgwZn0J0fStb12EanQfAnvFoU9Hfs/+h/Sb6+hErHjzh4y+MbbnNWTjyrxYdnsnr2cjlwJRkiMQYLzd1hgnyDXG0Yi9FAIBuufCQD4brrCWCP5K1rzLtyCdMBefeDR2176tntEuIjvHf2efQzgt4wwiTWUIvCSdUwR0nJLfInPXEKcErfmhEP2U7bmhcPBBrmt4kB8M/9tg16AZ8fOOWsPRhPSWJPOaCnem2+Z3AbuKOypIEP1nCO7tLGP5cFe7oZ3GF7bzp0ru/pwdeY7s0R+onLGI4ICEcMYV9DtLI8z1EtDpeOvNC+ERAj0wVVdHnzO6BHo+aOfajyhX9tmhT8G5Z7+/qM8HLb4UCH86hk9hS2KeP9QJgyAZORQcxziaYvIa+QhDzrw16Raoq3nrCxjMRTQZa81HvDkyxntoIsH8V199Nd7f2Udk45r7NQKKIZ/ozfdiUyRs+QBovBcWfTb0yWWLv+bY5Iv5JYf0HeI17PbHwt6v//+uijLkjom9ck65Z7jgONwbCwORG8hoDGv6CEifNeA+koEefcHS306kI/Losi7dxswJno3ItdYc0PfRRx+NPpBZklWCkG99+oDNig5H7qFXdPo1KEa2tdbgTkKtnb99gPyxjp7d/sk/PKfMQoMWbsnmDAFxgB5Bea0rAQw2Tme2wByZ5bPJWk1ABVegNTsDrEVm/iITAXwAu4wuiaYPxMkftrWKjD9isZ4N8vkMfCTv2wE6er3tAzNZjR7AJd0S+Pnnn4+EfPLJJ2OePL/02RkJ2RtefYZwgENtRTIzYUtEAJmcEXBEAkf1XZEYyFd5W4EUxCGmZI+A9n36zRsDY2y4Rlw+5hO/KyCxmjeGwIgL7umRDHLpLgbzdLiXCHPAV7Bj84mP7OuT3+2raX//n291DXKSYFXvvgragpRzWn9OZM+GY8k9B2zYERUD4iKAzzNJUAJc+WZtc3aZNSVyDWTxEthid7bDFx/26HdPH375po8Dc6Aw2cyH3V5ofLlIyDUwwFC7ZyuBJeM+wW8kC0rQ+dB4c8gQh2SIC5nGyRq7CSSpQmB3PgHWwG5J0c+/cWTJqJsc3kr+Q0GBHSsEAXcC3DXsOglmSzGAJGl86Gg1x3e+Saj++GA4H03tiODZYF6SOkfJzW0LqtpjUBhszG8iVbliuQ8y7wMlBydimwtlJATpBntjOITeXsq8JiFjq+3XS5rrMqnAuAbWWcOpEg6SQZ+z3BGaHVdVNSromfNs0PGYIM6KuhjEa8ycsbO/y+oh6BcyCnvToEaFI5mRiCxJGsM19/QgGujS16wjQ2+VZCy9mvUS4i3GXA/Hxwi8iUkMF3+5iChAXK92ZZlKFV7lm2PML4HmjUuGMSQnQ6dmDtkdo67GyUiOJoGacfboBQVi/LHi4oSsIbKoRF7v3Sq3V1AEupKTGLKuEisJERvJEmLcVSXZoa3T7EC7yjx5jXxJn19QTr35PASclRBkVtGHgDSkIMPOod4aVevbW4koOfodOemt8t2vHUES0is6G/RLPtgdHYFkzNMhKWxl05x1hU6mXZVOBcIGtK6CIVtct43d3rnxZ0DAGZUVIVWuDznm/MDCKfIcQwQ5fW2JqlQwBRkJxjS66EgPGfbnyj6G9FvHH7uAXaQDvRFrng1jybMjyRFuraSaoxvye+lj8wphq7+nsPviiy+uVYjGIUYExUHOAWc46VrjMMdKWlXDsd7W6ABBkHNtbRAkOaSwD3TV549dB4jlx3K+fmDLOHmNDTHp88FVwoqJ//ltLh1kioHP7JAlQ959SeGTNWxpjZ2TKLbGDplJcXXPaA9IYwJZA4ccOz47WENH5Fqj0edKV85GtDEQfCTND/sZ9EJkQC8U89gaxID8NZkKCsTANv/4Q7d1IIYSnR4y+hUo/9mC5IF/it4YkBG/eWNiHsW6f/Bel3VvQQRlmgGCksKgsSoJCoBCfwVIxlgOVFGMRO7sjEB6xhh3LHJKP/Lo8NyxPr8EzIf8MOazDN8jiQ/1g/Wz/fogdmAnn4BcyQFXHBjHi89Ls61eOqxPh/VssbHkBl+aWMzT+/yDoUGCKdKPyGCBhRpFZKoQRnPWPD3GyBhDHCCUPOcitoLQwBr6+4IunQXkPvCR7NJXYJMP5OnMR5Ua6GwnKIgZ1rVePOkIxq03py+W+nwy5ycC1xJgbu6bk8i4uOi1N0WUIkpVlAzGKG7rCmAORkMUeeP1VfhwaBH0MVg3/tpvv6ajbokC5ieZORlgXuOrFqEaf4B+99DYsgDoEDufxBThc8EWHxjXyNptfV10UUIyGgQZ6ZyIAGCU8xrHchw4zcmtCVhDRMEWPfziJ78cT9Zbly9rST0GsWris7bYZrBR0X7wwQdjzP2ardWEIA3K5qFAyXGGIQFWAYLTWoeEKrNErR0xdwE+eg7NsehX6V1vA+yABFSAeFhL0iGMH6iQhVi5oQC5M3HmTymVFMEiQOVZV+VVla7Geo7cF9oF9w1c4JT9rYnfffnll+Mn3AiiBGGuxkEwy7P3LiEAgcxJ+7dIPQc4U3izn76Exd0p/sQHL/xApaojomomqO8Vz/1dVDb9zlTPpSqJLwojHxwH3rqMk7PGriR/7rl/V+CjODoBehp0wrRb9EuaJFqT7Pg3Fwm1G2TYAq2xJTqeyJwLDjgS6WC3s904sjV654oy10tE5JcQV3PWeGDSWbD/JopTPHwUp2Y87no04FlhmRsP9QLaSjB51SCrlCOP4VPnpA+QCAPyHEQqPda6r5pCBHPcmuC+Fwoy1tlB7TRr5l8e/23wq8SIV4z1X+BkP3D0tZeSQMFMljmJoQgx5mtr7/yQ8f4bP0dhiaRDazeQZQO5+ux0jPHDlS3yqq0g3bPt/f4myD6d2bsUEsL/5akjXnh+Qp1KCKeIcGp2yPbi5JMnT4ZScxFbAK1DYgYFOFd68G0BWXKuazKBbW9ykkCebGv4yxc+rSXzmF5ymoS6SuihJNBNxlXcx/Seg4s+GCLEspzoHhwjmgrlqMRoQRBk57FLgXRJoY9e9viC+CBR5hGrD0jU8tm6ZeWeiz42tIO3QmGxnf2LEnIKiEI4km6rcg6BDRXNJsI7rqpa48iakyFpqv/U2xk56yuidu/W5LE7o/UljN5l8l5IiGAIGNKv0twXLAhUW6sEMv3NreDJCNx6zbqtAV2KCAT+aNk1h2gFI2lgrDcefePFnM/mwP2svx259ry8BOP/sIM0Sqsq6IxWIeYFwDiHOKPvgezN5hA8yDgP1iHkrpOxBCLbFeKI0IrGmJjFZ9e4SqC4rSt+MZsD43Gi0alB+uLxEOhlBx98e87TnvSRkIgmZKul2HivbJJmrMRwhhxcQnaOsLk8x42n+y6g4MQwH1tsau0WpPGRXyUkjoy5J0dPp0lcljTo6LKG/pJIV+v1vaaPv+311yEpIky5flnmFOdyAHkqjHI7xNqZPK/CbeOIdaWnRofABA+90XjbAkSxd26SL4X4kMKvYyBXI6+JzRVn2swFDnFm3vicKMhm3I//pM2EG4LIQpR7hhgmjFzzmnEN1rYmUq03h3B9hjmjQZWpeoyRHQ49s5XefCnwZPh5X8niw6lE9YGUn7WSE1f5K15jdIqDbHyNhzpFiLMgAcIEUti206fQvX6JctWADok0Tg9Z9+Tp1kpAcE9WYOQFA9nzvMqP9NhV7eb7SI648nnu88c9HuPAmJiNVYR8xAl/xZvsjLNfexnqSjGDHTNgDEnI1QKHzblqjVUtdgx5Dp9CBMxJ37LuPsC3uIG56NZAlu/iIXurn0MolSCNocBEjjLOcNWCTNVyKdq59J0K/qHA37fhqiKcd/edfDBcgnFQ0Wvb9DZgpykE4VSdCsC4gNk1/hB20qHvteBkQqrqfxvn+lEyWoeA5frm1+Zm3CcHLySEg72Dc0KrumWzY8E7PBnPCg/WUwFthR3EHbrnOnEsqSqwxdvmfLlkx3VeL5FdHLj6XEC2Nyh2l/ZuctyuYfzDAT6H5IRmazOuz0nOI7yHcg/x5JHjLUg7x0G6OmZc3bOxPFokJH/4Sc48v/LNlR8KZCsUXB8QrQXx0g/Fwi5ZycgHa/T5lR+3gfEvyvmQx7iHDEOMZ1Cw7sG9Ki4AzksOB4EOuyYHBRCx1iCdfEEbg36aLUF0Z0MT9Az+kANzbEiaOIznBzlXOiJvBntLIukhf4rgOJFQ9ot7Bpni34rxVyc5GiHAKcoiajbGkFbSrHGPEGvo4ygn3Sdn60sG0N+OKjH65NeCyAcFgTRr2GlNMEeGP+16a0HBuSfPPl/6VZGMdcsdRh+5eIgX9uPEPL3pJgt4me9D/tAx+z443S+65jjlGgGKIQO1GZwQgCtFjHIWIs0axguEA3YNIvXpJ5vDS8dPge3Od/DXj/kAdGsRAPnJZ2vN8YM/Gt/SFxfWKJ5iNW6spMP8zUNx0wd0aPUH8fs5OuZn0hjfOzz+O/UMcCZFLVLtFHFWK3FbURBQsI3RdxMInH/I5Wtkz0XATiRJUDKNIzUCxWZnLx/ewTqkk2evRARzuBJnnzOA3fgEeipqPuTreMsyGFEccs9gsJiDa+fkQwEiigMhERzpFZEx8zM57s27J7MVJRg/p7ghx07689FaSUvPSIgKM1kQsmWh60NNwClUVALXoCSI6y7AHiA2m8sTwK5QNMvE81dSR0IIUFJC5gebuc5JyWlrVV3/wzpwORezROCtMXy3m/XN64+EPH36dAz419OW1ZOwjHqLYkifcnMqoNfbZda3gl76OnZ6OLMrAHYqgMdcCBIgpo4nfInPzjD2PCHP5E/CZwhKkWfXIEdCJIkBDRhAKINkShRneuhZo+lb11VyrbVOY08znryrOcFoyyJ6qBA/v2eIzQdzLwA+j52VkIAQilwZiaQ5Wa4wk6apBEmpOoy59kZinh7z9Lpng750Cso6NtPl3lFb8h8TxIEDuCghhzAnZE4WojRjdgGZKsWanlHItIZz+uQRTUcfKo1JkuRpdmMoqHZrMo8Jt5oQhCEi4gEhSAXzyEScROi3m8i5kiGvGStxZPvahe52Qn1y86snufHW8qxAlp8XgJ/Jr6EYZkTXsXU3wfhguDzXbgpkIDyyXN0LJuLbRWCsNzu+RPZWeG0viZJGf2QbMw90Nwe9jESupPO9e7L6ZIqJjjkuOm4Tu72z11WPvxZBDCeczSCgHLwUgukNSpCCotOV/tsCopFGt6v7jkqQeFAYxvjFB2guWF+CEM9P9xKhT4e+9cabsyuXuraCnfFfUH366afPqwBhUFDGqt7HBIR77oijYwZZ9UF/WRDFjA8NSeQQT6dWgUoCxFlwn530SJLrjHYaVEDjGcIBAxpjyywPwWdGl0ofGsRS1V8C6zWIA7u75NKtQJc8tEu0Eka2hJZ483jGpzm6HHv0O6nGf0HF8NpDzwJnPQctShlDksapjD8UII9PfBP0lgISp3Xi0hCo6VeMa3qs0/Az7wBjrcMXXWAez83HXW+Qkvb8334n5OGHdIokoErJUFl1zwGyyVC+ltSt4DjMO/MuURz8lwyk9duIMXPaTNwhzPJwbI04yeNOwl19IGwHjX/rhCOcshvKJuHI1l8S3o9RWq+V+gWnj9z5jC7ZkFMcZJ9sgSgMclpr1o6JrYj84N4LDLBXu6QY6BJ/J8YaxAAzF0vgE2/jn2eiLIcskoBT4IgGJSFCtaF8T6QxxiKULePmJcO88Y4HaFsD2Ypji19bwI52F7uRXnHhAPgtZmhMgozjgA/i8p9Pm989ffr02peKM9oZEUeBRfoloiTO6Pf11lgvwV2T5wS5ZEsIOTLu80FfK0HkSxx5R+vSj4cGvhdPccSjcfGIQdH+45N6mTu0vRwnFCF8/ieRgrkqn54SIwkRrk/PnDzO9Jf0W9BDmL+an1gfKnAxH/Ean3GMi//EfHX1f4nyTnv/ee6gAAAAAElFTkSuQmCC"/>
</filter>
<filter id='pattern2'>
<feImage x="0" y="0" width="100" height="100" xlink:href="data:image/png;base64,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"/>
</filter>
<filter id='pattern3'>
<feImage x="0" y="0" width="100" height="100" xlink:href="data:image/jpeg;base64,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"/>
</filter>
<filter id='pattern4'>
<feImage x="0" y="0" width="100" height="100" xlink:href="data:image/jpeg;base64,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"/>
</filter>
<filter id='pattern5'>
<feImage x="0" y="0" width="100" height="100" xlink:href="data:image/jpeg;base64,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"/>
</filter>
<filter id='pattern6'>
<feImage x="0" y="0" width="100" height="100" xlink:href="data:image/jpeg;base64,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"/>
</filter>
<rect width='100' height='100' filter="url(#pattern1)" opacity='0.2'/>
</pattern>
<g id="rose" stroke-width="1">
<g id="sL" stroke="#3f3f3f">
<line x1="0" y1="-10000000" x2="0" y2="10000000"/>
<line x1="-10000000" y1="0" x2="10000000" y2="0"/>
</g>
<use xlink:href="#sL" transform="rotate(45)"/>
<use xlink:href="#sL" transform="rotate(22.5)"/>
<use xlink:href="#sL" transform="rotate(-22.5)"/>
<use xlink:href="#sL" transform="rotate(11.25)"/>
<use xlink:href="#sL" transform="rotate(-11.25)"/>
<use xlink:href="#sL" transform="rotate(56.25)"/>
<use xlink:href="#sL" transform="rotate(-56.25)"/>
<g stroke-width="8">
<circle r="9" stroke="#000000" fill="#1b1b1b"/>
<circle r="75" stroke="#008000" fill="#ffffff" fill-opacity=".1"></circle>
<circle r="212" stroke="#1b1b1b"></circle>
<circle r="211" stroke="#008000" fill="#ffffff" fill-opacity=".1"></circle>
</g>
<g stroke="#1b1b1b">
<circle r="71"/>
<circle r="79"/>
<circle r="94"/>
<circle r="152"/>
<circle r="164"/>
<circle r="207"/>
</g>
<g id="s3">
<g id="s2">
<g id="s1" stroke="#1b1b1b">
<path d="M 39.416,95.16 C 33.65,103.95 30.76,110.5 28.93,117.18 C 15.24,113.43 13.54,127.15 23.04,131 C 13.71,145.8 7.84,173.93 0,212 L 0,103 A 103,103 0 0,0 39.416,95.16 z" fill="#47a3d1"/>
<path d="M 39.416,95.16 C 33.65,103.95 30.76,110.5 28.93,117.18 C 15.24,113.43 13.54,127.15 23.04,131 C 13.71,145.8 7.84,173.93 0,212 L 0,103 A 103,103 0 0,0 39.416,95.16 z" fill="black" transform="scale(-1,1)"/>
<path d="M -31.995,160.849 A 164,164 0 0,0 31.995,160.849 C 18.9,170.1 8.4,176.3 0,207 C -8.4,176.3 -18.9,170.1 -31.995,160.849 z" fill="#c2390f" transform="rotate(22.5)"/>
</g>
<use xlink:href="#s1" transform="rotate(45)"/>
</g>
<use xlink:href="#s2" transform="rotate(90)"/>
</g>
<use xlink:href="#s3" transform="scale(-1)"/>
</g>
<marker id="arrow" viewBox="0 0 10 10" refX="5" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse">
<path d="M 0 0 L 10 5 L 0 10 z" />
</marker>
</defs>
<g id="viewbox"></g>
<g id="scaleBar" onclick="editUnits()"></g>
<g id="initial" opacity=1>
<rect x="-1%" y="-1%" width="102%" height="102%" fill="#53679f"></rect>
<rect x="-1%" y="-1%" width="102%" height="102%" fill="url(#oceanic)"></rect>
<use xlink:href="#rose" id="init-rose" x="50%" y="50%"></use>
</g>
</svg>
<div id="loading" style="opacity:1">
<div id="title_name">Azgaar's</div>
<div id="title">Fantasy Map Generator</div>
<div id="version">v. 0.8b</div>
<p id="loading-text">LOADING<span>.</span><span>.</span><span>.</span></p>
</div>
<div id="optionsContainer" style="opacity:0">
<div id="collapsible">
<button id="optionsTrigger" data-tip="Click to show options pane. Shortcut: Tab" class="options glow" onclick="showOptions(event)" style="padding:7px 5px"></button>
<button id="regenerate" data-tip="Click to generate a new map. Shortcut: F7" onclick="regeneratePrompt()" class="options" style="display:none; padding:7px 8px">New Map!</button>
</div>
<div id="options" style="display:none">
<div class="drag-trigger" data-tip="Drag to move options pane"></div>
<div class="tab">
<button id="optionsHide" data-tip="Click to hide options pane. Shortcut: Tab to close this or Esc to close all dialogs" class="options" onclick="hideOptions(event)"></button>
<button id="styleTab" data-tip="Click to open style menu" class="options active">Style</button>
<button id="optionsTab" data-tip="Click to change generation and UI options" class="options">Options</button>
<button id="toolsTab" data-tip="Click to open tools menu" class="options">Tools</button>
<button id="aboutTab" data-tip="Click to see Generator info" class="options">About</button>
</div>
<div id="styleContent" class="tabcontent" style="display: block">
<p data-tip="Select a map layers preset" style="display: inline-block;">Layers preset:</p>
<select data-tip="Select a map layers preset" id="layersPreset" onchange="changePreset(this.value)" style="width:45%">
<option value="political" selected>Political map</option>
<option value="cultural">Cultural map</option>
<option value="heightmap">Heightmap</option>
<option value="biomes">Biomes map</option>
<option value="landmass">Pure landmass</option>
<option hidden value="custom">Custom</option>
</select>
<p data-tip="Click to toggle a layer, drag to raise or lower a layer">Displayed layers:</p>
<ul data-tip="Click to toggle a layer, drag to raise or lower a layer" id="mapLayers">
<li id="toggleTexture" data-tip="Texture overlay: click to toggle, drag to raise or lower the layer. Shortcut: X" class="buttonoff" onclick="toggleTexture()">Texture</li>
<li id="toggleHeight" data-tip="Heightmap: click to toggle, drag to raise or lower the layer. Shortcut: H" class="buttonoff" onclick="toggleHeight()">Heightmap</li>
<li id="toggleBiomes" data-tip="Biomes: click to toggle, drag to raise or lower the layer. Shortcut: B" class="buttonoff" onclick="toggleBiomes()">Biomes</li>
<li id="toggleCells" data-tip="Cells structure: click to toggle, drag to raise or lower the layer. Shortcut: E" class="buttonoff" onclick="toggleCells()">Cells</li>
<li id="toggleGrid" data-tip="Grid: click to toggle, drag to raise or lower. Select type in styles dropdown below. Shortcut: G" class="buttonoff" onclick="toggleGrid()">Grid</li>
<li id="toggleCoordinates" data-tip="Coordinate grid: click to toggle, drag to raise or lower the layer. Shortcut: O" class="buttonoff" onclick="toggleCoordinates()">Coordinates</li>
<li id="toggleCompass" data-tip="Compass (Wind) Rose: click to toggle, drag to raise or lower the layer. Shortcut: W" class="buttonoff" onclick="toggleCompass()">Compass Rose</li>
<li id="toggleRivers" data-tip="Rivers: click to toggle, drag to raise or lower the layer. Shortcut: V" onclick="toggleRivers()">Rivers</li>
<li id="toggleRelief" data-tip="Relief and biome icons: click to toggle, drag to raise or lower the layer. Shortcut: R" class="buttonoff" onclick="toggleRelief()">Relief</li>
<li id="toggleCultures" data-tip="Cultures: click to toggle, drag to raise or lower the layer. Shortcut: C" class="buttonoff" onclick="toggleCultures()">Cultures</li>
<li id="toggleStates" data-tip="States: click to toggle, drag to raise or lower the layer. Shortcut: S" onclick="toggleStates()">States</li>
<li id="toggleBorders" data-tip="State borders: click to toggle, drag to raise or lower the layer. Shortcut: D" onclick="toggleBorders()">Borders</li>
<li id="toggleRoutes"data-tip="Trade routes: click to toggle, drag to raise or lower the layer. Shortcut: U" onclick="toggleRoutes()">Routes</li>
<li id="toggleTemp" data-tip="Temperature map: click to toggle, drag to raise or lower the layer. Shortcut: T" class="buttonoff" onclick="toggleTemp()">Temperature</li>
<li id="togglePopulation" data-tip="Population map: click to toggle, drag to raise or lower the layer. Shortcut: P" class="buttonoff" onclick="togglePopulation()">Population</li>
<li id="togglePrec" data-tip="Precipitation map: click to toggle, drag to raise or lower the layer. Shortcut: A" class="buttonoff" onclick="togglePrec()">Precipitation</li>
<li id="toggleLabels" data-tip="Labels: click to toggle, drag to raise or lower the layer. Shortcut: L" onclick="toggleLabels()">Labels</li>
<li id="toggleIcons" data-tip="Burg icons: click to toggle, drag to raise or lower the layer. Shortcut: I" onclick="toggleIcons()">Icons</li>
<li id="toggleMarkers" data-tip="Markers: click to toggle, drag to raise or lower the layer. Shortcut: M" onclick="toggleMarkers()">Markers</li>
<li id="toggleRulers" data-tip="Rulers: click to toggle, drag to move, click on label to delete. Shortcut: = (equal)" class="buttonoff" onclick="toggleRulers()">Rulers</li>
<li id="toggleScaleBar" data-tip="Scale Bar: click to toggle, drag to move. Shortcut: - (minus)" onclick="toggleScaleBar()" class="solid">Scale Bar</li>
</ul>
<p data-tip="Select an element to edit its style" style="display: inline-block;">Select element:</p>
<select data-tip="Select an element to edit its style (list is ordered alphabetically)" id="styleElementSelect" style="width:42%">
<option value="anchors">Anchor Icons</option>
<option value="biomes">Biomes</option>
<option value="borders">Borders</option>
<option value="burgIcons">Burg Icons</option>
<option value="cells">Cells</option>
<option value="coastline">Coastline</option>
<option value="compass">Compass</option>
<option value="coordinates">Coordinates</option>
<option value="cults">Cultures</option>
<option value="gridOverlay">Grid</option>
<option value="terrs">Heightmap</option>
<option value="labels">Labels</option>
<option value="lakes">Lakes</option>
<option value="landmass">Landmass</option>
<option value="markers">Markers</option>
<option value="ocean">Ocean</option>
<option value="population">Population</option>
<option value="prec">Precipitation</option>
<option value="terrain">Relief Icons</option>
<option value="rivers">Rivers</option>
<option value="routes">Routes</option>
<option value="ruler">Rulers</option>
<option value="regions" selected>States</option>
<option value="temperature">Temperature</option>
<option value="texture">Texture</option>
</select>
<button id="restoreStyle" data-tip="Click to restore default style for all elements" class="icon-ccw styleButton" onclick="askToRestoreDefaultStyle()"></button>
<table id="styleElements">
<caption id="styleIsOff" data-tip="The selected layer is not visible. See the buttons above to toggle it on">Please ensure the element is toggled on!</caption>
<tbody id="styleGroup">
<tr data-tip="Select element group">
<td>Group</td>
<td>
<select id="styleGroupSelect"><option value="regions">regions</option></select>
</td>
</tr>
</tbody>
<tbody id="styleOpacity" style="display: block">
<tr data-tip="Set opacity. 0: transparent, 1: solid">
<td>Opacity</td>
<td>
<input id="styleOpacityInput" type="range" min="0" max="1" step="0.01" value=".4">
<output id="styleOpacityOutput">0.4</output>
</td>
</tr>
</tbody>
<tbody id="stylePopulation">
<tr data-tip="Set bar color for rural population">
<td>Rural color</td>
<td>
<input id="stylePopulationRuralStrokeInput" type="color" value="#0000ff"/>
<output id="stylePopulationRuralStrokeOutput">#0000ff</output>
</td>
</tr>
<tr data-tip="Set bar color for urban population">
<td>Urban color</td>
<td>
<input id="stylePopulationUrbanStrokeInput" type="color" value="#ff0000"/>
<output id="stylePopulationUrbanStrokeOutput">#ff0000</output>
</td>
</tr>
</tbody>
<tbody id="styleTexture">
<tr data-tip="Select texture image. Big textures can highly affect performance">
<td>Image</td>
<td>
<select id="styleTextureInput">
<option value="">None</option>
<option value="images/textures/marble-small.jpg" selected>Marble small</option>
<option value="images/textures/marble-big.jpg">Marble big</option>
<option value="images/textures/marble-blue-small.jpg">Marble Blue</option>
<option value="images/textures/marble-blue-big.jpg">Marble Blue big</option>
<option value="images/textures/stone-small.jpg">Stone small</option>
<option value="images/textures/stone-big.jpg">Stone big</option>
<option value="images/textures/timbercut-small.jpg">Timber Cut small</option>
<option value="images/textures/timbercut-big.jpg">Timber Cut big</option>
<option value="images/textures/antique-small.jpg">Antique small</option>
<option value="images/textures/antique-big.jpg">Antique big</option>
<option value="images/textures/pergamena-small.jpg">Pergamena small</option>
<option value="images/textures/mars-small.jpg">Mars small</option>
<option value="images/textures/mars-big.jpg">Mars big</option>
<option value="images/textures/mercury-small.jpg">Mercury small</option>
<option value="images/textures/mercury-big.jpg">Mercury big</option>
<option value="images/textures/mauritania-small.jpg">Mauritania small</option>
<option value="images/textures/iran-small.jpg">Iran small</option>
<option value="images/textures/spain-small.jpg">Spain small</option>
</select>
<button data-tip="Click and provide a URL to image to be set as a texture" class="icon-plus styleButton" onclick="textureProvideURL()"></button>
</td>
</tr>
<tr data-tip="Shift the texture by axes">
<td>Shift by axes</td>
<td>
<input id="styleTextureShiftX" type="number" value=0 data-tip="Shift texture by x axis in pixels">
<input id="styleTextureShiftY" type="number" value=0 data-tip="Shift texture by y axis in pixels">
</td>
</tr>
</tbody>
<tbody id="styleOcean">
<tr data-tip="Select ocean pattern">
<td>Pattern</td>
<td>
<select id="styleOceanPattern">
<option value="url(#emptyImage)">No pattern</option>
<option value="url(#mottling)" chacked>Mottling</option>
<option value="url(#pattern1)" chacked>Pattern 1</option>
<option value="url(#pattern2)" chacked>Pattern 2</option>
<option value="url(#pattern3)" chacked>Pattern 3</option>
<option value="url(#pattern4)" chacked>Pattern 4</option>
<option value="url(#pattern5)" chacked>Pattern 5</option>
<option value="url(#pattern6)" chacked>Pattern 6</option>
</select>
</td>
</tr>
<tr data-tip="Define the coast outline contours scheme">
<td>Ocean layers</td>
<td>
<select id="outlineLayersInput">
<option value="none">No outline</option>
<option value="random">Random</option>
<option value="-6,-3,-1" selected>Standard 3</option>
<option value="-6,-4,-2">Indented 3</option>
<option value="-9,-6,-3,-1">Standard 4</option>
<option value="-6,-5,-4,-3,-2,-1">Smooth 6</option>
<option value="-9,-8,-7,-6,-5,-4,-3,-2,-1">Smooth 9</option>
</select>
</td>
</tr>
<tr data-tip="Set background color. Not visible if opacity is 1">
<td>Background</td>
<td>
<input id="styleOceanBack" type="color" value="#000000"/>
<output id="styleOceanBackOutput">#000000</output>
</td>
</tr>
<tr data-tip="Set foreground color. Visible if opacity > 0">
<td>Foreground</td>
<td>
<input id="styleOceanFore" type="color" value="#53679f"/>
<output id="styleOceanForeOutput">#53679f</output>
</td>
</tr>
</tbody>
<tbody id="styleGrid">
<tr data-tip="Select grid overlay type">
<td>Type</td>
<td>
<select id="styleGridType">
<option value="pointyHex">Hex grid (pointy)</option>
<option value="flatHex">Hex grid (flat)</option>
<option value="square">Square grid</option>
</select>
</td>
</tr>
<tr data-tip="Set grid cells spacing (size)">
<td>Size</td>
<td>
<input id="styleGridSize" type="range" min=2 max=50 step=.1 value=10 style="width:42%">
<output id="styleGridSizeOutput" data-tip="Grid cells spacing in pixels">10</output>
<output id="styleGridSizeFriendly" data-tip="Distance between two adjacent cells in map scale">(52 mi)</output>
</td>
</tr>
</tbody>
<tbody id="styleShift">
<tr data-tip="Shift the element by axes">
<td>Shift by axes</td>
<td>
<input id="styleShiftX" type="number" value=0 data-tip="Shift by x axis in pixels">
<input id="styleShiftY" type="number" value=0 data-tip="Shift by y axis in pixels">
</td>
</tr>
</tbody>
<tbody id="styleCompass">
<tr data-tip="Set compass rose size">
<td>Size</td>
<td>
<input id="styleCompassSizeInput" type="range" min=.02 max=1 step=.01 value=.25>
<output id="styleCompassSizeOutput">.25</output>
</td>
</tr>
<tr data-tip="Shift compass rose by axes">
<td>Shift by axes</td>
<td>
<input id="styleCompassShiftX" type="number" value=0 data-tip="Shift by x axis in pixels">
<input id="styleCompassShiftY" type="number" value=0 data-tip="Shift by y axis in pixels">
</td>
</tr>
</tbody>
<tbody id="styleRelief">
<tr data-tip="Define the size of relief icons">
<td>Size</td>
<td>
<input id="styleReliefSizeInput" data-stored="reliefSize" type="range" min=.2 max=3 step=.01 value=1>
<output id="styleReliefSizeOutput">1</output>
</td>
</tr>
<tr data-tip="Define the density of relief icons. Highly affects performance!">
<td>Density</td>
<td>
<input id="styleReliefDensityInput" data-stored="reliefDensity" type="range" min=.3 max=1 step=.01 value=.4>
<output id="styleReliefDensityOutput">40%</output>
</td>
</tr>
</tbody>
<tbody id="styleFill">
<tr data-tip="Set fill color">
<td>Fill</td>
<td>
<input id="styleFillInput" type="color" value="#5E4FA2"/>
<output id="styleFillOutput">#5E4FA2</output>
</td>
</tr>
</tbody>
<tbody id="styleStroke">
<tr data-tip="Set stroke color">
<td>Stroke</td>
<td>
<input id="styleStrokeInput" type="color" value="#5E4FA2"/>
<output id="styleStrokeOutput">#5E4FA2</output>
</td>
</tr>
</tbody>
<tbody id="styleStrokeWidth">
<tr data-tip="Set stroke width">
<td>Stroke width</td>
<td>
<input id="styleStrokeWidthInput" type="range" min=0 max=3 step=.01 value=1>
<output id="styleStrokeWidthOutput">1</output>
</td>
</tr>
</tbody>
<tbody id="styleStrokeDash">
<tr data-tip="Set stroke dash array (e.g. 5 2) and linecap">
<td>Stroke dash</td>
<td>
<input id="styleStrokeDasharrayInput" type="text" value="1 2" style="width:26%">
<select id="styleStrokeLinecapInput" style="width:32%">
<option value="inherit" selected>Inherit</option>
<option value="butt">Butt</option>
<option value="round">Round</option>
<option value="square">Square</option>
</select>
</td>
</tr>
</tbody>
<tbody id="styleFont">
<tr data-tip="Select font">
<td>Font</td>
<td>
<select id="styleSelectFont"></select>
<input id="styleInputFont" data-tip="Provide a link to @font-face declaration or type Google font name" type="text" placeholder="link to @font-face">
<button id="styleFontAdd" data-tip="Add custom font from the web" class="icon-plus styleButton"></button>
</td>
</tr>
</tbody>
<tbody id="styleSize">
<tr data-tip="Set font size">
<td>Font size</td>
<td>
<button id="styleFontPlus" data-tip="Multiply font size by 1.1" class="whiteButton">+</button>
<button id="styleFontMinus" data-tip="Multiply font size by 0.9" class="whiteButton" >-</button>
<input id="styleFontSize" type="number" min=.5 max=100 step=.1 value=14>
</td>
</tr>
</tbody>
<tbody id="styleRadius">
<tr data-tip="Set icon size">
<td>Radius</td>
<td>
<button id="styleRadiusPlus" data-tip="Multiply radius by 1.1" class="whiteButton">+</button>
<button id="styleRadiusMinus" data-tip="Multiply radius by 1.1" class="whiteButton">-</button>
<input id="styleRadiusInput" type="number" min=.2 max=10 step=.02 value=1>
</td>
</tr>
</tbody>
<tbody id="styleIconSize">
<tr data-tip="Set icon size">
<td>Size</td>
<td>
<button id="styleIconSizePlus" data-tip="Multiply size by 1.1" class="whiteButton">+</button>
<button id="styleIconSizeMinus" data-tip="Multiply size by 1.1" class="whiteButton">-</button>
<input id="styleIconSizeInput" type="number" min=.2 max=10 step=.02 value=1>
</td>
</tr>
</tbody>
<tbody id="styleCoastline">
<tr data-tip="Allow system to apply filter automatically based on zoom level">
<td colspan=2>
<input id="styleCoastlineAuto" class="checkbox" type="checkbox" checked onchange="$('#styleFilter').toggle();">
<label for="styleCoastlineAuto" class="checkbox-label">Automatically change filter on zoom</label>
</td>
</tr>
</tbody>
<tbody id="styleMarkers">
<tr data-tip="Rescale Markers on zoom change">
<td colspan=2>
<input id="styleRescaleMarkers" class="checkbox" type="checkbox" checked onchange="invokeActiveZooming()">
<label for="styleRescaleMarkers" class="checkbox-label">Rescale on zoom change</label>
</td>
</tr>
</tbody>
<tbody id="styleTemperature">
<tr data-tip="Define transparency of temparature leyer. Set to 0 to make it fully transparent">
<td>Fill opacity</td>
<td>
<input id="styleTemperatureFillOpacityInput" type="range" min=0 max=1 step=.01 value=.3/>
<output id="styleTemperatureFillOpacityOutput">0.3</output>
</td>
</tr>
<tr data-tip="Set labels size">
<td>Labels size</td>
<td>
<input id="styleTemperatureFontSizeInput" type="range" min=0 max=30 value=8/>
<output id="styleTemperatureFontSizeOutput">8</output>
</td>
</tr>
<tr data-tip="Set labels color">
<td>Labels color</td>
<td>
<input id="styleTemperatureFillInput" type="color"/>
<output id="styleTemperatureFillOutput">#000</output>
</td>
</tr>
</tbody>
<tbody id="styleHeightmap">
<tr data-tip="Select color scheme for the element">
<td>Color scheme</td>
<td>
<select id="styleHeightmapSchemeInput" onchange="drawHeightmap()">
<option value="bright" selected>Bright</option>
<option value="light">Light</option>
<option value="green">Green</option>
<option value="monochrome">Monochrome</option>
</select>
</td>
</tr>
<tr data-tip="Terracing rate. Set to 0 (toggle off) to improve performance">
<td>Terracing</td>
<td>
<input id="styleHeightmapTerracingInput" type="range" min=0 max=20 step=1 value=0 oninput="styleHeightmapTerracingOutput.value = this.value; drawHeightmap()">
<output id="styleHeightmapTerracingOutput">0</output>
</td>
</tr>
<tr data-tip="Layers reduction rate. Increase to improve performance">
<td>Reduce layers</td>
<td>
<input id="styleHeightmapSkipInput" type="range" min=0 max=10 step=1 value=5 oninput="styleHeightmapSkipOutput.value = this.value; drawHeightmap()">
<output id="styleHeightmapSkipOutput">5</output>
</td>
</tr>
<tr data-tip="Line simplification rate. Increase to slightly improve performance">
<td>Simplify line</td>
<td>
<input id="styleHeightmapSimplificationInput" type="range" min=0 max=10 step=1 value=0 oninput="styleHeightmapSimplificationOutput.value = this.value; drawHeightmap()">
<output id="styleHeightmapSimplificationOutput">0</output>
</td>
</tr>
<tr data-tip="Select line interpolation type">
<td>Line style</td>
<td>
<select id="styleHeightmapCurveInput" onchange="drawHeightmap()">
<option value=0 selected>Curved</option>
<option value=1>Linear</option>
<option value=2>Rectangular</option>
</select>
</td>
</tr>
</tbody>
<tbody id="styleFilter" style="display: block">
<tr data-tip="Select filter for element. Please note filters may cause performance issues!">
<td>Filter</td>
<td>
<select id="styleFilterInput">
<option value="" selected>None</option>
<option value="url(#blurFilter)">Blur 0.2</option>
<option value="url(#blur1)">Blur 1</option>
<option value="url(#blur5)">Blur 5</option>
<option value="url(#blur10)">Blur 10</option>
<option value="url(#splotch)">Splotch</option>
<option value="url(#bluredSplotch)">Blured Splotch</option>
<option value="url(#dropShadow01)">Shadow 0.1</option>
<option value="url(#dropShadow05)">Shadow 0.5</option>
<option value="url(#dropShadow)">Shadow 2</option>
<option value="url(#outline)">Outline</option>
<option value="url(#pencil)">Pencil</option>
<option value="url(#turbulence)">Turbulence</option>
</select>
</td>
</tr>
</tbody>
<tbody id="styleClipping">
<tr data-tip="Set clipping. Only non-clipped part will be visible">
<td>Clipping</td>
<td>
<select id="styleClippingInput">
<option value="" selected>No clipping</option>
<option value="url(#land)">Clip water</option>
<option value="url(#water)">Clip land</option>
</select>
</td>
</tr>
</tbody>
<tbody id="styleVisibility">
<tr data-tip="Define displayed label groups">
<td colspan=2>
<input id="hideLabels" class="checkbox" type="checkbox" onchange="invokeActiveZooming()" checked>
<label for="hideLabels" data-tip="Allow system to hide labels if their size in too small or too big on that scale" class="checkbox-label">Toggle visibility automatically</label>
</td>
</tr>
</tbody>
</table>
<div id="mapFilters" data-tip="Set a filter to be applied to the map in general">
<p>Toggle filters:</p>
<button id="grayscale" class="radio">Grayscale</button>
<button id="sepia" class="radio">Sepia</button>
<button id="dingy" class="radio">Dingy</button>
<button id="tint" class="radio">Tint</button>
</div>
</div>
<div id="optionsContent" class="tabcontent">
<p data-tip="Map generation settings. Generate a new map to apply the settings">Map Generation (new map to apply):</p>
<table>
<tr data-tip="Map height and width in pixels. Please consider reducing map size in case of performance issues">
<td></td>
<td>Map size</td>
<td>
<span data-tip="Map width in pixels">width</span>
<input data-tip="Map width in pixels" id="mapWidthInput" class="paired" type="number" min=240 value=960>
<span data-tip="Map height in pixels">height</span>
<input data-tip="Map height in pixels" id="mapHeightInput" class="paired" type="number" min=135 value=540>
</td>
<td>
<i data-tip="Toggle between screen size and initial map size" id="toggleFullscreen" class="icon-resize-full-alt"></i>
</td>
</tr>
<tr data-tip="Map seed number. Seed produces the same map only if map size and options are the same">
<td>
<i data-tip="Click to generate a map for this seed" id="optionsSeedGenerate"></i>
</td>
<td>Map seed</td>
<td>
<input id="optionsSeed" class="long" type="number" min=1 max=999999999 step=1>
</td>
<td>
<i data-tip="Show seed history to apply a previous seed" id="optionsMapHistory" class="icon-history"></i>
</td>
</tr>
<tr data-tip="Cells density controls underlying graph size and hightly affects performance">
<td></td>
<td>Cells density</td>
<td>
<input id="densityInput" type="range" min=1 max=3 value=1>
</td>
<td>
<input id="densityOutput" type="number" min=1 max=3 value=1>
</td>
</tr>
<tr data-tip="Select template to be used for a Heightmap generation">
<td>
<i data-locked=0 id="lock_template" class="icon-lock-open"></i>
</td>
<td>Map template</td>
<td>
<select id="templateInput" data-stored="template">
<option value="Volcano">Volcano</option>
<option value="High Island">High Island</option>
<option value="Low Island">Low Island</option>
<option value="Continents">Continents</option>
<option value="Archipelago">Archipelago</option>
<option value="Atoll">Atoll</option>
<option value="Mediterranean">Mediterranean</option>
<option value="Peninsula">Peninsula</option>
<option value="Pangea">Pangea</option>
</select>
</td>
<td></td>
</tr>
<tr data-tip="Define how many Cultures should be generated">
<td>
<i data-locked=0 id="lock_cultures" class="icon-lock-open"></i>
</td>
<td>Cultures number</td>
<td>
<input id="culturesInput" data-stored="cultures" type="range" min=1 max=30 value=14>
</td>
<td>
<input id="culturesOutput" data-stored="cultures" type="number" min=1 max=30 value=14>
</td>
</tr>
<tr data-tip="Define how many States should be generated">
<td>
<i data-locked=0 id="lock_regions" class="icon-lock-open"></i>
</td>
<td>States number</td>
<td>
<input id="regionsInput" data-stored="regions" type="range" min=0 max=99 value=13>
</td>
<td>
<input id="regionsOutput" data-stored="regions" type="number" min=0 max=99 value=13>
</td>
</tr>
<tr data-tip="Define how much states and cultures size can vary. Defines expansionism value">
<td>
<i data-locked=0 id="lock_power" class="icon-lock-open"></i>
</td>
<td>Size variety</td>
<td>
<input id="powerInput" data-stored="power" type="range" min=0 max=10 step=.2 value=5>
</td>
<td>
<input id="powerOutput" data-stored="power" type="number" min=0 max=10 step=.2 value=5>
</td>
</tr>
<tr data-tip="Define state and cultures growth rate. Defines how many lands will stay neutral">
<td>
<i data-locked=0 id="lock_neutral" class="icon-lock-open"></i>
</td>
<td>Growth rate</td>
<td>
<input id="neutralInput" data-stored="neutral" type="range" min=.1 max=2 step=.1 value=1>
</td>
<td>
<input id="neutralOutput" data-stored="neutral" type="number" min=.1 max=2 step=.1 value=1>
</td>
</tr>
<tr data-tip="Define how densely settled areas (burgs) should be placed">
<td>
<i data-locked=0 id="lock_manors" class="icon-lock-open"></i>
</td>
<td>Burgs density</td>
<td>
<input id="manorsInput" data-stored="manors" type="range" min=0.1 max=5 step=.1 value=1>
</td>
<td>
<input id="manorsOutput" data-stored="manors" type="number" min=0.1 max=5 step=.1 value=1>
</td>
</tr>
</table>
<p data-tip="Interface settings that don't affect generation. Getting applied immediately on change">User Interface:</p>
<table>
<tr data-tip="Set user interface size">
<td></td>
<td>Interface size</td>
<td>
<input id="uiSizeInput" data-stored="uiSize" type="range" min=.6 max=1.4 step=.1 value=1>
</td>
<td>
<input id="uiSizeOutput" data-stored="uiSize" type="number" min=.6 max=1.4 step=.1 value=1>
</td>
</tr>
<tr data-tip="Set tooltips size">
<td></td>
<td>Tooltips size</td>
<td>
<input id="tooltipSizeInput" data-stored="tooltipSize" type="range" min=4 max=24 value=12>
</td>
<td>
<input id="tooltipSizeOutput" data-stored="tooltipSize" type="number" min=4 max=24 value=12>
</td>
</tr>
<tr data-tip="Set dialog and tool windows transparency">
<td></td>
<td>Transparency</td>
<td>
<input id="transparencyInput" data-stored="transparency" type="range" min=0 max=100 value=30>
</td>
<td>
<input id="transparencyOutput" data-stored="transparency" type="number" min=0 max=100 value=30>
</td>
</tr>
<tr data-tip="Define relative size of a saved png images. Consider saving big images is slow and may cause browser crash">
<td></td>
<td>PNG resolution</td>
<td>
<input id="pngResolutionInput" data-stored="pngResolution" type="range" min=1 max=8 value=5>
</td>
<td>
<input id="pngResolutionOutput" data-stored="pngResolution" type="number" min=1 max=8 value=5>
</td>
</tr>
<tr data-tip="Set minimum and maximum possible zoom level">
<td></td>
<td>Zoom extent</td>
<td>
<span data-tip="Mimimal possible zoom level">min</span>
<input data-tip="Mimimal possible zoom level" id="zoomExtentMin" class="paired" type="number" min=.2 step=.1 max=20 value=1>
<span data-tip="Maximal possible zoom level">max</span>
<input data-tip="Maximal possible zoom level" id="zoomExtentMax" class="paired" type="number" min=1 max=50 value=20>
</td>
<td>
<i data-tip="Restore default [1, 20] zoom extent" id="zoomExtentDefault" class="icon-ccw"></i>
</td>
</tr>
</table>
<button id="configureWorld" data-tip="Click to open world configurator to setup position on globe and world climate" onclick="editWorld()">Configure World</button>
<button id="optionsReset" data-tip="Click to restore default options (page will be reloaded)" onclick="restoreDefaultOptions()">Reset to defaults</button>
</div>
<div id="toolsContent" class="tabcontent">
<div id="openEditor">
<p>Click to configure:</p>
<button id="editHeightmapButton" data-tip="Click to open Heightmap customization menu">Heightmap</button>
<button id="editBiomesButton" data-tip="Click to open Biomes Editor">Biomes</button>
<button id="editStatesButton" data-tip="Click to open States Editor">States</button>
<button id="editCulturesButton" data-tip="Click to open Cultures Editor">Cultures</button>
<button id="editNamesBaseButton" data-tip="Click to open Namesbase Editor">Namesbase</button>
<button id="editBurgsButton" data-tip="Click to open Burgs Editor">Burgs</button>
<button id="editUnitsButton" data-tip="Click to open Units Editor">Units</button>
</div>
<div id="regenerateFeature">
<p>Click to regenerate:</p>
<button id="regenerateStateLabels" data-tip="Click to update state labels placement based on current borders">State labels</button>
<button id="regenerateReliefIcons" data-tip="Click to regenerate all relief icons based on current cell biome and elevation">Relief icons</button>
<button id="regenerateRoutes" data-tip="Click to regenerate all routes">Routes</button>
<button id="regenerateRivers" data-tip="Click to regenerate all rivers">Rivers</button>
<button id="regeneratePopulation" data-tip="Click to recalculate rural and urban population">Population</button>
</div>
<div id="addFeature">
<p>Click to add:</p>
<button id="addBurgTool" data-tip="Click on map to place a burg. Hold Shift to add multiple">Burg</button>
<button id="addLabel" data-tip="Click on map to place label. Hold Shift to add multiple">Label</button>
<button id="addRiver" data-tip="Click on map to place a river. Hold Shift to add multiple">River</button>
<button id="addRoute" data-tip="Click on map to place a route">Route</button>
<button id="addMarker" data-tip="Click on map to place a marker. Hold Shift to add multiple">Marker</button>
</div>
<p>Cell info: <i data-tip="Click to toggle the section" class="collapsible icon-down-open pointer"></i></p>
<div id="cellInfo" style="display: none">
<div>
Coord: <span id="infoX">0</span>/<span id="infoY">0</span><br>
Cell: <span id="infoCell">0</span><br>
Area: <span id="infoArea">0</span><br>
</div>
<div>
Type: <span id="infoFeature">n/a</span><br>
Precip: <span id="infoPrec">0</span><br>
Population: <span id="infoPopulation">0</span>
</div>
<div>
Height: <span id="infoHeight">0</span><br>
Temperature: <span id="infoTemp">0</span><br>
Biome: <span id="infoBiome">n/a</span><br>
State: <span id="infoState">n/a</span><br>
Culture: <span id="infoCulture">n/a</span><br>
Burg: <span id="infoBurg">n/a</span>
</div>
</div>
</div>
<div id="customizationMenu" class="tabcontent">
<p>Heightmap customization tools:</p>
<div id="customizeTools">
<button data-tip="Display brushes panel" id="paintBrushes">Paint Brushes</button>
<button data-tip="Open template editor" id="applyTemplate" style="display: none">Template Editor</button>
<button data-tip="Open Image Converter" id="convertImage" style="display: none">Image Converter</button>
<button data-tip="Render heightmap data as a small monochrome image" id="heightmapPreview">Heightmap Preview</button>
<button data-tip="Render heightmap in perspective" id="perspectiveView">Perspective View</button>
</div>
<div id="customizeOptions">
<p>Options:</p>
<div data-tip="Heightmap edit mode">Edit mode: <span id="heightmapEditMode"></span></div>
<div data-tip="Render cells below the sea level (with height less than 20)">
<input id="renderOcean" class="checkbox" type="checkbox">
<label for="renderOcean" class="checkbox-label">Render ocean cells</label>
</div>
<div data-tip="Allow system to change custom heights on edit completion if reasonable">
<input id="changeHeights" class="checkbox" type="checkbox" checked>
<label for="changeHeights" class="checkbox-label">Allow to change heights on completion</label>
</div>
</div>
<div>
<p>Statistics:</p>
<span>Land cells: </span><span id="landmassCounter">0</span>
<span style="margin-left:8px">Mean height: </span><span id="landmassAverage">0</span>
</div>
<div>
<p>Cell info:</p>
<span>Coord: </span><span id="heightmapInfoX"></span>/<span id="heightmapInfoY"></span>
<span style="margin-left:8px">Cell: </span><span id="heightmapInfoCell"></span>
<span style="margin-left:8px">Height: </span><span id="heightmapInfoHeight"></span>
</div>
<button data-tip="Finalize the heightmap and exit the edit mode" id="finalizeHeightmap" class="glow">Exit Customization</button>
</div>
<div id="aboutContent" class="tabcontent">
<p><a href="https://github.com/Azgaar/Fantasy-Map-Generator" target="_blank">Fantasy Map Generator</a> is a free <a href="https://github.com/Azgaar/Fantasy-Map-Generator/blob/master/LICENSE" target="_blank">open source</a> tool which procedurally generates fantasy maps. You may use auto-generated maps as they are, edit them or even create a new map from scratch. Check out the <a href="https://github.com/Azgaar/Fantasy-Map-Generator/wiki/Quick-Start-Tutorial" target="_blank">quick start tutorial</a> and <a href="https://github.com/Azgaar/Fantasy-Map-Generator/wiki" target="_blank">project wiki</a> for guidance.</p>
<p>Join our <a href="https://www.reddit.com/r/FantasyMapGenerator/" target="_blank">Reddit Community</a> if you have questions, need help, have a suggestion or want to share a created map. You may support the project on <a href='https://www.patreon.com/azgaar' target='_blank'>Patreon</a>.</p>
<p>The project is under active development. For older versions see the <a href="https://github.com/Azgaar/Fantasy-Map-Generator/wiki/Changelog" target="_blank">changelog</a>. To track the development progress see the <a href="https://trello.com/b/7x832DG4/fantasy-map-generator" target="_blank">devboard</a>. Please report bugs <a href="https://github.com/Azgaar/Fantasy-Map-Generator/issues" target="_blank">here</a>. You can also contact me directly via <a href="mailto:maxganiev@yandex.ru" target="_blank">email</a>.</p>
<p>A special thanks to all supporters! <i data-tip="Click to see supporters names" class="collapsible icon-down-open pointer"></i></p>
<p style="display:none">Supporters: Aaron Meyer, Ahmad Amerih, AstralJacks, aymeric, Billy Dean Goehring, Branndon Edwards, Chase Mayers, Curt Flood, cyninge, Dino Princip, E.M. White, es, Fondue, Fritjof Olsson, Gatsu, Johan Fröberg, Jonathan Moore, Joseph Miranda, Kate, KC138, Luke Nelson, Markus Finster, Massimo Vella, Mikey, Nathan Mitchell, Paavi1, Pat, Ryan Westcott, Sasquatch, Shawn Spencer, Sizz_TV, Timothée CALLET, UTG community, Vlad Tomash, Wil Sisney, William Merriott, Xariun and many others!</p>
<ul class="share-buttons">
<li><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fazgaar.github.io%2FFantasy-Map-Generator%2F&quote=" data-tip="Share on Facebook" target="_blank"><img alt="Share on Facebook" src="images/Facebook.png" /></a></li>
<li><a href="https://twitter.com/intent/tweet?source=https%3A%2F%2Fazgaar.github.io%2FFantasy-Map-Generator&text=%23FantasyMapGenerator%0A%0Ahttps%3A//azgaar.github.io/Fantasy-Map-Generator" target="_blank" data-tip="Tweet"><img alt="Tweet" src="images/Twitter.png" /></a></li>
<li><a href="http://www.tumblr.com/share?v=3&u=https%3A%2F%2Fazgaar.github.io%2FFantasy-Map-Generator" target="_blank" data-tip="Post to Tumblr"><img alt="Post to Tumblr" src="images/Tumblr.png" /></a></li>
<li><a href="http://pinterest.com/pin/create/button/?url=https%3A%2F%2Fazgaar.github.io%2FFantasy-Map-Generator" target="_blank" data-tip="Pin it"><img alt="Pin it" src="images/Pinterest.png" /></a></li>
<li><a href="http://www.reddit.com/submit?url=https%3A%2F%2Fazgaar.github.io%2FFantasy-Map-Generator" target="_blank" data-tip="Submit to Reddit"><img alt="Submit to Reddit" src="images/Reddit.png" /></a></li>
</ul>
</div>
<div id="sticked">
<button id="newMapButton" data-tip="Generate a new map based on options. Shortcut: F7">New Map</button>
<button id="saveButton" data-tip="Select file format to save map">Save as</button>
<div id="saveDropdown">
<div id="saveMap" data-tip="Save as fully functional map in .map format. Shortcut: Ctrl + M">.map</div>
<div id="saveSVG" data-tip="Download the map as .svg image (open in browser or Inkscape). Shortcut: Ctrl + S">.svg</div>
<div id="savePNG" data-tip="Download visible part of the map as image. Texture will not be shown. Shortcut: Ctrl + P">.png</div>
</div>
<button id="loadMap" data-tip="Load fully functional map in a .map format. Shortcut: Ctrl + L">Load</button>
<button id="zoomReset" data-tip="Reset map zoom. Shortcut: 0">Reset Zoom</button>
</div>
</div>
</div>
<div id="dialogs" style="background-color: #ffffff">
<div id="worldConfigurator" class="dialog stable" style="display: none">
<div id="worldControls">
<label data-tip="Set temerature at equator">
<i data-locked=0 id="lock_temperatureEquator" class="icon-lock-open"></i>
<i>Equator:</i>
<input id="temperatureEquatorInput" data-stored="temperatureEquator" type="number" min="-30" max="30" style="width:32px"/>°C =
<span id="temperatureEquatorF"></span>°F
<input id="temperatureEquatorOutput" data-stored="temperatureEquator" type="range" min="-30" max="30"/>
</label>
<label data-tip="Set temerature at poles">
<i data-locked=0 id="lock_temperaturePole" class="icon-lock-open"></i>
<i>Poles:</i>
<input id="temperaturePoleInput" data-stored="temperaturePole" type="number" min="-30" max="30" style="width:32px"/>°C =
<span id="temperaturePoleF"></span>°F
<input id="temperaturePoleOutput" data-stored="temperaturePole" type="range" min="-30" max="30"/>
</label>
<label data-tip="Set equator Y position relative to map">
<i data-locked=0 id="lock_equator" class="icon-lock-open"></i>
<i>Equator Y:</i>
<input id="equatorInput" data-stored="equator" type="number" style="width:45px">
<input id="equatorOutput" data-stored="equator" type="range">
</label>
<label data-tip="Set distance from equator to poles. It actually contols world size">
<i data-locked=0 id="lock_equidistance" class="icon-lock-open"></i>
<i>Equidistance:</i>
<input id="equidistanceInput" data-stored="equidistance" type="number" style="width:45px">
<input id="equidistanceOutput" data-stored="equidistance" type="range">
</label>
<label data-tip="Set precipitation - water amount clouds can bring. Defines rivers and biomes generation">
<i data-locked=0 id="lock_prec" class="icon-lock-open"></i>
<i>Precipitation:</i>
<input id="precInput" data-stored="prec" type="number" style="width:34px">%
<input id="precOutput" data-stored="prec" type="range" min="0" max="500" value="50">
</label>
<label data-tip="Map size. Can be changed in general options">
<i>Map size:</i><br>
<span id="mapSize"></span> px = <span id="mapSizeFriendly"></span>
</label>
<label>
<i data-tip="Length of Medirian. Doubled equidistance or almost half of the equator length">Meridian length:</i><br>
<span id="meridianLength" data-tip="Length of Medirian in pixels"></span> px =
<span id="meridianLengthFriendly" data-tip="Length of Medirian is friendly units (depends on user configuration)"></span>
<span id="meridianLengthEarth" data-tip="Fantasy world medirian length relative to real-world Earth (20k km)"></span>
</label>
<label data-tip="Map coordinates on globe"><i>Coords:</i> <span id="mapCoordinates"></span></label>
</div>
<svg id="globe" width="222" height="222" viewBox="-20 -15 240 225">
<defs>
<linearGradient id="temperatureGradient" x1="0" x2="0" y1="0" y2="1">
<stop class="tempGradient90" offset="0%" stop-color="blue"/>
<stop class="tempGradient60" offset="16.6%" stop-color="green"/>
<stop class="tempGradient30" offset="33.3%" stop-color="yellow"/>
<stop class="tempGradient0" offset="50%" stop-color="red"/>
<stop class="tempGradient30" offset="66.6%" stop-color="yellow"/>
<stop class="tempGradient60" offset="83.3%" stop-color="green"/>
<stop class="tempGradient90" offset="100%" stop-color="blue"/>
</linearGradient>
</defs>
<g id="globeNoteLines">
<line x1="5" x2="220" y1="0" y2="0"></line>
<line x1="5" x2="220" y1="13" y2="13"></line>
<line x1="5" x2="220" y1="49.5" y2="49.5"></line>
<line x1="-5" x2="220" y1="100" y2="100"></line>
<line x1="5" x2="220" y1="150.5" y2="150.5"></line>
<line x1="5" x2="220" y1="187" y2="187"></line>
<line x1="5" x2="220" y1="200" y2="200"></line>
</g>
<g id="globeWindArrows" data-tip="Click to change wind direction">
<circle cx=210 cy=6 r=12></circle>
<path data-tier=0 d="M210,11 v-10 l-3,3 m6,0 l-3,-3" transform="rotate(225 210 6)"></path>
<circle cx=210 cy=30 r=12></circle>
<path data-tier=1 d="M210,35 v-10 l-3,3 m6,0 l-3,-3" transform="rotate(45 210 30)"></path>
<circle cx=210 cy=75 r=12></circle>
<path data-tier=2 d="M210,80 v-10 l-3,3 m6,0 l-3,-3" transform="rotate(225 210 75)"></path>
<circle cx=210 cy=130 r=12></circle>
<path data-tier=3 d="M210,135 v-10 l-3,3 m6,0 l-3,-3" transform="rotate(315 210 130)"></path>
<circle cx=210 cy=173 r=12></circle>
<path data-tier=4 d="M210,178 v-10 l-3,3 m6,0 l-3,-3" transform="rotate(135 210 173)"></path>
<circle cx=210 cy=194 r=12></circle>
<path data-tier=5 d="M210,199 v-10 l-3,3 m6,0 l-3,-3" transform="rotate(315 210 194)"></path>
</g>
<g id="globaAxisLabels">
<text x="82%" y="-4%">wind</text>
<text x="-8%" y="-4%">latitude</text>
<text id="restoreWind" data-tip="Click to restore default wind directions" x="60%" y="95%">restore default</text>
</g>
<g id="globeLatLabels">
<text x="-15" y="5">90°</text>
<text x="-15" y="18">60°</text>
<text x="-15" y="53">30°</text>
<text x="-15" y="103"></text>
<text x="-15" y="153">30°</text>
<text x="-15" y="190">60°</text>
<text x="-15" y="204">90°</text>
</g>
<circle id="globeOutline" cx="100" cy="100" r="100"></circle>
<path id="globeArea"></path>
<path id="globeGraticule"></path>
<line id="globeEquator" x1="1" x2="199" y1="100" y2="100"></line>
</svg>
</div>
<div id="labelEditor" class="dialog" style="display: none">
<button id="labelGroupShow" data-tip="Show the group selection" class="icon-tags"></button>
<div id="labelGroupSection" style="display: none">
<button id="labelGroupHide" data-tip="Hide the group selection" class="icon-tags"></button>
<select id="labelGroupSelect" data-tip="Select a group for this label" style="width:113px"></select>
<input id="labelGroupInput" placeholder="new group name" data-tip="Provide a name for the new group" style="display:none; width:109px; height:10px"/>
<span id="labelGroupNew" data-tip="Create new group for this label" class="icon-plus pointer"></span>
<span id="labelGroupRemove" data-tip="Remove the Group with all labels" class="icon-trash-empty pointer"></span>
</div>
<button id="labelTextShow" data-tip="Show the edit label text section" class="icon-pencil"></button>
<div id="labelTextSection" style="display: none">
<button id="labelTextHide" data-tip="Hide the edit label text section" class="icon-pencil"></button>
<input id="labelText" style="width: 121px; height:12px"/>
<span id="labelTextRandom" data-tip="Generate random name" class="icon-shuffle pointer"></span>
</div>
<button id="labelSizeShow" data-tip="Show the font size section" class="icon-text-height"></button>
<div id="labelSizeSection" style="display: none">
<button id="labelSizeHide" data-tip="Hide the font size section" class="icon-text-height"></button>
<input id="labelStartOffset" data-tip="Set starting offset for the particular label" type="range" min=20 max=80 style="width:79px">
<i class="icon-text-height"></i>
<input id="labelRelativeSize" data-tip="Set relative size for the particular label" type="number" min=30 max=300 step=1 style="width:36px">
</div>
<button id="labelLegend" data-tip="Edit free text notes (legend) for this label" class="icon-edit"></button>
<button id="labelRemoveSingle" data-tip="Remove the label. Shortcut: Delete" class="icon-trash"></button>
</div>
<div id="riverEditor" class="dialog" style="display: none">
<button id="riverWidthShow" data-tip="Show the river width and widening change section" class="icon-resize-full"></button>
<div id="riverWidthSection" style="display: none">
<button id="riverWidthHide" data-tip="Hide the river width and widening change section" class="icon-resize-full"></button>
<i id="riverWidthIcon" class="icon-w"></i>
<input id="riverWidthInput" data-tip="Change river width" value="1" type="range" min=.2 max=5 step=.1>
<i id="riverIncrementIcon" class="icon-i"></i>
<input id="riverIncrement" data-tip="Change river bed increment (widening speed)" type="range" min=.02 max=2 step=.02>
</div>
<button id="riverResizeShow" data-tip="Show river transformation section" class="icon-ccw"></button>
<div id="riverResizeSection" style="display: none">
<button id="riverResizeHide" data-tip="Hide river transformation section" class="icon-ccw"></button>
<i id="riverAngleIcon" class="icon-a"></i>
<input id="riverAngle" data-tip="Rotate river by angle" type="range" min="-90" max=90 step=.2>
<span id="riverAngleValue">0&#8457;</span>
<i id="riverScaleIcon" class="icon-s"></i>
<input id="riverScale" data-tip="Change river scale" value="1" type="number" min=.1 max=3 step=.01>
<span id="riverReset" data-tip="Reset transformation to default" class="icon-cancel pointer"></span>
</div>
<button id="riverLength" data-tip="Route length in selected units">0</button>
<button id="riverCopy" data-tip="Copy river" class="icon-clone"></button>
<button id="riverNew" data-tip="Create new river clicking on map" class="icon-map-pin"></button>
<button id="riverLegend" data-tip="Edit free text notes (legend) for the river" class="icon-edit"></button>
<button id="riverRemove" data-tip="Remove river. Shortcut: Delete" class="icon-trash"></button>
</div>
<div id="routeEditor" class="dialog" style="display: none">
<button id="routeGroupsShow" data-tip="Show the group selection" class="icon-tags"></button>
<div id="routeGroupsSelection" style="display: none">
<button id="routeGroupsHide" data-tip="Hide the group section" class="icon-tags"></button>
<select id="routeGroup" data-tip="Select a group for this route" style="width:135px"></select>
<input id="routeGroupName" placeholder="new group name" data-tip="Provide a name for the new group" style="display:none; width:131px; height:10px"/>
<span id="routeGroupAdd" data-tip="Create new group for this route" class="icon-plus pointer"></span>
<span id="routeGroupRemove" data-tip="Remove all routes of this group" class="icon-trash-empty pointer"></span>
</div>
<button id="routeLength" data-tip="River length in selected units">0</button>
<button id="routeSplit" data-tip="Click on a control point to split the route" class="icon-unlink"></button>
<button id="routeLegend" data-tip="Edit free text notes (legend) for the route" class="icon-edit"></button>
<button id="routeNew" data-tip="Create new route clicking on map" class="icon-map-pin"></button>
<button id="routeRemove" data-tip="Remove route. Shortcut: Delete" class="icon-trash"></button>
</div>
<div id="reliefEditor" class="dialog" style="display: none">
<div id="reliefTools" data-tip="Select mode of operation">
<div>Mode:</div>
<button id="reliefIndividual" data-tip="Edit individual selected icon" class="icon-info pressed"></button>
<button id="reliefBulkAdd" data-tip="Place icons in a bulk" class="icon-brush"></button>
<button id="reliefBulkRemove" data-tip="Remove icons in a bulk" class="icon-eraser"></button>
</div>
<div id="reliefSizeDiv" data-tip="Set icon size for individual icon or for bulk placement">
<div>Size:</div>
<input id="reliefSize" type="range" min=2 max=30 step=1 value=5>
<input id="reliefSizeNumber" type="number" min=2 max=30 step=1 value=5>
</div>
<div id="reliefRadiusDiv" data-tip="Set brush radius for icons placement on deletion" style="display:none">
<div>Radius:</div>
<input id="reliefRadius" oninput="reliefRadiusNumber.value = this.value" type="range" min=1 max=50 value=15>
<input id="reliefRadiusNumber" oninput="reliefRadius.value = this.value" type="number" min=1 max=50 value=15>
</div>
<div id="reliefSpacingDiv" data-tip="Set spacing between relief icons" style="display:none">
<div>Spacing:</div>
<input id="reliefSpacing" oninput="reliefSpacingNumber.value = this.value" type="range" min=2 max=20 value=5>
<input id="reliefSpacingNumber" oninput="reliefSpacing.value = this.value" type="number" min=2 max=20 value=5>
</div>
<div id="reliefIconsDiv" data-tip="Select icon">
<button data-type="#relief-mount-1" data-tip="Select Mountain icon">
<svg class="button" viewBox="5 0 90 90" height="22" width="20">
<path d="m3,69 16,-12 31,-32 15,20 30,24" fill="#fff" stroke="#000" stroke-width="1"></path>
<path d="m3,69 16,-12 31,-32 -14,44" fill="#333"></path>
</svg>
</button>
<button data-type="#relief-hill-1" data-tip="Select Hill icon">
<svg class="button" viewBox="14 0 74 74" height="22" width="20">
<path d="m20,55 q30,-28 60,0" fill="#333" stroke="#000"></path>
<path d="m38,55 q13,-24 40,0" fill="#fff"></path>
</svg>
</button>
<button data-type="#relief-deciduous-1" data-tip="Select Deciduous tree icon">
<svg class="button" viewBox="27 20 48 48" height="22" width="20">
<path d="m50,52 v7 h1 v-7 h-0.5 q13,-7 0,-16 q-13,9 0,16" fill="#fff" stroke="#000"></path>
<path d="m50,52 q-12,-7 0,-16 q-3.5,10 0,15.5" fill="#333"></path>
</svg>
</button>
<button data-type="#relief-conifer-1" data-tip="Select Conifer tree icon">
<svg class="button" viewBox="28 23 44 44" height="22" width="20">
<path d="m50,55 v4 h1 v-4 l4.5,0 -4,-8 l3.5,0 -4.5,-9 -4,9 3,0 -3.5,8 7,0" fill="#fff" stroke="#000"></path>
<path d="m46,55 l4,-8 -4,0 5,-9 -2.5,9 l1.5,0 -2,8" fill="#333"></path>
</svg>
</button>
<button data-type="#relief-palm-1" data-tip="Select Palm tree icon">
<svg class="button" viewBox="27 20 44 44" height="22" width="20">
<path d="m 48.1,55.5 2.1,0 c 0,0 1.3,-5.5 1.2,-8.6 0,-3.2 -1.1,-5.5 -1.1,-5.5 l -0.5,-0.4 -0.2,0.1 c 0,0 0.9,2.7 0.5,6.2 -0.5,3.8 -2.1,8.2 -2.1,8.2 z" fill="#000"></path>
<path d="m 54.9,48.8 c 0,0 1.9,-2.5 0.3,-5.4 -1.4,-2.6 -4.3,-3.2 -4.3,-3.2 0,0 1.6,-0.6 3.3,-0.3 1.7,0.3 4.1,2.5 4.1,2.5 0,0 -0.6,-3.6 -3.6,-4.4 -2.2,-0.6 -4.2,1.3 -4.2,1.3 0,0 0.3,-1.5 -0.2,-2.9 -0.6,-1.4 -2.6,-1.9 -2.6,-1.9 0,0 0.8,1.1 1.2,2.2 0.3,0.9 0.3,2 0.3,2 0,0 -1.3,-1.8 -3.7,-1.5 -2.5,0.2 -3.7,2.5 -3.7,2.5 0,0 2.3,-0.6 3.4,-0.6 1.1,0.1 2.6,0.8 2.6,0.8 l -0.4,0.2 c 0,0 -1.2,-0.4 -2.7,0.4 -1.9,1.1 -2.9,3.7 -2.9,3.7 0,0 1.4,-1.4 2.3,-1.9 0.5,-0.3 1.8,-0.7 1.8,-0.7 0,0 -0.7,1.3 -0.9,3.1 -0.1,2.5 1.1,4.6 1.1,4.6 0,0 0.1,-3.4 1.2,-5.6 1,-1.9 2.3,-2.6 2.3,-2.6 l 0.4,-0.2 c 0,0 1.5,0.7 2.8,2.8 1,1.7 2.3,5 2.3,5 z" fill="#fff" stroke="#000" stroke-width=".8"></path>
<path d="m 47.7,34.6 c 0,0 1,1.2 1.2,2.3 0.2,0.9 0.3,2.8 0.3,2.8 0,0 -1.6,-1.5 -3.2,-1.6 -1.8,-0.1 -4,1.3 -4,1.3 0,0 2.1,-0.5 3.3,-0.5 1.5,0 3.3,1.2 3.3,1.2 0,0 -1.7,0.8 -2.6,2.8 -0.9,2 -0.3,6 -0.3,6 0,0 0,-2.9 0.9,-5 0.8,-1.8 2.1,-2.7 2.4,-2.8 0.7,-0.3 0.5,-1.1 0.5,-1.1 0,0 -0.1,-2.2 -0.5,-3.4 -0.4,-1.2 -1.5,-2.1 -1.5,-2.1 z" fill="#333"></path>
<path d="m 42,43.7 c 0,0 1.2,-1.1 1.8,-1.5 0.7,-0.4 2,-0.8 2,-0.8 L 46.5,40.5 c 0,0 -0.8,0 -2.3,0.8 -1.3,0.8 -2.2,2.3 -2.2,2.3 z" fill="#333"></path>
</svg>
</button>
<button data-type="#relief-acacia-1" data-tip="Select Acacia tree icon">
<svg class="button" viewBox="27 22 44 44" height="22" width="20">
<path d="m52 38 c-2.3 -0.1 -4.3 1.1 -4.9 1.1 -2.2 -0.2 -5 0.2 -6.4 1 -1.3 0.7 -2.8 1.6 -3.7 2.1 -1 0.6 -3.4 1.8 -2.2 2.7 1.1 0.9 3.1 -0.2 4.2 0.3 1.4 0.8 2.9 1 4.5 0.9 1.1 -0.1 2.2 -0.4 2.4 1 0.3 1.9 1.1 3.5 2.1 5.1 0.8 2.4 1 2.8 1 6.8 l2 0 c 0 -1.1 -0.1 -4 1.2 -5.7 1.1 -1.4 1.4 -3.4 3 -4.4 0.9 -1.4 2 -2.6 3.8 -2.7 1.7 -0.3 3.8 0.8 5.1 0.3 0.9 -0.1 3.2 1 3.5 -1 0.1 -2 -2.2 -2.1 -3.2 -3.3 -1.1 -1.5 -3.3 -1.9 -4.9 -1.8 -1 -0.5 -2 -2.5 -7.3 -2.5 z m -0.5 0.4 c2.7338 -0.2 5.6 0.2 7.5 2.4 1.7 0 3.7 0 4.8 1.5 1 1.2 3.4 1.8 3.4 3 0 2.1 -3.2 0.5 -3.6 0.1 -1.3 -1.4 -2.9 -0.6 -4.5 -0.7 -1.6 -0.1 -3.2 0.4 -4.6 -0.6 -1.1 -0.7 -2.5 0.1 -3.8 -0.1 -1.8 -0.2 -4 -0.4 -5.9 -0.1 -1.4 0 -2.8 0.1 -4.2 0 -1.7 0.5 -5.5 1.1 -5.4 0.4 0.2 -1.1 4.5 -3.2 5.9 -3.9 1.9 -0.9 3.7 -1.1 6.2 -0.8 0.7 -0.2 1.7 -1.1 4.3 -1.3 z m2 6 c1.6 0.3 2 2.2 1.2 3.3 -1 1.3 -1 -1.3 -1.3 -2 -0.2 -0.5 -0.8 -1.3 0.1 -1.3 z m -12.9 0.2 c1 -0.1 3.5 -0.3 3.1 0.9 -1.4 0 -3.4 0.1 -4.4 -0.6 0.4 -0.2 0.9 -0.2 1.3 -0.3 z m5.6 -0.1 c0.8 0.1 3.1 -0.3 3 0.5 -1.3 0.6 -1.6 2.2 -2.1 3.1 -0.4 -1.2 -0.7 -2.7 -2.1 -3.2 -0.9 -0.6 1 -0.5 1.3 -0.4 z m5.3 0.3 c1.1 0.1 1.6 2.4 0.1 1.3 -1.6 -1.2 -0.6 -1.3 -0.1 -1.3 z m7.5 0.4 c1.2 0 3.3 -0.2 2.9 0.2 -1.4 1.2 -3 -0.3 -4.8 0.8 -0.9 0.5 -2 0.8 -1.1 -0.4 0.5 -0.6 1.3 -0.5 3 -0.6 z m -8.9 0.1 c0.7 1.2 2.1 1.5 2.9 2.1 0.9 1.6 -0.5 3.1 -1.3 4.5 -0.9 1.5 -1.9 2.2 -2.4 0.3 -0.1 -0.5 -1.8 -2.2 -1.2 -3.7 0.3 -1.3 0.6 -2.6 2 -3.2 z m12.5 0.1 c0.6 0.2 1.3 1.1 0.2 0.9 -1.4 -0.1 -1.4 -0.3 -0.2 -0.9 z" fill="#000"></path>
<path d="m47 42.33 c2 0.1 4.1 0.5 6.1 -0.3 1.4 -0.3 2.6 0.8 3.6 1.6 0.7 0.4 2.5 0.7 2.7 1.2 -2.2 -0.1 -3.6 0.4 -4.8 -0.4 -1 -0.7 -2.2 -0.3 -3 -0.2 -0.9 0.1 -3 -0.4 -5.5 -0.2 -2.6 0.2 -5.1 -0.1 -7.2 0.5 -3.6 0.6 -3.7 0 -3.7 0 2.2 -2 9.1 -1.7 11.9 -2.2 z" fill="#999"/>
</svg>
</button>
<button data-type="#relief-grass-1" data-tip="Select Grass icon">
<svg class="button" viewBox="43 41 15 15" height="22" width="20">
<path d="m 49.5,53.1 c 0,-3.4 -2.4,-4.8 -3,-5.4 1,1.8 2.4,3.7 1.8,5.4 z M 51,53.2 C 51.4,49.6 49.6,47.9 48,46.8 c 1.1,1.8 2.8,4.6 1.8,6.5 z M 51.4,51.4 c 0.6,-1.9 1.8,-3.4 3,-4.3 -0.8,0.3 -2.9,1.5 -3.4,2.8 0.2,0.4 0.3,0.8 0.4,1.5 z M 52.9,53.2 c -0.7,-1.9 0.5,-3.3 1.5,-4.4 -1.7,1 -3,2.2 -2.7,4.4 z" fill="#5c5c70" stroke="none"></path>
</svg>
</button>
<button data-type="#relief-swamp-1" data-tip="Select Swamp icon">
<svg class="button" viewBox="36 34 29 29" height="22" width="20">
<path d="m50,46 v6 l3,-4 m-3,4 l-3,-4 m-7,4.5 h4 m4,0 h4 m4,0 h4" fill="none" stroke="#000"></path>
</svg>
</button>
<button data-type="#relief-dune-1" data-tip="Select Dune icon">
<svg class="button" viewBox="23 20 48 48" height="22" width="20">
<path d="m 28.7,52.8 c 5,-3.9 10,-8.2 15.8,-8.3 4.5,0 10.8,3.8 15.2,6.5 3.5,2.2 6.8,2 6.8,2" fill="none" stroke="#000" stroke-width="1.3"></path>
<path d="m 44.2,47.6 c -3.2,3.2 3.5,5.7 5.9,7.8" fill="none" stroke="#000"></path>
</svg>
</button>
<button id="reliefIconsSeletionAny" style="display:none">any</button>
</div>
<div id="reliefBottom">
<button id="reliefCopy" data-tip="Copy selected relief icon" class="icon-clone"></button>
<button id="reliefMoveFront" data-tip="Move selected relief icon to front" class="icon-level-up"></button>
<button id="reliefMoveBack" data-tip="Move selected relief icon back" class="icon-level-down"></button>
<button id="reliefRemove" data-tip="Remove selected relief icon. Shortcut: Delete" class="icon-trash"></button>
</div>
</div>
<div id="burgEditor" class="dialog" style="display: none">
<button id="burgGroupShow" data-tip="Show group change section" class="icon-tags"></button>
<div id="burgGroupSection" style="display: none">
<button id="burgGroupHide" data-tip="Hide group change section" class="icon-tags"></button>
<select id="burgSelectGroup" data-tip="Select a group for this burg" style="width: 117px;"></select>
<input id="burgInputGroup" placeholder="new group name" data-tip="Create new Group for the Burg" style="display: none; width: 113px; height: 10px"/>
<i id="burgAddGroup" data-tip="Create new group for the burg" class="icon-plus pointer"></i>
<i id="burgRemoveGroup" data-tip="Remove selected burg group" class="icon-trash pointer"></i>
</div>
<button id="burgNameShow" data-tip="Show name change section" class="icon-pencil"></button>
<div id="burgNameSection" style="display: none">
<button id="burgNameHide" data-tip="Hide name change section" class="icon-pencil"></button>
<input id="burgNameInput" data-tip="Populate to rename the burg" style="height: 12px"/>
<span id="burgNameReCulture" data-tip="Generate culture-specific name for the burg" class="icon-book pointer"></span>
<span id="burgNameReRandom" data-tip="Generate random name for the burg" class="icon-globe pointer"></span>
</div>
<button id="burgSeeInMFCG" data-tip="Open the burg representation in the Medieval Fantasy City Generator by Watabou" class="icon-map-o"></button>
<button id="burgRelocate" data-tip="Relocate burg" class="icon-target"></button>
<button id="burglLegend" data-tip="Edit free text notes (legend) for this burg" class="icon-edit"></button>
<button id="burgRemove" data-tip="Remove non-capital burg. Shortcut: Delete" class="icon-trash"></button>
</div>
<div id="markerEditor" class="dialog" style="display: none">
<button id="markerGroup" data-tip="Change marker type" class="icon-tags"></button>
<div id="markerGroupSection" style="display: none">
<select id="markerSelectGroup" data-tip="Select type for the selected marker" style="width: 117px; height: 18px"></select>
<input id="markerInputGroup" data-tip="Create new type for selected marker" placeholder="type new name" style="display: none; width: 113px; height: 12px"/>
<i id="markerAddGroup" data-tip="Create new markers type" class="icon-plus pointer"></i>
<i id="markerRemoveGroup" data-tip="Remove all markers of that type" class="icon-trash pointer"></i>
</div>
<button id="markerIcon" data-tip="Change marker icon and edit positioning" class="icon-star"></button>
<div id="markerIconSection" style="display: none">
<i data-tip="Change marker icon size" class="icon-resize-full"></i>
<input id="markerIconSize" data-tip="Change marker icon size" type="range" min=10 max=30 step=.5 value=22 style="width:12em">
<i data-tip="Change marker horizontal shift" class="icon-resize-horizontal"></i>
<input id="markerIconShiftX" data-tip="Change icon horizontal shift" type="number" value=50 style="width:3em">
<i data-tip="Change marker vertical shift" class="icon-resize-vertical"></i>
<input id="markerIconShiftY" data-tip="Change vertical shift" type="number" min=0 max=100 value=50 style="width:3em">
<i data-tip="Paste custom unicode symbol to use as icon" class="icon-pencil"></i>
<input id="markerIconCustom" data-tip="Paste custom unicode symbol to use as icon" style="width:3em">
<table id="markerIconTable"></table>
<div style="font-style: italic; color: darkgrey;">Please note icons look different in different browsers!</div>
</div>
<button id="markerStyle" data-tip="Change marker size and colors" class="icon-brush"></button>
<div id="markerStyleSection" style="display: none">
<i data-tip="Change marker base (pin) style" class="icon-map-pin"></i>:
<input id="markerSize" data-tip="Change marker size" type="range" min=.02 max=20 step=.2 value=1 style="width:12em">
<input id="markerBaseStroke" data-tip="Change pin stroke color" type="color" value="#ffffff">
<input id="markerBaseFill" data-tip="Change pin fill color" type="color" alue="#000000">
<br><i data-tip="Change marker icon style" class="icon-star"></i>:
<input id="markerIconStrokeWidth" data-tip="Change icon stroke width" type="range" min=0 max=1 step=.02 value=0 style="width:12em">
<input id="markerIconStroke" data-tip="Change icon stroke color. Ensure icon stroke width is non-zero" type="color" value="#3200ff">
<input id="markerIconFill" data-tip="Change icon fill color" type="color" value="#000000">
</div>
<button id="markerToggleBubble" data-tip="Toggle pin (bubble) display" class="icon-info-circled"></button>
<button id="markerLegendButton" data-tip="Edit place legend (free text notes)" class="icon-edit"></button>
<button id="markerAdd" data-tip="Add additional marker of that type" class="icon-plus"></button>
<button id="markerRemove" data-tip="Remove the marker. Shortcut: Delete" class="icon-trash"></button>
</div>
<div id="brushesPanel" class="dialog stable" style="display: none">
<div id="brushesButtons" style="display: inline-block">
<button id="brushRaise" data-tip="Raise brush: increase height of cells in radius by Power value">
<svg viewBox="15 15 70 70" height="14" width="22">
<path d="m20,39 h60 M50,85 v-35 l-12,8 m12,-8 l12,8" fill="none" stroke="#000" stroke-width="5"></path>
</svg>
</button>
<button id="brushElevate" data-tip="Elevate brush: drag to gradually increase height of cells in radius by Power value">
<svg viewBox="15 15 70 70" height="14" width="22">
<path d="m20,50 q30,-35 60,0 M50,85 v-35 l-12,8 m12,-8 l12,8" fill="none" stroke="#000" stroke-width="5"></path>
</svg>
</button>
<button id="brushLower" data-tip="Lower brush: drag to decrease height of cells in radius by Power value">
<svg viewBox="15 15 70 70" height="14" width="22">
<path d="M50,30 v35 l-12,-8 m12,8 l12,-8 M20,78 h60" fill="none" stroke="#000" stroke-width="5"></path>
</svg>
</button>
<button id="brushDepress" data-tip="Depress brush: drag to gradually decrease height of cells in radius by Power value">
<svg viewBox="15 15 70 70" height="14" width="22">
<path d="M50,30 v35 l-12,-8 m12,8 l12,-8 M20,63 q30,35 60,0" fill="none" stroke="#000" stroke-width="5"></path>
</svg>
</button>
<button id="brushAlign" data-tip="Align brush: drag to set height of cells in radius to height of the cell at mousepoint">
<svg viewBox="15 15 70 70" height="14" width="22">
<path d="m20,50 h56 m0,20 h-56" fill="none" stroke="#000" stroke-width="5"></path>
</svg>
</button>
<button id="brushSmooth" data-tip="Smooth brush: drag to level height of cells in radius to height of adjacent cells">
<svg viewBox="15 15 70 70" height="14" width="22">
<path d="m15,60 q15,-15 30,0 q15,15 35,0" fill="none" stroke="#000" stroke-width="5"></path>
</svg>
</button>
<button id="brushDisrupt" data-tip="Disrupt brush: drag to randomize height of cells in radius based on Power value">
<svg viewBox="15 15 70 70" height="14" width="22">
<path d="m15,63 l15,-13 15,20 15,-20 15,19 15,-14" fill="none" stroke="#000" stroke-width="5"></path>
</svg>
</button>
</div>
<div id="brushesSliders" style="display: none">
<div data-tip="Set the brush size" style="padding-bottom: 1px"><div style="width:3.2em; display: inline-block"><i>Radius:</i></div>
<input id="brushRadius" oninput="tip('Brush radius: '+this.value); brushRadiusNumber.value = this.value" type="range" min=5 max=50 value=25>
<input id="brushRadiusNumber" oninput="tip('Brush radius: '+this.value); brushRadius.value = this.value" type="number" min=5 max=50 value=25 style="border: 1px solid #d4d4d4">
</div>
<div data-tip="Set the brush power"><div style="width:3.2em; display: inline-block"><i>Power:</i></div>
<input id="brushPower" oninput="tip('Brush power: '+this.value); brushPowerNumber.value = this.value" type="range" min=1 max=10 value=5>
<input id="brushPowerNumber" oninput="tip('Brush power: '+this.value); brushPower.value = this.value" type="number" min=1 max=10 value=5 style="border: 1px solid #d4d4d4">
</div>
</div>
<div data-tip="Allow brush to change only land cells and hence restrict the coastline modification">
<input id="changeOnlyLand" class="checkbox" type="checkbox">
<label for="changeOnlyLand" class="checkbox-label"><i>change only land cells</i></label>
</div>
<div id="modifyButtons">
<button id="undo" data-tip="Undo the latest action (Ctrl + Z)" class="icon-ccw" disabled></button>
<button id="redo" data-tip="Redo the action (Ctrl + Y)" class="icon-cw" disabled></button>
<button id="rescaleShow" data-tip="Show rescaler slider" class="icon-exchange"></button>
<button id="rescaleCondShow" data-tip="Rescaler: change height if condition is fulfilled" class="icon-if"></button>
<button id="smoothHeights" data-tip="Smooth all heights a bit" class="icon-smooth"></button>
<button id="disruptHeights" data-tip="Disrupt (randomize) heights a bit" class="icon-disrupt"></button>
<button id="brushClear" data-tip="Set height for all cells to 0 (erase the map)" class="icon-eraser"></button>
</div>
<div id="rescaleSection" style="display: none">
<button id="rescaleHide" data-tip="Hide rescaler slider" class="icon-exchange"></button>
<input id="rescaler" data-tip="Change height for all cells" type="range" min=-10 max=10 step=1 value=0>
</div>
<div id="rescaleCondSection" data-tip="If height is greater or equal to X and less or equal to Y, then perform an operation Z with operand V" style="display: none">
<button id="rescaleCondHide" data-tip="Hide rescaler" class="icon-if"></button>
<label>h ≥</label>
<input id="rescaleLower" value=20 type="number" min=0 max=100>
<label></label>
<input id="rescaleHigher" value=100 type="number" min=1 max=100>
<label></label>
<select id="conditionSign">
<option value="multiply" selected>×</option>
<option value="divide">÷</option>
<option value="add">+</option>
<option value="subtract">-</option>
<option value="exponent">^</option>
</select>
<input id="rescaleModifier" type="number" value=0.9 min=0 max=1.5 step=0.01>
<button id="rescaleExecute" data-tip="Click to perform an operation" class="icon-play-circled2"></button>
</div>
</div>
<div id="templateEditor" class="dialog stable" style="display: none">
<div id="templateTop">
<i>Select template: </i><select id="templateSelect" style="width:16em" data-prev="templateCustom" data-tip="Select base template">
<option value="templateCustom" selected>Custom</option>
<option value="templateVolcano">Volcano</option>
<option value="templateHighIsland">High Island</option>
<option value="templateLowIsland">Low Island</option>
<option value="templateContinents">Continents</option>
<option value="templateArchipelago">Archipelago</option>
<option value="templateAtoll">Atoll</option>
<option value="templateMediterranean">Mediterranean</option>
<option value="templatePeninsula">Peninsula</option>
<option value="templatePangea">Pangea</option>
</select>
</div>
<div id="templateTools">
<button id="templateHill" data-tip="Hill: small blob" class="noicon">H</button>
<button id="templatePit" data-tip="Pit: round depression" class="noicon">P</button>
<button id="templateRange" data-tip="Range: elongated elevation" class="noicon">R</button>
<button id="templateTrough" data-tip="Trough: elongated depression" class="noicon">T</button>
<button id="templateStrait" data-tip="Strait: centered vertical or horizontal depression" class="noicon">S</button>
<button id="templateAdd" data-tip="Add or subtract value from all heights in range" class="noicon">+</button>
<button id="templateMultiply" data-tip="Multiply all heights in range by factor" class="noicon">*</button>
<button id="templateSmooth" data-tip="Smooth the map replacing cell heights by an average values of its neighbors" class="noicon">~</button>
</div>
<div id="templateBody" data-changed=0 class="table">
<div data-type="Hill">
<div class="elType">Hill</div>
<i class="icon-trash-empty pointer" data-tip="Remove the step" onclick="this.parentElement.remove()"></i>
<span>y:<input class="templateY" data-tip="Placement range percentage along Y axis (minY-maxY)" value="20-80"></span><span>x:<input class="templateX" daat-tip="Placement range percentage along X axis (minX-maxX)" value="15-85"></span>
<span>h:<input class="templateHeight" data-tip="Blob maximum height, use hyphen to get a random number in range" value="40-50"></span>
<span>n:<input class="templateCount" data-tip="Blobs to add, use hyphen to get a random number in range" value="1-2"></span>
</div>
</div>
<div id="templateBottom">
<button id="templateRun" data-tip="Apply current template" class="icon-play-circled2"></button>
<button id="templateUndo" data-tip="Undo the latest action" class="icon-ccw" disabled></button>
<button id="templateRedo" data-tip="Redo the action" class="icon-cw" disabled></button>
<button id="templateSave" data-tip="Download the template as a text file" class="icon-download"></button>
<button id="templateLoad" data-tip="Open previously downloaded template" class="icon-upload"></button>
<button id="templateMail" onclick="window.open('mailto:maxganiev@yandex.com?Subject=Template%20suggestion', '_blank')" data-tip="Send a template suggestion to Azgaar" class="icon-mail-alt"></button>
</div>
</div>
<div id="imageConverter" class="dialog stable" style="display: none">
<div id="convertImageButtons">
<button id="convertImageLoad" data-tip="Load image to convert" class="icon-upload"></button>
<button id="convertAutoLum" data-tip="Auto-assign colors based on liminosity (good to monochrome images)" class="icon-adjust"></button>
<button id="convertAutoHue" data-tip="Auto-assign colors based on hue (good to colored images)" class="icon-brush"></button>
<button id="convertColorsMinus" data-tip="Reduce the number of colors. Minimal number is 3" class="icon-minus-squared"></button>
<button id="convertColorsPlus" data-tip="Increase the number of colors. Maximum number is 256" class="icon-plus-squared"></button>
<input id="convertColors" value="12" style="display: none"/>
<button id="convertComplete" data-tip="Complete the assignment. All unassigned colors will be considered as ocean" class="icon-check"></button>
</div>
<div data-tip="Set opacity of the loaded image" style="padding-top: 4px"><i>Overlay opacity:</i>
<input id="convertOverlay" type="range" min=0 max=1 step=.01 value=0 style="width: 8em">
<input id="convertOverlayNumber" type="number" min=0 max=1 step=.01 value=0 style="width: 3.5em; border: 1px solid #d4d4d4">
</div>
<div data-tip="Select a color below and assign a height value for it" id="colorsSelect" style="display: none">
<i>Set height: </i><br>
<div id="colorScheme"></div>
<span id="colorsSelectValue"></span>
</div>
<div data-tip="Select a color to re-assign the height value" id="colorsAssigned" style="display: none">
<i>Assigned colors: </i><br>
</div>
<div data-tip="Select a color to assign a height value" id="colorsUnassigned" style="display: none">
<i>Unassigned colors: </i><br>
</div>
</div>
<div id="perspectivePanel" class="dialog stable" style="display: none">
<canvas id="perspective" width="480" height="150"></canvas>
</div>
<div id="biomesEditor" class="dialog stable" style="display: none">
<div id="biomesHeader">
<div style="margin-left: 12px" data-tip="Click to sort alphabetically by biome name" class="sortable alphabetically" data-sortby="name">Biome&nbsp;</div>
<div style="margin-left: 70px" data-tip="Click to sort by biome habitability" class="sortable" data-sortby="habitability">Habitability&nbsp;</div>
<div style="margin-left: 8px" data-tip="Click to sort by biome cells count" class="sortable icon-sort-number-down" data-sortby="cells">Cells&nbsp;</div>
<div style="margin-left: 24px" data-tip="Click to sort by biome area" class="sortable" data-sortby="area">Area&nbsp;</div>
<div style="margin-left: 17px" data-tip="Click to sort by biome population" class="sortable" data-sortby="population">Population&nbsp;</div>
</div>
<div id="biomesBody" class="table" data-type="absolute"></div>
<div id="biomesFooter" class="totalLine">
<div data-tip="Number of land biomes" style="margin-left: 12px">Biomes:&nbsp;<span id="biomesFooterBiomes">0</span></div>
<div data-tip="Total land cells number" style="margin-left: 12px">Cells:&nbsp;<span id="biomesFooterCells">0</span></div>
<div data-tip="Total land area" style="margin-left: 12px">Land Area:&nbsp;<span id="biomesFooterArea">0</span></div>
<div data-tip="Total population" style="margin-left: 12px">Population:&nbsp;<span id="biomesFooterPopulation">0</span></div>
</div>
<div id="biomesBottom">
<button id="biomesEditorRefresh" data-tip="Refresh the Editor" class="icon-cw"></button>
<button id="biomesPercentage" data-tip="Toggle percentage / absolut values views" class="icon-percent"></button>
<button id="biomesRestore" data-tip="Restore the defaults and re-define biomes based on current moisture and temparature" class="icon-history"></button>
<button id="biomesManually" data-tip="Manually re-assign biomes to not follow the default moisture/temperature pattern" class="icon-brush"></button>
<div id="biomesManuallyButtons" style="display: none">
<button id="biomesManuallyApply" data-tip="Apply current assignment" class="icon-check"></button>
<button id="biomesManuallyCancel" data-tip="Cancel assignment" class="icon-cancel"></button>
<label data-tip="Set the brush size" class="italic">Brush radius:
<input id="biomesManuallyBrush" oninput="tip('Brush radius: '+this.value); biomesManuallyBrushNumber.value = this.value" type="range" min="5" max="99" value="15">
<input id="biomesManuallyBrushNumber" oninput="tip('Brush radius: '+this.value); biomesManuallyBrush.value = this.value" type="number" min="5" max="99" value="15">
</label>
</div>
<button id="biomesRegenerateReliefIcons" data-tip="Regenerate relief icons based on current biomes and elevation" class="icon-tree"></button>
<button id="biomesExport" data-tip="Save biomes-related data as a text file (.csv)" class="icon-download"></button>
</div>
</div>
<div id="statesEditor" class="dialog stable" style="display: none">
<div id="statesHeader">
<div style="margin-left: 12px" data-tip="Click to sort alphabetically by state name" class="sortable alphabetically" data-sortby="name">State&nbsp;</div>
<div style="margin-left: 44px" data-tip="Click to sort alphabetically by capital name" class="sortable alphabetically" data-sortby="capital">Capital&nbsp;</div>
<div style="margin-left: 24px" data-tip="Click to sort by state dominant culture" class="sortable alphabetically" data-sortby="culture">Culture&nbsp;</div>
<div style="margin-left: 9px" data-tip="Click to sort by state type" class="sortable alphabetically hidden" data-sortby="type">Type&nbsp;</div>
<div style="margin-left: 19px" data-tip="Click to sort by state expansion value" class="sortable hidden" data-sortby="expansionism">Expan.&nbsp;</div>
<div style="margin-left: 12px" data-tip="Click to sort by state cells count" class="sortable" data-sortby="cells">Cells&nbsp;</div>
<div style="margin-left: 11px" data-tip="Click to sort by state burgs count" class="sortable" data-sortby="burgs">Burgs&nbsp;</div>
<div style="margin-left: 20px" data-tip="Click to sort by state area" class="sortable icon-sort-number-down" data-sortby="area">Area&nbsp;</div>
<div style="margin-left: 18px" data-tip="Click to sort by state population" class="sortable" data-sortby="population">Population&nbsp;</div>
</div>
<div id="statesBodySection" class="table" data-type="absolute"></div>
<div id="statesFooter" class="totalLine">
<div data-tip="States number" style="margin-left: 5px">States:&nbsp;<span id="statesFooterStates">0</span></div>
<div data-tip="Total land cells number" style="margin-left: 12px">Cells:&nbsp;<span id="statesFooterCells">0</span></div>
<div data-tip="Total burgs number" style="margin-left: 12px">Burgs:&nbsp;<span id="statesFooterBurgs">0</span></div>
<div data-tip="Total land area" style="margin-left: 12px">Land Area:&nbsp;<span id="statesFooterArea">0</span></div>
<div data-tip="Total population" style="margin-left: 12px">Population:&nbsp;<span id="statesFooterPopulation">0</span></div>
</div>
<div id="statesBottom">
<button id="statesEditorRefresh" data-tip="Refresh the Editor" class="icon-cw"></button>
<button id="statesPercentage" data-tip="Toggle percentage / absolut values views" class="icon-percent"></button>
<button id="statesRegenerate" data-tip="Show the regeneratation menu" class="icon-cog-alt"></button>
<div id="statesRegenerateButtons" style="display: none">
<button id="statesRegenerateBack" data-tip="Hide the renegotiation menu" class="icon-cog-alt"></button>
<button id="regenerateStateNames" data-tip="Regenerate state names based on assigned culture" class="icon-retweet"></button>
<button id="statesRecalculate" data-tip="Recalculate states based on current values of growth-related attributes" class="icon-resize-full-alt"></button>
<button id="statesJustify" data-tip="Justify states shape - make states less jugged" class="icon-check-empty"></button>
<button id="statesRandomize" data-tip="Randomize states Expansion value and re-calculate states" class="icon-shuffle"></button>
<span data-tip="Additional growth rate. Defines how many lands will stay neutral">
<label class="italic">Growth rate:</label>
<input id="statesNeutral" oninput="tip('Growth rate: '+this.value); statesNeutralNumber.value = this.value" type="range" min=.1 max=3 step=.05 value=1 style="width:90px">
<input id="statesNeutralNumber" oninput="tip('Growth rate: '+this.value); statesNeutral.value = this.value" type="number" min=.1 max=3 step=.05 value=1 style="width:42px">
</span>
<span data-tip="Uncheck to leave state labels as they are" >
<input id="adjustLabels" class="checkbox" type="checkbox" checked>
<label for="adjustLabels" class="checkbox-label"><i>auto-adjust labels placement</i></label>
</span>
</div>
<button id="statesManually" data-tip="Manually re-assign states" class="icon-brush"></button>
<div id="statesManuallyButtons" style="display: none">
<button id="statesManuallyApply" data-tip="Apply assignment" class="icon-check"></button>
<button id="statesManuallyCancel" data-tip="Cancel assignment" class="icon-cancel"></button>
<label data-tip="Set the brush size" class="italic">Brush size:
<input id="statesManuallyBrush" oninput="tip('Brush size: '+this.value); statesManuallyBrushNumber.value = this.value" type="range" min=5 max=99 value=15>
<input id="statesManuallyBrushNumber" oninput="tip('Brush size: '+this.value); statesManuallyBrush.value = this.value" type="number" min=5 max=99 value=15>
</label>
</div>
<button id="statesAdd" data-tip="Add a new state" class="icon-plus"></button>
<button id="statesExport" data-tip="Save state-related data as a text file (.csv)" class="icon-download"></button>
</div>
</div>
<div id="burgsEditor" class="dialog stable" style="display: none">
<div id="burgsHeader">
<div style="margin-left: 12px" data-tip="Click to sort alphabetically by burg name" class="sortable alphabetically" data-sortby="name">Burg&nbsp;</div>
<div id="burgStateHeader" style="margin-left: 35px" data-tip="Click to sort alphabetically by state name" class="sortable alphabetically" data-sortby="state">State&nbsp;</div>
<div style="margin-left: 33px" data-tip="Click to sort alphabetically by culture name" class="sortable alphabetically" data-sortby="culture">Culture&nbsp;</div>
<div style="margin-left: 3px" data-tip="Click to sort by burg population" class="sortable" data-sortby="population">Population&nbsp;</div>
<div style="margin-left: 12px" data-tip="Click to sort by burg type" class="sortable alphabetically" data-sortby="type">Type&nbsp;</div>
</div>
<div id="burgsBody" class="table"></div>
<div id="burgsFilters" data-tip="Apply a filter">
<span>State: </span>
<select id="burgsFilterState" style="width:33%"></select>
<span>Culture:</span>
<select id="burgsFilterCulture" style="width:33%"></select>
</div>
<div id="burgsFooter" class="totalLine">
<div data-tip="Burgs displayed" style="margin-left: 4px">Burgs:&nbsp;<span id="burgsFooterBurgs">0</span></div>
<div data-tip="Average population" style="margin-left: 14px">Average population:&nbsp;<span id="burgsFooterPopulation">0</span></div>
</div>
<div id="burgsBottom">
<button id="burgsEditorRefresh" data-tip="Refresh the Editor" class="icon-cw"></button>
<button id="regenerateBurgNames" data-tip="Regenerate burg names based on assigned culture" class="icon-retweet"></button>
<button id="addNewBurg" data-tip="Add a new burg. Hold Shift to add multiple" class="icon-plus"></button>
<button id="burgsExport" data-tip="Save burgs-related data as a text file (.csv)" class="icon-download"></button>
<button id="burgNamesImport" data-tip="Import burg names. Source file should be a plain list of names where each name is on a separate line" class="icon-upload"></button>
<button id="burgsRemoveAll" data-tip="Remove all burgs except of capitals. To remove a capital remove its state first" class="icon-trash"></button>
</div>
</div>
<div id="culturesEditor" class="dialog stable" style="display: none">
<div id="culturesHeader">
<div style="margin-left: 12px" data-tip="Click to sort by culture name" class="sortable alphabetically" data-sortby="name">Culture&nbsp;</div>
<div style="margin-left: 15px" data-tip="Click to sort by culture cells count" class="sortable" data-sortby="cells">Cells&nbsp;</div>
<div style="margin-left: 12px" data-tip="Click to sort by expansionism" class="sortable" data-sortby="expansionism">Expan.&nbsp;</div>
<div style="margin-left: 14px" data-tip="Click to sort by type" class="sortable alphabetically" data-sortby="type">Type&nbsp;</div>
<div style="margin-left: 31px" data-tip="Click to sort by culture area" class="sortable" data-sortby="area">Area&nbsp;</div>
<div style="margin-left: 17px" data-tip="Click to sort by culture population" class="sortable icon-sort-number-down" data-sortby="population">Population&nbsp;</div>
<div style="margin-left: 2px" data-tip="Click to sort by culture namesbase" class="sortable" data-sortby="base">Namesbase&nbsp;</div>
</div>
<div id="culturesBody" class="table" data-type="absolute"></div>
<div id="culturesFooter" class="totalLine">
<div data-tip="Cultures number" style="margin-left: 12px">Cultures:&nbsp;<span id="culturesFooterCultures">0</span></div>
<div data-tip="Total land cells number" style="margin-left: 12px">Cells:&nbsp;<span id="culturesFooterCells">0</span></div>
<div data-tip="Total land area" style="margin-left: 12px">Land Area:&nbsp;<span id="culturesFooterArea">0</span></div>
<div data-tip="Total population" style="margin-left: 12px">Population:&nbsp;<span id="culturesFooterPopulation">0</span></div>
</div>
<div id="culturesBottom">
<button id="culturesEditorRefresh" data-tip="Refresh the Editor" class="icon-cw"></button>
<button id="culturesPercentage" data-tip="Toggle percentage / absolut values display mode" class="icon-percent"></button>
<button id="culturesRecalculate" data-tip="Re-calculate cultures based on centers placement, expansion and type" class="icon-resize-full-alt"></button>
<button id="culturesManually" data-tip="Manually re-assign cultures" class="icon-brush"></button>
<div id="culturesManuallyButtons" style="display: none">
<button id="culturesManuallyApply" data-tip="Apply assignment" class="icon-check"></button>
<button id="culturesManuallyCancel" data-tip="Cancel assignment" class="icon-cancel"></button>
<label data-tip="Set the brush size" class="italic">Brush size:
<input id="culturesManuallyBrush" oninput="tip('Brush size: '+this.value); culturesManuallyBrushNumber.value = this.value" type="range" min=5 max=99 value=15>
<input id="culturesManuallyBrushNumber" oninput="tip('Brush size: '+this.value); culturesManuallyBrush.value = this.value" type="number" min=5 max=99 value=15>
</label>
</div>
<button id="culturesEditNamesBase" data-tip="Edit a database used for names generation" class="icon-list-bullet"></button>
<button id="culturesAdd" data-tip="Add a new culture" class="icon-plus"></button>
<button id="culturesExport" data-tip="Download cultures-related data" class="icon-download"></button>
</div>
</div>
<div id="namesbaseEditor" class="dialog stable textual" style="display: none">
<div id="namesbaseBasesTop">
<span>Select base: </span>
<select id="namesbaseSelect" data-tip="Select base to edit" style="width: 12em" value="0"></select>
</div>
<div id="namesbaseBody">
<span>Names data:</span><br>
<textarea id="namesbaseTextarea" data-base="0" cols=70 rows=12 data-tip="Names data: a comma separated list of source names used for names generation" placeholder="Provide a names data: a comma separated list of source names" autocorrect="off" spellcheck="false"></textarea>
<br>
<div>
<span>Name: </span>
<input id="namesbaseName" data-tip="Type to change a base name" placeholder="Base name" autocorrect="off" spellcheck="false" style="width:12em"/>
<span>Length: </span>
<input id="namesbaseMin" data-tip="Recommended minimal name length" type="number" min=2 max=100>
<input id="namesbaseMax" data-tip="Recommended maximal name length" type="number" min=2 value=10>
<span>Double: </span>
<input id="namesbaseDouble" data-tip="Populate with letters that can used twice in a row" autocorrect="off" spellcheck="false" style="width:5em">
<span>Multi: </span>
<input id="namesbaseMulti" data-tip="Multi-word names rate. 1 - allow all multi-word names, 0 - all names should spelled as a single word" type="number" min=0 max=1 step=.1 value=0 style="width:3.6em">
</div>
<fieldset>
<legend>Generated examples: </legend>
<div id="namesbaseExamples" data-tip="Examples. Click to re-generate"></div>
</fieldset>
</div>
<div id="namesbaseBottom">
<button id="namesbaseUpdateExamples" data-tip="Re-generate examples based on provided data" class="icon-arrows-cw"></button>
<button id="namesbaseAdd" data-tip="Add new namesbase" class="icon-plus"></button>
<button id="namesbaseDefault" data-tip="Restore default namesbase" class="icon-cancel"></button>
<button id="namesbaseDownload" data-tip="Download namesbase to PC" class="icon-download"></button>
<button id="namesbaseUpload" data-tip="Upload a namesbase from PC" class="icon-upload"></button>
</div>
</div>
<div id="legendEditor" class="dialog stable textual" style="display: none">
<div>
<span>Select object: </span>
<select id="legendSelect" data-tip="Select object" style="width: 120px;"></select>
<span>Object name: </span>
<input id="legendName" data-tip="Type to change object name" autocorrect="off" spellcheck="false" style="width: 120px;">
</div>
<div>
<span>Legend:</span><br>
<textarea id="legendText" cols="70" rows="7" data-tip="Legend is a free text note, enter any object description you like" placeholder="Legend is a free text note, enter any object description you like"></textarea>
</div>
<div>
<button id="legendFocus" data-tip="Focus map on selected object" class="icon-target"></button>
<button id="legendDownload" data-tip="Download legends to PC" class="icon-download"></button>
<button id="legendUpload" data-tip="Upload legends from PC" class="icon-upload"></button>
<button id="legendRemove" data-tip="Remove this note" class="icon-trash"></button>
</div>
</div>
<div id="unitsEditor" class="dialog stable" style="display: none">
<div id="unitsBody" style="margin-left:1.1em">
<div class="unitsHeader" style="margin-top:.4em">
<span class="icon-map-signs"></span>
<div>Distance:</div>
</div>
<div data-tip="Select a distance unit or provide a custom name">
<div>Distance unit: </div>
<select id="distanceUnit">
<option value="mi" selected>Mile (mi)</option>
<option value="km">Kilometer (km)</option>
<option value="lg">League (lg)</option>
<option value="vr">Versta (vr)</option>
<option value="custom_name">Custom name</option>
</select>
</div>
<div data-tip="Select how many distance units are in one pixel">
<div>1 map pixel =</div>
<input id="distanceScaleSlider" type="range" min=.1 max=10 step=.1 value=3>
<input id="distanceScale" type="number" min=.1 max=10 step=.1 step=.1 value=3 data-value=3>
<span id="distanceUnitOutput">mi</span>
</div>
<div data-tip='Area unit name, type "square" to add ² to the distance unit'>
<div>Area unit:</div>
<input id="areaUnit" type="text" value="square">
</div>
<div class="unitsHeader">
<span class="icon-signal"></span>
<div>Altitude:</div>
</div>
<div data-tip="Select an altitude unit or provide a custom name">
<div>Height unit:</div>
<select id="heightUnit">
<option value="ft" selected>Feet (ft)</option>
<option value="m">Meters (m)</option>
<option value="f">Fathoms (f)</option>
<option value="custom_name">Custom name</option>
</select>
</div>
<div data-tip="Set height exponent, i.e. a value showing altitude change sharpness">
<div>Exponent:</div>
<input id="heightExponentSlider" type="range" min=1.5 max=2.1 value=1.8 step=.01>
<input id="heightExponent" type="number" min=1.5 max=2.1 value=1.8 step=.01>
</div>
<div class="unitsHeader" data-tip="Select Temperature scale">
<span class="icon-asterisk"></span>
<div>Temparature:</div>
</div>
<div>
<div>Temperature scale: </div>
<select id="temperatureScale">
<option value="°C" selected>degree Celsius (°C)</option>
<option value="°F">degree Fahrenheit (°F)</option>
<option value="K">Kelvin (K)</option>
<option value="°R">degree Rankine (°R)</option>
<option value="°De">degree Delisle (°De)</option>
<option value="°N">degree Newton (°N)</option>
<option value="°Ré">degree Réaumur (°Ré)</option>
<option value="°Rø">degree Rømer (°Rø)</option>
</select>
</div>
<div class="unitsHeader">
<span class="icon-minus"></span>
<div>Scale bar:</div>
</div>
<div data-tip="Set scale bar size">
<div>Bar size:</div>
<input id="barSizeSlider" type="range" min=.5 max=5 value=2 step=.1>
<input id="barSize" type="number" min=.5 max=5 value=2 step=.1>
</div>
<div data-tip="Type scale bar label, leave blank to hide label">
<div>Bar label:</div>
<input id="barLabel" type="text" placeholder="hidden" value="">
</div>
<div data-tip="Set background for Scale bar">
<div>Bar background:</div>
<input id="barBackOpacity" type="range" min=0 max=1 value=.2 step=.01>
<input id="barBackColor" type="color" value="#ffffff">
</div>
<div data-tip="Set position of the Scale bar bottom right corner in percents">
<div>Bar position:</div>
<i>x:</i><input id="barPosX" type="number" min=0 max=100 step=.1 value=99>
<i>y:</i><input id="barPosY" type="number" min=0 max=100 step=.1 value=99>
</div>
<div class="unitsHeader">
<span class="icon-male"></span>
<div>Population:</div>
</div>
<div data-tip="Set how many people are in one population point">
<div>1 population point =</div>
<input id="populationRateSlider" type="range" min=10 max=9990 step=10 value=1000>
<input id="populationRate" type="number" min=10 max=9990 step=10 value=1000 data-value=1000>
</div>
<div data-tip="Set ubranization rate: burgs population relative to all population">
<div>Urbanization rate:</div>
<input id="urbanizationSlider" type="range" min=.01 max=5 step=.01 value=1>
<input id="urbanization" type="number" min=.01 max=5 step=.01 value=1 data-value=1>
</div>
</div>
<div id="unitsBottom">
<button id="addLinearRuler" data-tip="Click to place a linear measurer (ruler)" class="icon-ruler"></button>
<button id="addOpisometer" data-tip="Drag to measure a curve length (opisometer)" class="icon-curve"></button>
<button id="addPlanimeter" data-tip="Drag to measure a polygon area (planimeter)" class="icon-area"></button>
<button id="removeRulers" data-tip="Remove all rulers from the map. Click on ruler label to remove a ruler separately" class="icon-trash"></button>
</div>
</div>
<div id="alert" style="display: none" class="dialog">
<p id="alertMessage">Warning!</p>
</div>
<div id="alert2" style="display: none">
<p id="alertMessage2">Warning!</p>
</div>
</div>
<div id="map-dragged" class="shadowed" style="display: none">
<p>Drop a .map file to open</p>
</div>
<div id="legend">
<div id="legendHeader"></div>
<div id="legendBody"></div>
</div>
<div id="tooltip" style="opacity:0" data-main="Сlick the arrow button for options. Zoom in to see the map in details">Сlick the arrow button for options. Zoom in to see the map in details</div>
<div id="fileInputs" class="hidden">
<input type="file" accept=".map" id="mapToLoad">
<input type="file" accept=".txt,.csv" id="burgsListToLoad">
<input type="file" accept=".txt" id="legendsToLoad">
<input type="file" accept="image/*" id="imageToLoad">
<input type="file" accept=".txt" id="templateToLoad">
<input type="file" accept=".txt" id="namesbaseToLoad">
</div>
<script src="libs/jquery-3.1.1.min.js"></script>
<script src="libs/d3.min.js"></script>
<script src="libs/priority-queue.min.js"></script>
<script src="libs/delaunator.min.js"></script>
<script src="modules/utils.js"></script>
<script src="modules/voronoi.js"></script>
<script src="modules/heightmap-generator.js"></script>
<script src="modules/ocean-layers.js"></script>
<script src="modules/river-generator.js"></script>
<script src="modules/names-generator.js"></script>
<script src="modules/cultures-generator.js"></script>
<script src="modules/burgs-and-states.js"></script>
<script src="modules/routes-generator.js"></script>
<script src="libs/polylabel.min.js"></script>
<script src="libs/jquery-ui.min.js"></script>
<script src="libs/seedrandom.min.js"></script>
<script defer src="modules/ui/general.js"></script>
<script defer src="modules/ui/options.js"></script>
<script defer src="modules/ui/measurers.js"></script>
<script defer src="main.js?version=0.8b"></script>
<script defer src="modules/relief-icons.js"></script>
<script defer src="modules/ui/layers.js"></script>
<script defer src="modules/ui/tools.js"></script>
<script defer src="modules/ui/world-configurator.js"></script>
<script defer src="modules/ui/heightmap-editor.js"></script>
<script defer src="modules/ui/states-editor.js"></script>
<script defer src="modules/ui/burgs-editor.js"></script>
<script defer src="modules/ui/biomes-editor.js"></script>
<script defer src="modules/ui/cultures-editor.js"></script>
<script defer src="modules/ui/namesbase-editor.js"></script>
<script defer src="modules/ui/routes-editor.js"></script>
<script defer src="modules/ui/labels-editor.js"></script>
<script defer src="modules/ui/rivers-editor.js"></script>
<script defer src="modules/ui/relief-editor.js"></script>
<script defer src="modules/ui/markers-editor.js"></script>
<script defer src="modules/ui/burg-editor.js"></script>
<script defer src="modules/ui/burgs-editor.js"></script>
<script defer src="modules/ui/units-editor.js"></script>
<script defer src="modules/ui/legends-editor.js"></script>
<script defer src="modules/ui/editors.js"></script>
<script defer src="modules/save-and-load.js"></script>
<script defer src="libs/quantize.min.js"></script>
<script defer src="libs/jquery.ui.touch-punch.min.js"></script>
</body>