├── .gitignore ├── img ├── corona.png ├── earth_map.jpg ├── iss_100x100.png ├── wrld-small.jpg ├── star_particle.png ├── wrld-small-merc.jpg ├── wrld-small-mill.jpg ├── wrld-small-moll.jpg ├── earth_clouds_1024.png ├── satellite_100x100.png └── fav.svg ├── js ├── proj4js-combined.js ├── data │ ├── imgmap.js │ ├── gdymaxion.js │ ├── continents.js │ ├── countries_info.js │ ├── continents_tile.js │ └── gbutterfly.js ├── 3rdparty │ ├── three.js │ │ └── Detector.js │ └── svgpath │ │ └── path_parse.js └── alg │ └── bfs.js ├── css ├── carta.css ├── carta.dark.css └── style.css ├── sitemap.txt ├── sitemap1.txt ├── nv ├── noncart.html ├── cities.html ├── metro-novosib.html ├── merc.html ├── imgviewer.html ├── metro-tbilisi.html ├── metro-kiev.html ├── soccerf.html ├── usemap.html ├── atlas.html └── countries.html ├── svg ├── panmap.html ├── imgviewer.html ├── us.html ├── usemap.html ├── clock.html ├── countries.html ├── rollerball.html ├── atlas.html ├── metro-novosib.html └── metro-kiev.html └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .* 2 | /nbproject 3 | rss*xml -------------------------------------------------------------------------------- /img/corona.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egaxegax/dbcartajs/HEAD/img/corona.png -------------------------------------------------------------------------------- /img/earth_map.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egaxegax/dbcartajs/HEAD/img/earth_map.jpg -------------------------------------------------------------------------------- /img/iss_100x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egaxegax/dbcartajs/HEAD/img/iss_100x100.png -------------------------------------------------------------------------------- /img/wrld-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egaxegax/dbcartajs/HEAD/img/wrld-small.jpg -------------------------------------------------------------------------------- /img/star_particle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egaxegax/dbcartajs/HEAD/img/star_particle.png -------------------------------------------------------------------------------- /js/proj4js-combined.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egaxegax/dbcartajs/HEAD/js/proj4js-combined.js -------------------------------------------------------------------------------- /img/wrld-small-merc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egaxegax/dbcartajs/HEAD/img/wrld-small-merc.jpg -------------------------------------------------------------------------------- /img/wrld-small-mill.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egaxegax/dbcartajs/HEAD/img/wrld-small-mill.jpg -------------------------------------------------------------------------------- /img/wrld-small-moll.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egaxegax/dbcartajs/HEAD/img/wrld-small-moll.jpg -------------------------------------------------------------------------------- /img/earth_clouds_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egaxegax/dbcartajs/HEAD/img/earth_clouds_1024.png -------------------------------------------------------------------------------- /img/satellite_100x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egaxegax/dbcartajs/HEAD/img/satellite_100x100.png -------------------------------------------------------------------------------- /js/data/imgmap.js: -------------------------------------------------------------------------------- 1 | // 2 | // Image data urls. 3 | // 4 | var IMGMAP={ 5 | 'wrld_small': '../img/wrld-small.jpg', 6 | 'wrld_small_merc': '../img/wrld-small-merc.jpg', 7 | 'wrld_small_mill': '../img/wrld-small-mill.jpg', 8 | 'wrld_small_moll': '../img/wrld-small-moll.jpg' 9 | }; 10 | -------------------------------------------------------------------------------- /css/carta.css: -------------------------------------------------------------------------------- 1 | /* light */ 2 | body { background:#fafafa; color:#333; } 3 | #root { background:#f0f0f0; } 4 | #header { background:#d2e0f0; } 5 | #header svg g { fill:#777; stroke:#777; } 6 | #header svg g.active { fill:#3c677b; stroke:#3c677b; } 7 | #header .yin { fill:#fff; stroke:#fff; } 8 | .dis { color:#fff; } 9 | .msgtext { background:#fff; } 10 | .nostripe{ background:#f0f0f0; } 11 | -------------------------------------------------------------------------------- /css/carta.dark.css: -------------------------------------------------------------------------------- 1 | /* light */ 2 | body { background:rgb(40,43,47); color:#dedede; } 3 | a, a:active, a:focus { color:#f4c430; } 4 | b,i,em { color: #aaa; } 5 | b em { color: #f4c430; } 6 | #root { background:rgb(43,45,49); } 7 | #header { background:rgb(52,55,60); } 8 | #header svg g { fill:#dedede; stroke:#dedede; } 9 | #header svg g.active { fill:#f4c430; stroke:#f4c430; } 10 | #header .yin { fill:#777; stroke:#777; } 11 | .dis { color:rgb(58,61,66); } 12 | .msgtext { background:rgb(58,61,66); } 13 | .light { color:#9ac495; } 14 | -------------------------------------------------------------------------------- /css/style.css: -------------------------------------------------------------------------------- 1 | html,body,h1 { font: 16px arial; margin:0; } 2 | h1 { font-size: 112.5%; } 3 | a,a:active,a:focus { color:#3c677b; outline:none; text-decoration-thickness: 0.4px; } 4 | b,i,em { color:#777; } 5 | input, select, button { border-radius:4px; border:1px solid #afafaf; margin:1px 0 0 0;} 6 | svg { cursor:pointer; -webkit-tap-highlight-color: transparent; } 7 | #header a { display:inline-block; } 8 | /**/ 9 | @media (max-width:800px){ .mh_f { max-height:75px; position:fixed; width:100%; }} 10 | @media (min-width:800px){ .mh_f { max-width:200px; position:fixed; height:100%; }} -------------------------------------------------------------------------------- /sitemap.txt: -------------------------------------------------------------------------------- 1 | https://egax.ru/dbcartajs/nv/atlas.html 2 | https://egax.ru/dbcartajs/nv/cities.html 3 | https://egax.ru/dbcartajs/nv/countries.html 4 | https://egax.ru/dbcartajs/nv/imgviewer.html 5 | https://egax.ru/dbcartajs/index.html 6 | https://egax.ru/dbcartajs/nv/map3d.html 7 | https://egax.ru/dbcartajs/nv/merc.html 8 | https://egax.ru/dbcartajs/nv/metro-kiev.html 9 | https://egax.ru/dbcartajs/nv/metro-novosib.html 10 | https://egax.ru/dbcartajs/nv/metro-tbilisi.html 11 | https://egax.ru/dbcartajs/nv/mosmetro.html 12 | https://egax.ru/dbcartajs/nv/mosrails.html 13 | https://egax.ru/dbcartajs/nv/noncart.html 14 | https://egax.ru/dbcartajs/nv/russ.html 15 | https://egax.ru/dbcartajs/nv/sky3d.html 16 | https://egax.ru/dbcartajs/nv/soccerf.html 17 | https://egax.ru/dbcartajs/nv/starry.html 18 | https://egax.ru/dbcartajs/nv/usemap.html 19 | https://egax.ru/dbcartajs/svg/atlas.html 20 | https://egax.ru/dbcartajs/svg/clock.html 21 | https://egax.ru/dbcartajs/svg/countries.html 22 | https://egax.ru/dbcartajs/svg/imgviewer.html 23 | https://egax.ru/dbcartajs/svg/metro-kiev.html 24 | https://egax.ru/dbcartajs/svg/metro-novosib.html 25 | https://egax.ru/dbcartajs/svg/metrospb.html 26 | https://egax.ru/dbcartajs/svg/mosmetro.html 27 | https://egax.ru/dbcartajs/svg/mosmetro2.html 28 | https://egax.ru/dbcartajs/svg/mosrails.html 29 | https://egax.ru/dbcartajs/svg/panzoom.html 30 | https://egax.ru/dbcartajs/svg/rollerball.html 31 | https://egax.ru/dbcartajs/svg/us.html 32 | https://egax.ru/dbcartajs/svg/usemap.html -------------------------------------------------------------------------------- /sitemap1.txt: -------------------------------------------------------------------------------- 1 | https://egaxegax.github.io/dbcartajs/nv/atlas.html 2 | https://egaxegax.github.io/dbcartajs/nv/cities.html 3 | https://egaxegax.github.io/dbcartajs/nv/countries.html 4 | https://egaxegax.github.io/dbcartajs/nv/imgviewer.html 5 | https://egaxegax.github.io/dbcartajs/index.html 6 | https://egaxegax.github.io/dbcartajs/nv/map3d.html 7 | https://egaxegax.github.io/dbcartajs/nv/merc.html 8 | https://egaxegax.github.io/dbcartajs/nv/metro-kiev.html 9 | https://egaxegax.github.io/dbcartajs/nv/metro-novosib.html 10 | https://egaxegax.github.io/dbcartajs/nv/metro-tbilisi.html 11 | https://egaxegax.github.io/dbcartajs/nv/mosmetro.html 12 | https://egaxegax.github.io/dbcartajs/nv/mosrails.html 13 | https://egaxegax.github.io/dbcartajs/nv/noncart.html 14 | https://egaxegax.github.io/dbcartajs/nv/russ.html 15 | https://egaxegax.github.io/dbcartajs/nv/sky3d.html 16 | https://egaxegax.github.io/dbcartajs/nv/soccerf.html 17 | https://egaxegax.github.io/dbcartajs/nv/starry.html 18 | https://egaxegax.github.io/dbcartajs/nv/usemap.html 19 | https://egaxegax.github.io/dbcartajs/svg/atlas.html 20 | https://egaxegax.github.io/dbcartajs/svg/clock.html 21 | https://egaxegax.github.io/dbcartajs/svg/countries.html 22 | https://egaxegax.github.io/dbcartajs/svg/imgviewer.html 23 | https://egaxegax.github.io/dbcartajs/svg/metro-kiev.html 24 | https://egaxegax.github.io/dbcartajs/svg/metro-novosib.html 25 | https://egaxegax.github.io/dbcartajs/svg/metrospb.html 26 | https://egaxegax.github.io/dbcartajs/svg/mosmetro.html 27 | https://egaxegax.github.io/dbcartajs/svg/mosmetro2.html 28 | https://egaxegax.github.io/dbcartajs/svg/mosrails.html 29 | https://egaxegax.github.io/dbcartajs/svg/panzoom.html 30 | https://egaxegax.github.io/dbcartajs/svg/rollerball.html 31 | https://egaxegax.github.io/dbcartajs/svg/us.html 32 | https://egaxegax.github.io/dbcartajs/svg/usemap.html -------------------------------------------------------------------------------- /img/fav.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /js/3rdparty/three.js/Detector.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author alteredq / http://alteredqualia.com/ 3 | * @author mr.doob / http://mrdoob.com/ 4 | */ 5 | 6 | var Detector = { 7 | 8 | canvas: !! window.CanvasRenderingContext2D, 9 | webgl: ( function () { try { var canvas = document.createElement( 'canvas' ); return !! window.WebGLRenderingContext && ( canvas.getContext( 'webgl' ) || canvas.getContext( 'experimental-webgl' ) ); } catch( e ) { return false; } } )(), 10 | workers: !! window.Worker, 11 | fileapi: window.File && window.FileReader && window.FileList && window.Blob, 12 | 13 | getWebGLErrorMessage: function () { 14 | 15 | var element = document.createElement( 'div' ); 16 | element.id = 'webgl-error-message'; 17 | element.style.fontFamily = 'monospace'; 18 | element.style.fontSize = '13px'; 19 | element.style.fontWeight = 'normal'; 20 | element.style.textAlign = 'center'; 21 | element.style.background = '#fff'; 22 | element.style.color = '#000'; 23 | element.style.padding = '1.5em'; 24 | element.style.width = '400px'; 25 | element.style.margin = '5em auto 0'; 26 | 27 | if ( ! this.webgl ) { 28 | 29 | element.innerHTML = window.WebGLRenderingContext ? [ 30 | 'Your graphics card does not seem to support WebGL.
', 31 | 'Find out how to get it here.' 32 | ].join( '\n' ) : [ 33 | 'Your browser does not seem to support WebGL.
', 34 | 'Find out how to get it here.' 35 | ].join( '\n' ); 36 | 37 | } 38 | 39 | return element; 40 | 41 | }, 42 | 43 | addGetWebGLMessage: function ( parameters ) { 44 | 45 | var parent, id, element; 46 | 47 | parameters = parameters || {}; 48 | 49 | parent = parameters.parent !== undefined ? parameters.parent : document.body; 50 | id = parameters.id !== undefined ? parameters.id : 'oldie'; 51 | 52 | element = Detector.getWebGLErrorMessage(); 53 | element.id = id; 54 | 55 | parent.appendChild( element ); 56 | 57 | } 58 | 59 | }; -------------------------------------------------------------------------------- /nv/noncart.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Non-Cartographic / Canvas векторная карта 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 49 | 50 | -------------------------------------------------------------------------------- /js/data/gdymaxion.js: -------------------------------------------------------------------------------- 1 | // 2 | // from dymaxion.obj 3 | // 4 | // var vrt=[], faces=[],vos=[]; 5 | // for(var i in geometry.vertices) 6 | // vrt.push([geometry.vertices[i].x, geometry.vertices[i].y, geometry.vertices[i].z]); 7 | // for(var i in geometry.faces) 8 | // faces.push([geometry.faces[i].a, geometry.faces[i].b, geometry.faces[i].c]); 9 | // for(var i in vertexOnSphere) 10 | // vos.push([vertexOnSphere[i].x, vertexOnSphere[i].y, vertexOnSphere[i].z]); 11 | // console.log('ratio=', ratio); 12 | // var ss=''; 13 | // for(var i in vos) //vrt, faces 14 | // ss += vos[i].join()+ '],\n['; 15 | // console.log(ss); 16 | // 17 | var GDYMAXION={ 18 | ratio: 0.48031410493777466, 19 | vertices: [ 20 | [0.2880415532980212,0.2776343091539456,0], 21 | [0.10688784956450333,-0.29498460376448765,0], 22 | [-0.07322541174955328,0.28496656585289953,0], 23 | [0.46633756218504974,-0.29498460376448765,0], 24 | [-0.07130753626455008,-0.8829413250955672,0], 25 | [0.2876068616875693,-0.8829413250955672,0], 26 | [0.1973318789947354,-0.5801546378910719,0], 27 | [-0.258389950573954,-0.29498460376448765,0], 28 | [-0.4402641154025727,0.3030049531708116,0], 29 | [-0.25251557644937456,0.8829413250955672,0], 30 | [0.11087654758263166,0.8563424725902794,0], 31 | [0.6445128234025084,0.2766169677855234,0], 32 | [0.6465393717901244,-0.8829413250955672,0], 33 | [-0.6287069534557983,-0.29498460376448765,0], 34 | [-0.8179245890554312,-0.8829413250955672,0], 35 | [-1,-0.2836532706318457,0], 36 | [-0.4457299599117738,-0.8829413250955672,0], 37 | [0.8237728011849371,-0.29498460376448765,0], 38 | [0.7330349524254182,0.5600519724510532,0], 39 | [1,0.27824841339815665,0], 40 | [-0.8106676541142755,0.3030049531708116,0], 41 | [-0.619711252072835,0.8829413250955672,0], 42 | [0.46638787371403734,0.4657055836551748,0], 43 | [0.46638787371403734,0.8429949538365823,0], 44 | [0.821822726321382,0.8432058209565826,0], 45 | [-1,0.3030049531708116,0], 46 | [0.2880415532980212,0.660987033891148,0]], 47 | faces: [ 48 | [2,1,0], 49 | [0,1,3], 50 | [5,1,4], 51 | [6,1,5], 52 | [5,1,6], 53 | [3,1,5], 54 | [1,2,7], 55 | [7,2,8], 56 | [8,2,9], 57 | [2,0,10], 58 | [0,3,11], 59 | [3,5,12], 60 | [15,14,13], 61 | [16,7,13], 62 | [13,7,8], 63 | [3,17,11], 64 | [11,19,18], 65 | [15,13,20], 66 | [13,8,20], 67 | [8,9,21], 68 | [11,23,22], 69 | [24,23,18], 70 | [0,11,22], 71 | [23,11,18], 72 | [15,20,25], 73 | [0,26,10]], 74 | vertexOnSphere: [ 75 | [-0.525731,-0.850651,-1.618034], 76 | [0,-1.902113,0], 77 | [-1.701302,-0.850651,0], 78 | [1.376382,-0.850651,-1], 79 | [-0.525731,-0.850651,1.618034], 80 | [1.376382,-0.850651,1], 81 | [0.688191,-1.376382,0.5], 82 | [-0.525731,-0.850651,1.618034], 83 | [-1.376382,0.850651,1], 84 | [-1.376382,0.850651,-1], 85 | [-1.376382,0.850651,-1], 86 | [0.525731,0.850651,-1.618034], 87 | [1.701302,0.850651,0], 88 | [0.525731,0.850651,1.618034], 89 | [1.376382,-0.850651,1], 90 | [1.701302,0.850651,0], 91 | [1.376382,-0.850651,1], 92 | [1.701302,0.850651,0], 93 | [0.262866,1.376382,-0.809017], 94 | [1.701302,0.850651,0], 95 | [0,1.902113,0], 96 | [0,1.902113,0], 97 | [-0.458794,0.28355,-1.412023], 98 | [-1.376382,0.850651,-1], 99 | [0,1.902113,0], 100 | [0.262866,1.376382,-0.809017], 101 | [-0.458794,0.28355,-1.412023]] 102 | }; -------------------------------------------------------------------------------- /js/alg/bfs.js: -------------------------------------------------------------------------------- 1 | // BFS breadth first search algorithm 2 | // https://question-it.com/questions/158570/nahozhdenie-kratchajshego-puti-v-dvumernom-massive-javascript 3 | // 4 | // var m = [ 5 | // [ 'A', '0', [[8,1]], 'B', 'A' ], 6 | // [ 'A', '1', [[9,1]], 'B', 'B' ], 7 | // [ 'A', '2', [[2,1]], 'A', 'A' ], 8 | // [ 'B', '0', [[3,1]], 'A', 'A' ], 9 | // [ 'B', '1', [[5,7]], 'A', 'A' ], 10 | // [ 'B', '2', [[4,1]], 'A', 'A' ]]; 11 | // 12 | // var inst = [['2,1'], ['3,1'], ['5,7']]; 13 | // 14 | // BFS(m, inst, makeind(m, 'A_0'), makeind(m, 'B_2')) // interchanges 15 | 16 | function makeid(a){ return a[0] + '_' + a[1]; } 17 | 18 | function maketip(a){ return a[0].split('_')[0]; } 19 | 20 | function maketipn(a){ return a[0].split('_')[0].slice(1); } 21 | 22 | function makeind(m, id){ return m.indexOf(m.filter(function(item){ return makeid(item) == id; }).pop()); } 23 | 24 | function makecrds(m){ return m.map(function(a){ return a[2].map(function(b){ return String(b); }); }); } 25 | 26 | function inarray(m, a){ return m.filter(function(b){ return String(a) == String(b); }).length; } 27 | 28 | function findchilds(m, inst, current, stops){ 29 | var its = inst.filter(function(a){ return a.indexOf(String(m[current][2]))>-1; }); 30 | var stIts = m.filter(function(a){ return makeid(a) != makeid(m[current]) && its.filter(function(b){ return b.indexOf(String(a[2]))>-1; }).length }); 31 | var stItsi = stIts.map(function(a){ return makeind(m, makeid(a)); }); 32 | var avails = [ current - 1, current + 1 ].concat(stItsi); 33 | var valids = avails.filter(function(cell){ return (cell >= 0 && cell < m.length); }); 34 | var vertexes = valids.filter(function(cell){ 35 | // console.log(current, cell, makeid(m[current]), makeid(m[cell]), String(m[cell][2]), String(m[current][2]), 36 | // stops.indexOf(cell) == -1, maketip(m[cell]) == maketip(m[current]), String(m[cell][2]) == String(m[current][2]), 37 | // its.filter(function(a){ return a.indexOf(String(m[cell][2]))>-1 && a.indexOf(String(m[current][2]))>-1; }).length, its); 38 | return stops.indexOf(cell) == -1 && 39 | (maketip(m[cell]) == maketip(m[current])) || 40 | String(m[cell][2]) == String(m[current][2]) || 41 | (its.filter(function(a){ return a.indexOf(String(m[cell][2]))>-1 && a.indexOf(String(m[current][2]))>-1; }).length) 42 | } 43 | ); 44 | return vertexes; 45 | } 46 | function buildpath(m, tree, to){ 47 | var path = [m[to]]; 48 | var parent = tree[to]; 49 | while(parent != undefined){ 50 | path.push(m[parent]); 51 | parent = tree[parent]; 52 | } 53 | return path.reverse(); 54 | } 55 | // m - list of vertexes (stations) 56 | // inst - list of interchange stations 57 | // from - start index of m 58 | // to - destination index of m 59 | // stops - list if vertexes where search stop (stations under constructed) 60 | function BFS(m, inst, from, to, stops){ 61 | var tree = []; 62 | var visited = []; 63 | var q = []; 64 | q.push(from); 65 | while(q.length){ 66 | var current = q.shift(); 67 | visited.push(current.toString()); 68 | if(current.toString() == to.toString()) return buildpath(m, tree, to); 69 | var childs = findchilds(m, inst, current, stops||[]); 70 | for(var c in childs){ 71 | if(visited.indexOf(childs[c].toString()) == -1){ 72 | tree[childs[c]] = current; 73 | if(childs[c] == to) q.unshift(childs[c]); 74 | else q.push(childs[c]); 75 | } 76 | } 77 | } 78 | return []; 79 | } 80 | -------------------------------------------------------------------------------- /svg/panmap.html: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | Ресайзинг SVG-карты / SVG векторная карта 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
Загрузка карты...
22 | 27 | 28 | 85 | 86 | -------------------------------------------------------------------------------- /svg/imgviewer.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | Просмотровщик картинок / SVG векторная карта 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 118 | 119 | 120 | -------------------------------------------------------------------------------- /svg/us.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | Население США по штатам / SVG векторная карта 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 117 | 118 | 119 | -------------------------------------------------------------------------------- /svg/usemap.html: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | Население мира / SVG векторная карта 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /svg/clock.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | Местное время / SVG векторная карта 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /nv/cities.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | Города мира / Canvas векторная карта 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 131 | 132 | 133 | -------------------------------------------------------------------------------- /nv/metro-novosib.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | Карта метро Новосибирска / Canvas векторная карта 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 25 | 26 |
23 |
24 |
27 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /nv/merc.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | Маршруты / Canvas векторная карта 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 134 | 135 | -------------------------------------------------------------------------------- /svg/countries.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | Страны мира / SVG векторная карта 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 133 | 134 | -------------------------------------------------------------------------------- /svg/rollerball.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | Анимация / SVG векторная карта 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /nv/imgviewer.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | Просмотровщик картинок / Canvas векторная карта 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 161 | 162 | 163 | -------------------------------------------------------------------------------- /nv/metro-tbilisi.html: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | Карта метро Тбилиси в 2014 году / Canvas векторная карта 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 26 | 27 |
24 |
25 |
28 | 136 | 137 | 138 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## dbcartajs 2 | 3 | Просмотр векторных карт и изображений с навигацией (Canvas, SVG) 4 | *Pan, zoom vector map and images (Canvas, SVG)* 5 | 6 | #### Примеры (demos) 7 | 8 | Интерактивные схемы метро Москвы со строящимися линиями и станциями и Петербурга в 2025 году, 9 | пригородного ж/д транспорта Москвы и МО в 2015 году. 10 | По выбранным станциям рассчитывается кратчайший путь по алгоритму BFS. 11 | Выбор станций возможен по клику, сброс маршрута - по двойному клику. 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |
Схема метро Москвы
Moscow Metro
Canvas SVG
Схема ж/д Москвы и МО
Moscow Railroad
Canvas SVG
Схема метро Петербурга
St.Petersburg Metro
- SVG
Схема метро Новосибирска
Novosib Metro
Canvas SVG
Схема метро Киева
Kiev Metro
Canvas SVG
Схема метро Тбилиси
Tbilisi Metro
Canvas -
45 | 46 | Масштабирование изображений, использование цветов в *canvas*, градиента, анимации в *svg*. 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 |
Просмотровщик картинок
Image Viewer
Canvas SVG
Масштабирование SVG-изображения
Pan Zoom
- SVG
Ресайзинг SVG-карты
Pan Map
- SVG
Анимация движения
Roller Ball
- SVG
Настенные часы
Wall Clock
- SVG
Футбольные схемы
Soccer Schemes
Canvas -
80 | 81 | Интерактивные карты мира со списками городов и стран в различных проекциях. 82 | Идея и стиль позаимствованы с примеров highmaps 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 |
Атлас мира
Atlas
Canvas SVG
Города мира
Cities
Canvas -
Города России без расстояний
Russian Cities
Canvas -
Страны мира
Countries
Canvas -
Население мира
Population
Canvas SVG
Население США
Population USA
- SVG
Маршруты на карте
Routes
Canvas -
121 | 122 | Отрисовка картинки в канвасе 3d с пересчетом проекции отображения через шейдеры WebGL на основе примеров с сайта Spinnable World Maps. 123 | Звездное небо в канвасе 2d и 3d с использованием скриптов three.js. 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 |
Атлас 3D
Atlas 3D
Canvas
Звездное небо
Starry Sky
Canvas
Звездное небо 3D
Sky 3D
Canvas
139 | -------------------------------------------------------------------------------- /nv/metro-kiev.html: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | Карта метро Киева в 2023 году / Canvas векторная карта 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 26 | 27 |
24 |
25 |
28 | 141 | 142 | 143 | -------------------------------------------------------------------------------- /nv/soccerf.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Футбольные схемы / Canvas векторная карта 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 27 | 284 | 285 | 286 | -------------------------------------------------------------------------------- /js/3rdparty/svgpath/path_parse.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | 4 | var paramCounts = { a: 7, c: 6, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, z: 0 }; 5 | 6 | var SPECIAL_SPACES = [ 7 | 0x1680, 0x180E, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 8 | 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF 9 | ]; 10 | 11 | function isSpace(ch) { 12 | return (ch === 0x0A) || (ch === 0x0D) || (ch === 0x2028) || (ch === 0x2029) || // Line terminators 13 | // White spaces 14 | (ch === 0x20) || (ch === 0x09) || (ch === 0x0B) || (ch === 0x0C) || (ch === 0xA0) || 15 | (ch >= 0x1680 && SPECIAL_SPACES.indexOf(ch) >= 0); 16 | } 17 | 18 | function isCommand(code) { 19 | /*eslint-disable no-bitwise*/ 20 | switch (code | 0x20) { 21 | case 0x6D/* m */: 22 | case 0x7A/* z */: 23 | case 0x6C/* l */: 24 | case 0x68/* h */: 25 | case 0x76/* v */: 26 | case 0x63/* c */: 27 | case 0x73/* s */: 28 | case 0x71/* q */: 29 | case 0x74/* t */: 30 | case 0x61/* a */: 31 | case 0x72/* r */: 32 | return true; 33 | } 34 | return false; 35 | } 36 | 37 | function isArc(code) { 38 | return (code | 0x20) === 0x61; 39 | } 40 | 41 | function isDigit(code) { 42 | return (code >= 48 && code <= 57); // 0..9 43 | } 44 | 45 | function isDigitStart(code) { 46 | return (code >= 48 && code <= 57) || /* 0..9 */ 47 | code === 0x2B || /* + */ 48 | code === 0x2D || /* - */ 49 | code === 0x2E; /* . */ 50 | } 51 | 52 | 53 | function State(path) { 54 | this.index = 0; 55 | this.path = path; 56 | this.max = path.length; 57 | this.result = []; 58 | this.param = 0.0; 59 | this.err = ''; 60 | this.segmentStart = 0; 61 | this.data = []; 62 | } 63 | 64 | function skipSpaces(state) { 65 | while (state.index < state.max && isSpace(state.path.charCodeAt(state.index))) { 66 | state.index++; 67 | } 68 | } 69 | 70 | 71 | function scanFlag(state) { 72 | var ch = state.path.charCodeAt(state.index); 73 | 74 | if (ch === 0x30/* 0 */) { 75 | state.param = 0; 76 | state.index++; 77 | return; 78 | } 79 | 80 | if (ch === 0x31/* 1 */) { 81 | state.param = 1; 82 | state.index++; 83 | return; 84 | } 85 | 86 | state.err = 'SvgPath: arc flag can be 0 or 1 only (at pos ' + state.index + ')'; 87 | } 88 | 89 | 90 | function scanParam(state) { 91 | var start = state.index, 92 | index = start, 93 | max = state.max, 94 | zeroFirst = false, 95 | hasCeiling = false, 96 | hasDecimal = false, 97 | hasDot = false, 98 | ch; 99 | 100 | if (index >= max) { 101 | state.err = 'SvgPath: missed param (at pos ' + index + ')'; 102 | return; 103 | } 104 | ch = state.path.charCodeAt(index); 105 | 106 | if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { 107 | index++; 108 | ch = (index < max) ? state.path.charCodeAt(index) : 0; 109 | } 110 | 111 | // This logic is shamelessly borrowed from Esprima 112 | // https://github.com/ariya/esprimas 113 | // 114 | if (!isDigit(ch) && ch !== 0x2E/* . */) { 115 | state.err = 'SvgPath: param should start with 0..9 or `.` (at pos ' + index + ')'; 116 | return; 117 | } 118 | 119 | if (ch !== 0x2E/* . */) { 120 | zeroFirst = (ch === 0x30/* 0 */); 121 | index++; 122 | 123 | ch = (index < max) ? state.path.charCodeAt(index) : 0; 124 | 125 | if (zeroFirst && index < max) { 126 | // decimal number starts with '0' such as '09' is illegal. 127 | if (ch && isDigit(ch)) { 128 | state.err = 'SvgPath: numbers started with `0` such as `09` are illegal (at pos ' + start + ')'; 129 | return; 130 | } 131 | } 132 | 133 | while (index < max && isDigit(state.path.charCodeAt(index))) { 134 | index++; 135 | hasCeiling = true; 136 | } 137 | ch = (index < max) ? state.path.charCodeAt(index) : 0; 138 | } 139 | 140 | if (ch === 0x2E/* . */) { 141 | hasDot = true; 142 | index++; 143 | while (isDigit(state.path.charCodeAt(index))) { 144 | index++; 145 | hasDecimal = true; 146 | } 147 | ch = (index < max) ? state.path.charCodeAt(index) : 0; 148 | } 149 | 150 | if (ch === 0x65/* e */ || ch === 0x45/* E */) { 151 | if (hasDot && !hasCeiling && !hasDecimal) { 152 | state.err = 'SvgPath: invalid float exponent (at pos ' + index + ')'; 153 | return; 154 | } 155 | 156 | index++; 157 | 158 | ch = (index < max) ? state.path.charCodeAt(index) : 0; 159 | if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { 160 | index++; 161 | } 162 | if (index < max && isDigit(state.path.charCodeAt(index))) { 163 | while (index < max && isDigit(state.path.charCodeAt(index))) { 164 | index++; 165 | } 166 | } else { 167 | state.err = 'SvgPath: invalid float exponent (at pos ' + index + ')'; 168 | return; 169 | } 170 | } 171 | 172 | state.index = index; 173 | state.param = parseFloat(state.path.slice(start, index)) + 0.0; 174 | } 175 | 176 | 177 | function finalizeSegment(state) { 178 | var cmd, cmdLC; 179 | 180 | // Process duplicated commands (without comand name) 181 | 182 | // This logic is shamelessly borrowed from Raphael 183 | // https://github.com/DmitryBaranovskiy/raphael/ 184 | // 185 | cmd = state.path[state.segmentStart]; 186 | cmdLC = cmd.toLowerCase(); 187 | 188 | var params = state.data; 189 | 190 | if (cmdLC === 'm' && params.length > 2) { 191 | state.result.push([ cmd, params[0], params[1] ]); 192 | params = params.slice(2); 193 | cmdLC = 'l'; 194 | cmd = (cmd === 'm') ? 'l' : 'L'; 195 | } 196 | 197 | if (cmdLC === 'r') { 198 | state.result.push([ cmd ].concat(params)); 199 | } else { 200 | 201 | while (params.length >= paramCounts[cmdLC]) { 202 | state.result.push([ cmd ].concat(params.splice(0, paramCounts[cmdLC]))); 203 | if (!paramCounts[cmdLC]) { 204 | break; 205 | } 206 | } 207 | } 208 | } 209 | 210 | 211 | function scanSegment(state) { 212 | var max = state.max, 213 | cmdCode, is_arc, comma_found, need_params, i; 214 | 215 | state.segmentStart = state.index; 216 | cmdCode = state.path.charCodeAt(state.index); 217 | is_arc = isArc(cmdCode); 218 | 219 | if (!isCommand(cmdCode)) { 220 | state.err = 'SvgPath: bad command ' + state.path[state.index] + ' (at pos ' + state.index + ')'; 221 | return; 222 | } 223 | 224 | need_params = paramCounts[state.path[state.index].toLowerCase()]; 225 | 226 | state.index++; 227 | skipSpaces(state); 228 | 229 | state.data = []; 230 | 231 | if (!need_params) { 232 | // Z 233 | finalizeSegment(state); 234 | return; 235 | } 236 | 237 | comma_found = false; 238 | 239 | for (;;) { 240 | for (i = need_params; i > 0; i--) { 241 | if (is_arc && (i === 3 || i === 4)) scanFlag(state); 242 | else scanParam(state); 243 | 244 | if (state.err.length) { 245 | return; 246 | } 247 | state.data.push(state.param); 248 | 249 | skipSpaces(state); 250 | comma_found = false; 251 | 252 | if (state.index < max && state.path.charCodeAt(state.index) === 0x2C/* , */) { 253 | state.index++; 254 | skipSpaces(state); 255 | comma_found = true; 256 | } 257 | } 258 | 259 | // after ',' param is mandatory 260 | if (comma_found) { 261 | continue; 262 | } 263 | 264 | if (state.index >= state.max) { 265 | break; 266 | } 267 | 268 | // Stop on next segment 269 | if (!isDigitStart(state.path.charCodeAt(state.index))) { 270 | break; 271 | } 272 | } 273 | 274 | finalizeSegment(state); 275 | } 276 | 277 | 278 | /* Returns array of segments: 279 | * 280 | * [ 281 | * [ command, coord1, coord2, ... ] 282 | * ] 283 | */ 284 | function pathParse(svgPath) { 285 | var state = new State(svgPath); 286 | var max = state.max; 287 | 288 | skipSpaces(state); 289 | 290 | while (state.index < max && !state.err.length) { 291 | scanSegment(state); 292 | } 293 | 294 | if (state.err.length) { 295 | state.result = []; 296 | 297 | } else if (state.result.length) { 298 | 299 | if ('mM'.indexOf(state.result[0][0]) < 0) { 300 | state.err = 'SvgPath: string should start with `M` or `m`'; 301 | state.result = []; 302 | } else { 303 | state.result[0][0] = 'M'; 304 | } 305 | } 306 | 307 | return { 308 | err: state.err, 309 | segments: state.result 310 | }; 311 | }; 312 | -------------------------------------------------------------------------------- /nv/usemap.html: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | Население мира / Canvas векторная карта 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 233 | 234 | 235 | -------------------------------------------------------------------------------- /nv/atlas.html: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | Атлас / Canvas векторная карта 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 241 | 242 | -------------------------------------------------------------------------------- /nv/countries.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | Страны мира / Canvas векторная карта 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 227 | 228 | 229 | -------------------------------------------------------------------------------- /svg/atlas.html: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | Атлас / SVG векторная карта 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 263 | 264 | 265 | -------------------------------------------------------------------------------- /js/data/continents.js: -------------------------------------------------------------------------------- 1 | // 2 | // List with coords of continents. 3 | // [[ftype, ftag, coords],...] 4 | // 5 | var CONTINENTS=[ 6 | ['.Mainland','Africa.0',[[0.674167,36.335556],[6.925556,36.872776],[10.606667,36.88139],[11.106112,33.566944],[20.013056,31.454166],[26.487499,31.498888],[32.461666,29.898611],[30.736111,-30.210556],[22.844723,-34.05611],[19.2925,-34.631111],[18.277222,-31.979445],[15.016945,-26.367777],[14.223889,-22.043888],[11.8225,-16.352222],[13.774167,-10.658889],[11.4125,-4.181111],[9.330556,0.3475],[9.535277,3.999722],[8.1275,4.5525],[5.445556,4.923056],[0.674167,36.335556]]], 7 | ['.Mainland','Africa.1',[[32.461666,29.898611],[35.509167,23.970556],[37.274445,19.780001],[39.617222,15.252222],[42.598888,11.502778],[50.010277,11.502778],[49.115833,6.540278],[40.213612,-2.346667],[39.340279,-7.965278],[40.533054,-12.325],[40.831112,-14.9325],[34.59111,-19.728889],[35.485554,-23.607222],[30.736111,-30.210556],[32.461666,29.898611]]], 8 | ['.Mainland','Africa.2',[[5.445556,4.923056],[-0.838889,5.203055],[-10.056945,5.878334],[-13.229445,9.1675],[-14.545555,10.835834],[-15.088611,11.628612],[-16.808056,13.363889],[-17.428055,14.729445],[-16.235277,20.144722],[-15.663055,23.997778],[-15.021111,24.551945],[-9.838056,31.095556],[-5.348333,35.885277],[0.674167,36.335556],[5.445556,4.923056]]], 9 | ['.Mainland','Australia.0',[[136.398056,-15.618055],[136.146118,-13.244166],[136.871109,-12.224167],[135.856949,-11.983889],[133.319443,-11.7272],[131.980835,-11.23],[131.907501,-12.228889],[130.352783,-12.791945],[129.965271,-13.530278],[129.189438,-15.183888],[127.547775,-14.103333],[126.335556,-14.038889],[125.751945,-14.451944],[125.394997,-15.077778],[124.491943,-15.935],[123.811386,-17.049723],[122.458611,-16.942499],[119.086388,-20.001944],[115.313889,-21.591389],[113.428055,-24.084],[113.441109,-25.625],[114.139999,-27.98889],[115.631668,-34.454723],[119.434166,-34.371387],[122.967781,-33.913887],[131.134171,-31.46611],[134.102783,-32.760277],[135.714722,-34.872776],[137.8125,-32.623],[136.398056,-15.618055]]], 10 | ['.Mainland','Australia.1',[[137.8125,-32.623],[137.638336,-35.16861],[140.160828,-37.605556],[144.994171,-37.951946],[146.263885,-38.853054],[150.159439,-35.881943],[152.12056,-32.786388],[153.499725,-27.42],[151.82695,-24.164722],[149.949448,-22.139999],[148.825836,-20.336945],[146.271667,-18.502501],[144.448883,-14.245277],[142.350555,-10.878612],[141.413055,-16.120277],[136.398056,-15.618055],[137.8125,-32.623]]], 11 | ['.Mainland','Eurasia.0',[[29.602222,69.930557],[27.964722,70.823608],[25.116388,70.074165],[24.378889,70.698608],[22.051111,69.778893],[19.432501,69.239166],[17.246,68.365837],[15.534722,68.105003],[14.709167,67.514725],[13.613334,66.629166],[12.638889,65.718887],[12.124,65.204445],[11.806389,64.818611],[10.649445,64.40667],[11.232778,63.774723],[7.513055,62.665001],[6.614722,61.863609],[6.175833,60.388889],[5.603,59.055557],[12.726944,56.486389],[18.187222,59.448891],[19.256,63.395],[23.120277,63.875557],[24.405556,59.988056],[23.539444,58.970833],[16.475277,54.525276],[10.378612,56.273056],[5.615,53.329723],[-1.604167,49.258888],[-2.476944,47.295555],[-8.032222,43.736668],[-9.155278,38.464169],[0.086944,38.68639],[9.160833,44.349724],[17.219999,40.428612],[15.305,44.058334],[21.036112,39.028889],[22.355278,36.52639],[24.209723,38.437778],[24.006,40.072498],[27.904167,40.418056],[27.024166,37.707779],[29.663334,36.204723],[29.602222,69.930557]]], 12 | ['.Mainland','Eurasia.1',[[29.663334,36.204723],[35.164,33.190277],[36.044,26.923334],[41.808887,17.864166],[49.09639,14.564445],[57.405556,23.898611],[51.36972,24.583055],[48.183056,29.008612],[57.101387,26.360556],[53.948055,68.220833],[44.272221,66.472778],[38.02,63.976944],[33.675835,66.337219],[40.327221,67.828056],[32.857224,69.303886],[29.602222,69.930557],[29.663334,36.204723]]], 13 | ['.Mainland','Eurasia.2',[[57.101387,26.360556],[65.991943,25.441389],[68.543053,23.309166],[72.609726,21.803],[73.279724,17.167223],[79.281387,10.29],[86.785835,20.427221],[89.471664,21.866112],[86.864723,74.362221],[77.556114,72.071663],[78.632225,67.535835],[72.652496,71.045555],[66.648056,70.921112],[53.948055,68.220833],[57.101387,26.360556]]], 14 | ['.Mainland','Eurasia.3',[[89.471664,21.866112],[91.907776,21.564],[93.802223,18.987778],[95.095001,16.032499],[97.991112,14.347777],[98.701385,10.263611],[100.508057,4.899445],[102.821945,5.6475],[101.374168,12.643888],[106.252502,9.550278],[109.230003,13.494166],[107.085281,21.015833],[109.514168,21.740278],[111.077225,21.501389],[113.567223,22.4175],[114.582497,22.773611],[117.491943,23.749722],[118.953613,25.16],[119.799164,26.336],[120.347504,27.116112],[121.585556,29.145],[121.734169,31.296112],[119.711113,35.640835],[121.727501,36.856945],[119.291946,37.149166],[118.953613,39.175835],[121.504448,39.797222],[123.141945,39.677223],[118.804169,73.552223],[112.891945,75.701668],[97.41111,75.99472],[86.864723,74.362221],[89.471664,21.866112]]], 15 | ['.Mainland','Eurasia.4',[[123.141945,39.677223],[125.577499,38.712776],[126.822502,37.62],[126.383057,36.634998],[126.403053,34.88361],[127.276108,34.510834],[128.487228,35.055557],[129.387497,36.248611],[128.054443,40.061943],[130.699722,42.71611],[133.33223,42.795555],[140.037506,52.81361],[136.88472,55.762501],[152.223892,59.217499],[161.886383,69.527496],[140.200272,72.225281],[118.804169,73.552223],[123.141945,39.677223]]], 16 | ['.Mainland','Eurasia.5',[[152.223892,59.217499],[160.1,61.434166],[163.327499,60.82],[159.910828,53.422779],[163.788055,60.049168],[172.29306,61.125278],[176.99,65.065277],[179.999,66.03],[179.999,68.69],[176.99,68.83],[161.886383,69.527496],[152.223892,59.217499]]], 17 | ['.Mainland','Eurasia.6',[[180.332779,66.144722],[181.299438,68.631386],[180,68.69],[180,66.03],[180.332779,66.144722]]], 18 | ['.Mainland','Eurasia.7',[[181.299438,68.631386],[184.823883,67.426],[186.112228,66.507225],[186.836105,66.929443],[189.365005,65.605003],[187.71666,64.960281],[186.628616,64.303337],[183.645279,65.491943],[180.332779,66.144722],[181.299438,68.631386]]], 19 | ['.Mainland','N.America.0',[[-90.002502,30.398333],[-80.501945,24.998333],[-75.902,36.899166],[-72.602501,40.999168],[-64.002,45.298611],[-65.00222,47.299446],[-60.802223,50.198891],[-58.902222,53.99889],[-60.502224,55.599167],[-63.202778,58.49889],[-65.602219,58.799446],[-69.702499,60.999168],[-77.847778,61.647499],[-75.902222,56.099167],[-81.702225,52.699165],[-93.001945,58.399166],[-90.002502,30.398333]]], 20 | ['.Mainland','N.America.1',[[-93.002,58.4],[-88.202,64.2],[-83.302,65.6],[-83.701942,69.7],[-89.0025,69.3],[-92.9,70.99],[-96.402496,69.9],[-97.056946,68.366943],[-107.501945,68.199722],[-119.00222,69.199448],[-116.702225,31.798334],[-113.542503,29.026667],[-90.002502,30.398333],[-93.001945,58.399166]]], 21 | ['.Mainland','N.America.2',[[-113.542503,29.026667],[-105.334,21.543],[-97.801941,15.999166],[-87.402496,12.999166],[-83.272224,8.502],[-80.001389,7.498611],[-80.501945,8.098056],[-79.692497,9.081944],[-86.50222,15.798056],[-89.102219,21.398611],[-97.102219,26.099167],[-90.002502,30.398333],[-113.542503,29.026667],[-113.542503,29.026667]]], 22 | ['.Mainland','N.America.3',[[-119.002,69.2],[-134.5,69.5],[-155.002,71.1],[-151.501938,60.999168],[-142.502,60.099167],[-133.30278,56.499168],[-128.103058,51.499168],[-124.30278,42.298889],[-116.702225,31.798334],[-119.00222,69.199448]]], 23 | ['.Mainland','N.America.4',[[-155.002,71.1],[-160.3,66.6],[-161.0025,64.5],[-160.30278,58.999443],[-163.31,55.088055],[-160.893051,55.521667],[-151.501938,60.999168],[-155.002228,71.099442]]], 24 | ['.Mainland','S.America.0',[[-79.753,9.163],[-77.3,4.7],[-80.8,-2.2],[-79.1,-8.1],[-73.8,-16.2],[-70.5,-24.2],[-71.6,-33.6],[-73.7,-41.6],[-75.7,-46.9],[-75.1,-51.8],[-68,-55.8],[-68.8,-52.6],[-66.3,-47.1],[-64.6,-42.5],[-56.6,-36.9],[-63.7,10.5],[-71.5,11],[-74.5,11],[-79.753,9.163]]], 25 | ['.Mainland','S.America.1',[[-56.6,-36.9],[-50.8,-31.2],[-44.6,-23.4],[-39,-16.29],[-36.6,-5.1],[-47.4,-0.6],[-50.484,1.82],[-58.29,6.9],[-63.7,10.5],[-56.6,-36.9]]], 26 | ['.Arctic','Antarctica.0',[[-179.999,-78.3],[-158.3,-77.8],[-146.19,-76],[-130,-74.19],[-130,-84],[-179.999,-84],[-179.999,-78.3]]], 27 | ['.Arctic','Antarctica.1',[[-130,-74.19],[-114,-73.8],[-100.8,-74.59],[-102.69,-72.09],[-87,-72.9],[-87,-84],[-130,-84],[-130,-74.19]]], 28 | ['.Arctic','Antarctica.2',[[-87,-72.9],[-72,-73.19],[-73,-69.5],[-66,-66.8],[-58.5,-64],[-59.9,-68.19],[-60,-73],[-61,-75.5],[-40,-77.9],[-40,-84],[-87,-84],[-87,-72.9]]], 29 | ['.Arctic','Antarctica.3',[[-40,-77.9],[-23.9,-74.8],[-11,-71],[1,-69.9],[1,-84],[-40,-84],[-40,-77.9]]], 30 | ['.Arctic','Antarctica.4',[[1,-69.9],[16,-70],[31.5,-69.5],[41,-68.5],[41,-84],[1,-84],[1,-69.9]]], 31 | ['.Arctic','Antarctica.5',[[41,-68.5],[50,-67.09],[57,-67.09],[70.09,-68.19],[78,-69],[78,-84],[41,-84],[41,-68.5]]], 32 | ['.Arctic','Antarctica.6',[[78,-69],[88.3,-66.19],[100.19,-66],[109.4,-66.59],[109.4,-84],[78,-84],[78,-69]]], 33 | ['.Arctic','Antarctica.7',[[109.4,-66.59],[123.3,-66.69],[134,-66.09],[144.5,-67],[144.5,-84],[109.4,-84],[109.4,-66.59]]], 34 | ['.Arctic','Antarctica.8',[[144.5,-67],[148.8,-67.69],[157,-69.09],[166,-70.59],[169,-73],[163,-75.5],[173,-77.59],[179.999,-78.3],[179.999,-84],[179.999,-84],[144.5,-84],[144.5,-67]]], 35 | ['.Arctic','Antarctica.9',[[-179.999,-84],[-179.999,-90],[-130,-90],[-130,-84],[-179.999,-84]]], 36 | ['.Arctic','Antarctica.10',[[-130,-84],[-130,-90],[-87,-90],[-87,-84],[-130,-84]]], 37 | ['.Arctic','Antarctica.11',[[-87,-84],[-87,-90],[-40,-90],[-40,-84],[-87,-84]]], 38 | ['.Arctic','Antarctica.12',[[-40,-84],[-40,-90],[1,-90],[1,-84],[-40,-84]]], 39 | ['.Arctic','Antarctica.13',[[1,-84],[1,-90],[41,-90],[41,-84],[1,-84]]], 40 | ['.Arctic','Antarctica.14',[[41,-84],[41,-90],[78,-90],[78,-84],[41,-84]]], 41 | ['.Arctic','Antarctica.15',[[78,-84],[78,-90],[109.4,-90],[109.4,-84],[78,-84]]], 42 | ['.Arctic','Antarctica.16',[[109.4,-84],[109.4,-90],[144.5,-90],[144.5,-84],[109.4,-84]]], 43 | ['.Arctic','Antarctica.17',[[144.5,-84],[144.5,-90],[179.999,-90],[179.999,-84],[144.5,-84]]], 44 | ['.Arctic','Greenland.0',[[-42.5,83.4],[-27.5,83.4],[-26,82],[-28,82],[-23,81],[-15,81.2],[-20,80.3],[-20.5,78],[-22.29,76.5],[-20.5,73.9],[-22.4,70.5],[-25,69],[-35.7,66.3],[-42.79,61],[-42.5,83.4]]], 45 | ['.Arctic','Greenland.1',[[-42.79,61],[-52.29,65],[-53,70.3],[-54,71.4],[-59,75.8],[-69,76.5],[-70,77.5],[-66,79],[-62,81],[-55.4,82.4],[-47.5,82.2],[-42.5,83.4],[-42.79,61]]] 46 | ]; -------------------------------------------------------------------------------- /js/data/countries_info.js: -------------------------------------------------------------------------------- 1 | // 2 | // Array with some info on countries. 3 | // {cntryname:[density,rusname]} 4 | // 5 | var INFOCNT={ 6 | "Afghanistan":[53,"Афганистан"], 7 | "Albania":[117,"Албания"], 8 | "Algeria":[15,"Алжир"], 9 | "American Samoa":[342,"Американское Самоа (США)"], 10 | "Andorra":[181,"Андорра"], 11 | "Angola":[15,"Ангола"], 12 | "Anguilla":[0,"Ангилья (британ.)"], 13 | "Antarctica":[0,"Антарктида"], 14 | "Antigua & Barbuda":[0,"Антигуа и Барбуда"], 15 | "Argentina":[15,"Аргентина"], 16 | "Armenia":[109,"Армения"], 17 | "Aruba":[597,"Аруба"], 18 | "Australia":[3,"Австралия"], 19 | "Austria":[102,"Австрия"], 20 | "Azerbaijan":[110,"Азербайджан"], 21 | "Bahrain":[1660,"Бахрейн"], 22 | "Baker I.":[0,"Бейкер (США)"], 23 | "Bangladesh":[1142,"Бангладеш"], 24 | "Barbados":[636,"Барбадос"], 25 | "Belarus":[47,"Беларусь"], 26 | "Belgium":[359,"Бельгия"], 27 | "Belize":[15,"Белиз"], 28 | "Benin":[80,"Бенин"], 29 | "Bermuda":[1292,"Бермудские Острова"], 30 | "Bhutan":[19,"Бутан"], 31 | "Bolivia":[9,"Боливия"], 32 | "Bosnia & Herzegovina":[73,"Босния и Герцеговина"], 33 | "Botswana":[4,"Ботсвана"], 34 | "Bouvet I.":[0,"Остров Буве"], 35 | "Brazil":[23,"Бразилия"], 36 | "British Indian Ocean Territory":[0,"Британская территория в Индийском океане"], 37 | "British Virgin Is.":[0,"Виргинские Острова (британ.)"], 38 | "Brunei":[76,"Бруней"], 39 | "Bulgaria":[69,"Болгария"], 40 | "Burkina Faso":[60,"Буркина-Фасо"], 41 | "Burundi":[326,"Бурунди"], 42 | "Cambodia":[80,"Камбоджа"], 43 | "Cameroon":[41,"Камерун"], 44 | "Canada":[4,"Канада"], 45 | "Cape Verde":[123,"Капо-Верде"], 46 | "Cayman Is.":[234,"Острова Кайман (британ.)"], 47 | "Central African Republic":[7,"ЦАР"], 48 | "Chad":[9,"Чад"], 49 | "Chile":[23,"Чили"], 50 | "China":[143,"Китай"], 51 | "Christmas I.":[0,"Остров Рождества (австрал.)"], 52 | "Cocos Is.":[0,"Кокосовые острова (австрал.)"], 53 | "Colombia":[42,"Колумбия"], 54 | "Comoros":[395,"Коморы"], 55 | "Congo":[12,"Конго"], 56 | "Congo, DRC":[29,"ДР Конго"], 57 | "Cook Is.":[1,"Острова Кука (новозелан.)"], 58 | "Costa Rica":[91,"Коста-Рика"], 59 | "Cote d'Ivory":[62,"Кот-д’Ивуар"], 60 | "Croatia":[79,"Хорватия"], 61 | "Cuba":[106,"Куба"], 62 | "Cyprus":[119,"Кипр"], 63 | "Czech Republic":[136,"Чехия"], 64 | "Denmark":[131,"Дания"], 65 | "Djibouti":[38,"Джибути"], 66 | "Dominica":[90,"Доминика"], 67 | "Dominican Republic":[205,"Доминиканская Республика"], 68 | "East Timor":[0,"Восточный Тимор"], 69 | "Ecuador":[58,"Эквадор"], 70 | "Egypt":[81,"Египет"], 71 | "El Salvador":[299,"Сальвадор"], 72 | "Equatorial Guinea":[25,"Экваториальная Гвинея"], 73 | "Eritrea":[52,"Эритрея"], 74 | "Estonia":[32,"Эстония"], 75 | "Ethiopia":[83,"Эфиопия"], 76 | "Falkland Is.":[0,"Фолклендские острова"], 77 | "Faroe Is.":[35,"Фарерские острова"], 78 | "Fiji":[47,"Фиджи"], 79 | "Finland":[18,"Финляндия"], 80 | "France":[118,"Франция"], 81 | "French Guiana":[4,"Гвиана (франц.)"], 82 | "French Polynesia":[74,"Французская Полинезия"], 83 | "French Southern & Antarctic Lands":[0,"Французские Южные и Антарктические территории"], 84 | "Gabon":[6,"Габон"], 85 | "Gaza Strip":[45,"Сектор Газа"], 86 | "Georgia":[78,"Грузия"], 87 | "Germany":[234,"Германия"], 88 | "Ghana":[107,"Гана"], 89 | "Gibraltar":[15,"Гибралтар (британ.)"], 90 | "Glorioso Is.":[0,"Глорьёз (франц.)"], 91 | "Greece":[88,"Греция"], 92 | "Greenland":[0.02,"Гренландия (датс.)"], 93 | "Grenada":[307,"Гренада"], 94 | "Guadeloupe":[2,"Гваделупа (франц.)"], 95 | "Guam":[333,"Гуам (США)"], 96 | "Guatemala":[134,"Гватемала"], 97 | "Guernsey":[0,"Гернси (британ.)"], 98 | "Guinea-Bissau":[54,"Гвинея-Бисау"], 99 | "Guinea":[41,"Гвинея"], 100 | "Guyana":[4,"Гайана"], 101 | "Haiti":[363,"Республика Гаити"], 102 | "Heard I. & McDonald Is.":[0,"Остров Херд и острова Макдональд"], 103 | "Honduras":[68,"Гондурас"], 104 | "Howland I.":[0,"Хауленд (США)"], 105 | "Hungary":[112,"Венгрия"], 106 | "Iceland":[3,"Исландия"], 107 | "India":[394,"Индия"], 108 | "Indonesia":[132,"Индонезия"], 109 | "Iran":[45,"Иран"], 110 | "Iraq":[73,"Ирак"], 111 | "Ireland":[65,"Ирландия"], 112 | "Isle of Man":[145,"Остров Мэн (британ.)"], 113 | "Israel":[352,"Израиль"], 114 | "Italy":[206,"Италия"], 115 | "Jamaica":[250,"Ямайка"], 116 | "Jan Mayen":[0,"Ян-Майен (норвеж.)"], 117 | "Japan":[350,"Япония"], 118 | "Jarvis I.":[0,"Джарвис (США)"], 119 | "Jersey":[0,"Джерси (британ.)"], 120 | "Johnston Atoll":[0,"Джонстон (США)"], 121 | "Jordan":[69,"Иордания"], 122 | "Juan De Nova I.":[0,"Жуан-ди-Нова (франц.)"], 123 | "Kazakhstan":[6,"Казахстан"], 124 | "Kenya":[71,"Кения"], 125 | "Kiribati":[123,"Кирибати"], 126 | "Kuwait":[154,"Кувейт"], 127 | "Kyrgyzstan":[0,"Киргизстан"], 128 | "Laos":[27,"Лаос"], 129 | "Latvia":[36,"Латвия"], 130 | "Lebanon":[413,"Ливан"], 131 | "Lesotho":[72,"Лесото"], 132 | "Liberia":[41,"Либерия"], 133 | "Libya":[4,"Ливия"], 134 | "Liechtenstein":[225,"Лихтенштейн"], 135 | "Lithuania":[53,"Литва"], 136 | "Luxembourg":[195,"Люксембург"], 137 | "Macedonia":[82,"Македония"], 138 | "Madagascar":[36,"Мадагаскар"], 139 | "Malawi":[158,"Малави"], 140 | "Malaysia":[86,"Малайзия"], 141 | "Maldives":[1053,"Мальдивы"], 142 | "Mali":[13,"Мали"], 143 | "Malta":[1291,"Мальта"], 144 | "Marshall Is.":[300,"Маршалловы Острова"], 145 | "Martinique":[25,"Мартиника (франц.)"], 146 | "Mauritania":[3,"Мавритания"], 147 | "Mauritius":[631,"Маврикий"], 148 | "Mayotte":[552,"Майотта (франц.)"], 149 | "Mexico":[58,"Мексика"], 150 | "Micronesia":[159,"Микронезия"], 151 | "Midway Is.":[0,"Мидуэй (США)"], 152 | "Moldova":[124,"Молдавия"], 153 | "Monaco":[17704,"Монако"], 154 | "Mongolia":[2,"Монголия"], 155 | "Montenegro":[47,"Черногория"], 156 | "Montserrat":[0,"Монтсеррат (британ.)"], 157 | "Morocco":[72,"Морокко"], 158 | "Mozambique":[30,"Мозамбик"], 159 | "Myanmar":[73,"Мьянма"], 160 | "Namibia":[3,"Намибия"], 161 | "Nauru":[0,"Науру"], 162 | "Nepal":[209,"Непал"], 163 | "Netherlands Antilles":[0,"Нидерландские Антильские острова"], 164 | "Netherlands":[492,"Нидерланды"], 165 | "New Caledonia":[14,"Новая Каледония"], 166 | "New Zealand":[17,"Новая Зеландия"], 167 | "Nicaragua":[48,"Никарагуа"], 168 | "Nigeria":[174,"Нигерия"], 169 | "Niger":[12,"Нигер"], 170 | "Niue":[0,"Ниуэ (новозелан.)"], 171 | "Norfolk I.":[0,"Норфолк (австрал.)"], 172 | "Northern Mariana Is.":[0,"Северные Марианские острова (США)"], 173 | "North Korea":[232,"КНДР"], 174 | "Norway":[16,"Норвегия"], 175 | "Oman":[9,"Оман"], 176 | "Pakistan":[225,"Пакистан"], 177 | "Palau":[45,"Палау"], 178 | "Panama":[47,"Панама"], 179 | "Papua New Guinea":[15,"Папуа Новая Гвинея"], 180 | "Paracel Is.":[0,"Парасельские острова"], 181 | "Paraguay":[16,"Парагвай"], 182 | "Peru":[23,"Перу"], 183 | "Philippines":[313,"Филиппины"], 184 | "Pitcairn Is.":[0,"Острова Питкэрн (британ.)"], 185 | "Poland":[126,"Польша"], 186 | "Portugal":[116,"Португалия"], 187 | "Puerto Rico":[449,"Пуэрто-Рико"], 188 | "Qatar":[152,"Катар"], 189 | "Reunion":[0,"Реюньон (франц.)"], 190 | "Romania":[93,"Румыния"], 191 | "Russia":[9,"Россия"], 192 | "Rwanda":[431,"Руанда"], 193 | "Samoa":[65,"о-ва Самоа"], 194 | "San Marino":[526,"Сан-Марино"], 195 | "Sao Tome & Principe":[172,"Сан-Томе и Принсипи"], 196 | "Saudi Arabia":[14,"Саудовская Аравия"], 197 | "Senegal":[65,"Сенегал"], 198 | "Serbia":[83,"Сербия"], 199 | "Seychelles":[188,"Сейшельские о-ва"], 200 | "Sierra Leone":[82,"Сьерра-Леоне"], 201 | "Singapore":[7252,"Сингапур"], 202 | "Slovakia":[113,"Словакия"], 203 | "Slovenia":[102,"Словения"], 204 | "Solomon Is.":[19,"Соломоновы Острова"], 205 | "Somalia":[15,"Сомали"], 206 | "South Africa":[41,"ЮАР"], 207 | "South Georgia & the South Sandwich Is.":[20,"Южная Георгия и Южные Сандвичевы Острова (британ.)"], 208 | "South Korea":[504,"Южная Корея"], 209 | "Spain":[92,"Испания"], 210 | "Spratly Is.":[0,"Спратли"], 211 | "Sri Lanka":[333,"Шри-Ланка"], 212 | "St. Helena":[0,"Остров Святой Елены (британ.)"], 213 | "St. Kitts & Nevis":[202,"Сент-Китс и Невис"], 214 | "St. Lucia":[285,"Сент-Люсия"], 215 | "St. Pierre & Miquelon":[0,"Сен-Пьер и Микелон (франц.)"], 216 | "St. Vincent & the Grenadines":[280,"Сент-Винсент и Гренадины"], 217 | "Sudan":[18,"Судан"], 218 | "Suriname":[3,"Суринам"], 219 | "Svalbard":[0,"Шпицберген (норвеж.)"], 220 | "Swaziland":[69,"Свазиленд"], 221 | "Sweden":[23,"Швеция"], 222 | "Switzerland":[196,"Щвейцария"], 223 | "Syria":[111,"Сирия"], 224 | "Taiwan":[156,"Тайвань"], 225 | "Tajikistan":[49,"Таджикистан"], 226 | "Tanzania":[51,"Танзания"], 227 | "Thailand":[135,"Тайланд"], 228 | "The Bahamas":[34,"Багамские о-ва"], 229 | "The Gambia":[173,"Гамбия"], 230 | "Togo":[111,"Того"], 231 | "Tokelau":[0,"Токелау (новозелан.)"], 232 | "Tonga":[145,"Тонга"], 233 | "Trinidad & Tobago":[261,"Тринидад и Тобаго"], 234 | "Tunisia":[68,"Тунис"], 235 | "Turkey":[95,"Турция"], 236 | "Turkmenistan":[11,"Туркменистан"], 237 | "Turks & Caicos Is.":[40,"Тёркс и Кайкос (британ.)"], 238 | "Tuvalu":[328,"Тувалу"], 239 | "Uganda":[170,"Уганда"], 240 | "Ukraine":[79,"Украина"], 241 | "United Arab Emirates":[90,"ОАЭ"], 242 | "United Kingdom":[257,"Великобритания"], 243 | "United States":[34,"США"], 244 | "Uruguay":[19,"Уругвай"], 245 | "Uzbekistan":[66,"Узбекистан"], 246 | "Vanuatu":[20,"Вануату"], 247 | "Vatican City":[270,"Ватикан (итал.)"], 248 | "Venezuela":[33,"Венесуэла"], 249 | "Vietnam":[280,"Вьетнам"], 250 | "Virgin Is.":[314,"Виргинские Острова"], 251 | "Wake I.":[0,"Уэйк (США)"], 252 | "Wallis & Futuna":[0,"Уоллис и Футуна (франц.)"], 253 | "West Bank":[690,"Западный берег реки Иордан"], 254 | "Western Sahara":[2,"Западная Сахара"], 255 | "Yemen":[46,"Йемен"], 256 | "Zambia":[17,"Замбия"], 257 | "Zimbabwe":[32,"Зимбабве"] 258 | } -------------------------------------------------------------------------------- /svg/metro-novosib.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | Карта метро Новосибирска / SVG векторная карта 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 26 | 27 |
24 |
25 |
28 | 260 | 261 | 262 | -------------------------------------------------------------------------------- /js/data/continents_tile.js: -------------------------------------------------------------------------------- 1 | // 2 | // List with coords of continents divided on tiles. 3 | // [[ftype, ftag, coords],...] 4 | // 5 | var CONTINENTS=[ 6 | ['.Mainland','Africa.0.0',[[0,5.15],[-0.838889,5.203055],[-10.056945,5.878334],[-13.229445,9.1675],[-14.545555,10.835834],[-15.088611,11.628612],[-16.808056,13.363889],[-17.428055,14.729445],[-16.235277,20.144722],[-15.663055,23.997778],[-15.021111,24.551945],[-10.68,30],[0,30]]], 7 | ['.Mainland','Africa.0.30',[[0,36.3],[-5.348333,35.885277],[-9.838056,31.095556],[-10.68,30],[0,30]]], 8 | ['.Mainland','Africa.30.-60',[[30,-30],[30,-30.58],[22.844723,-34.05611],[19.2925,-34.631111],[18.277222,-31.979445],[17.12,-30]]], 9 | ['.Mainland','Africa.30.-30',[[30,0],[30,-30],[17.12,-30],[15.016945,-26.367777],[14.223889,-22.043888],[11.8225,-16.352222],[13.774167,-10.658889],[11.4125,-4.181111],[9.5,0]]], 10 | ['.Mainland','Africa.30.0',[[30,30],[30,0],[9.5,0],[9.330556,0.3475],[9.535277,3.999722],[8.1275,4.5525],[5.445556,4.923056],[0,5.15],[0,30]]], 11 | ['.Mainland','Africa.30.30',[[0,36.3],[6.925556,36.872776],[10.606667,36.88139],[11.106112,33.566944],[20.013056,31.454166],[26.487499,31.498888],[30,30.55],[30,30],[0,30]]], 12 | ['.Mainland','Africa.60.-60',[[30.90,-30],[30.736111,-30.210556],[30,-30.58],[30,-30]]], 13 | ['.Mainland','Africa.60.-30',[[42.54,0],[40.213612,-2.346667],[39.340279,-7.965278],[40.533054,-12.325],[40.831112,-14.9325],[34.59111,-19.728889],[35.485554,-23.607222],[30.90,-30],[30,-30],[30,0]]], 14 | ['.Mainland','Africa.60.0',[[32.13,30],[32.461666,29.898611],[35.509167,23.970556],[37.274445,19.780001],[39.617222,15.252222],[42.598888,11.502778],[50.010277,11.502778],[49.115833,6.540278],[42.54,0],[30,0],[30,30]]], 15 | ['.Mainland','Africa.60.30',[[30,30.55],[32.13,30],[30,30]]], 16 | ['.Mainland','Australia.120.-60',[[114.6,-30],[115.631668,-34.454723],[119.434166,-34.371387],[120,-34.32],[120,-30]]], 17 | ['.Mainland','Australia.120.-30',[[120,-19.32],[119.086388,-20.001944],[115.313889,-21.591389],[113.428055,-24.084],[113.441109,-25.625],[114.139999,-27.98889],[114.6,-30],[120,-30]]], 18 | ['.Mainland','Australia.150.-60',[[120,-34.32],[122.967781,-33.913887],[131.134171,-31.46611],[134.102783,-32.760277],[135.714722,-34.872776],[137.8125,-32.623],[137.638336,-35.16861],[140.160828,-37.605556],[144.994171,-37.951946],[146.263885,-38.853054],[150,-36.04],[150,-30],[120,-30]]], 19 | ['.Mainland','Australia.150.-30',[[150,-22.24],[149.949448,-22.139999],[148.825836,-20.336945],[146.271667,-18.502501],[144.448883,-14.245277],[142.350555,-10.878612],[141.413055,-16.120277],[136.398056,-15.618055],[136.146118,-13.244166],[136.871109,-12.224167],[135.856949,-11.983889],[133.319443,-11.7272],[131.980835,-11.23],[131.907501,-12.228889],[130.352783,-12.791945],[129.965271,-13.530278],[129.189438,-15.183888],[127.547775,-14.103333],[126.335556,-14.038889],[125.751945,-14.451944],[125.394997,-15.077778],[124.491943,-15.935],[123.811386,-17.049723],[122.458611,-16.942499],[120,-19.32],[120,-30],[150,-30]]], 20 | ['.Mainland','Australia.180.-60',[[150,-36.04],[150.159439,-35.881943],[152.12056,-32.786388],[152.87,-30],[150,-30]]], 21 | ['.Mainland','Australia.180.-30',[[152.87,-30],[153.499725,-27.42],[151.82695,-24.164722],[150,-22.24],[150,-30]]], 22 | ['.Mainland','Eurasia.0.30',[[0,50.11],[-1.604167,49.258888],[-2.476944,47.295555],[-8.032222,43.736668],[-9.155278,38.464169],[0,38.65]]], 23 | ['.Mainland','Eurasia.30.30.1',[[6,60],[5.603,59.055557],[12.726944,56.486389],[18.187222,59.448891],[18.36,60]]], 24 | ['.Mainland','Eurasia.30.30_2',[[24.41,60],[23.539444,58.970833],[16.475277,54.525276],[10.378612,56.273056],[5.615,53.329723],[0,50.11],[0,38.65],[9.160833,44.349724],[17.219999,40.428612],[15.305,44.058334],[21.036112,39.028889],[22.355278,36.52639],[24.209723,38.437778],[24.006,40.072498],[27.904167,40.418056],[27.024166,37.707779],[29.663334,36.204723],[30,36],[30,60]]], 25 | ['.Mainland','Eurasia.30.60',[[30,69.84],[29.602222,69.930557],[27.964722,70.823608],[25.116388,70.074165],[24.378889,70.698608],[22.051111,69.778893],[19.432501,69.239166],[17.246,68.365837],[15.534722,68.105003],[14.709167,67.514725],[13.613334,66.629166],[12.638889,65.718887],[12.124,65.204445],[11.806389,64.818611],[10.649445,64.40667],[11.232778,63.774723],[7.513055,62.665001],[6.614722,61.863609],[6.175833,60.388889],[6,60],[18.36,60],[19.256,63.395],[23.120277,63.875557],[24.41,60],[30,60]]], 26 | ['.Mainland','Eurasia.60.0',[[35.63,30],[36.044,26.923334],[41.808887,17.864166],[49.09639,14.564445],[57.405556,23.898611],[51.36972,24.583055],[48.183056,29.008612],[57.101387,26.360556],[60,26.04],[60,30]]], 27 | ['.Mainland','Eurasia.60.30',[[30,36],[35.164,33.190277],[35.63,30],[60,30],[60,60],[30,60]]], 28 | ['.Mainland','Eurasia.60.60',[[60,60],[60,69.51],[53.948055,68.220833],[44.272221,66.472778],[38.02,63.976944],[33.675835,66.337219],[40.327221,67.828056],[32.857224,69.303886],[30,69.84],[30,60]]], 29 | ['.Mainland','Eurasia.90.0',[[90,30],[60,30],[60,26.04],[65.991943,25.441389],[68.543053,23.309166],[72.609726,21.803],[73.279724,17.167223],[79.281387,10.29],[86.785835,20.427221],[89.471664,21.866112],[90,21.8]]], 30 | ['.Mainland','Eurasia.90.30',[[90,30],[90,60],[60,60],[60,30]]], 31 | ['.Mainland','Eurasia.90.60',[[90,60],[90,74.81],[86.864723,74.362221],[77.556114,72.071663],[78.632225,67.535835],[72.652496,71.045555],[66.648056,70.921112],[60,69.51],[60,60]]], 32 | ['.Mainland','Eurasia.120.0',[[90,21.8],[91.907776,21.564],[93.802223,18.987778],[95.095001,16.032499],[97.991112,14.347777],[98.701385,10.263611],[100.508057,4.899445],[102.821945,5.6475],[101.374168,12.643888],[106.252502,9.550278],[109.230003,13.494166],[107.085281,21.015833],[109.514168,21.740278],[111.077225,21.501389],[113.567223,22.4175],[114.582497,22.773611],[117.491943,23.749722],[118.953613,25.16],[119.799164,26.336],[120,26.63],[120,30],[90,30]]], 33 | ['.Mainland','Eurasia.120.30',[[120,35.02],[119.711113,35.640835],[120,35.82],[120,37.04],[119.291946,37.149166],[118.953613,39.175835],[120,39.45],[120,60],[90,60],[90,30],[120,30]]], 34 | ['.Mainland','Eurasia.120.60',[[120,73.48],[118.804169,73.552223],[112.891945,75.701668],[97.41111,75.99472],[90,74.81],[90,60],[120,60]]], 35 | ['.Mainland','Eurasia.150.0',[[120,30],[121.64,30],[121.585556,29.145],[120.347504,27.116112],[120,26.63]]], 36 | ['.Mainland','Eurasia.150.30_1',[[121.734169,31.296112],[120,35.02],[120,30],[121.64,30]]], 37 | ['.Mainland','Eurasia.150.30_2',[[120,35.82],[121.727501,36.856945],[120,37.04]]], 38 | ['.Mainland','Eurasia.150.30_3',[[120,39.45],[121.504448,39.797222],[123.141945,39.677223],[125.577499,38.712776],[126.822502,37.62],[126.383057,36.634998],[126.403053,34.88361],[127.276108,34.510834],[128.487228,35.055557],[129.387497,36.248611],[128.054443,40.061943],[130.699722,42.71611],[133.33223,42.795555],[140.037506,52.81361],[136.88472,55.762501],[150,58.72],[150,60],[120,60]]], 39 | ['.Mainland','Eurasia.150.60',[[150,70.91],[140.200272,72.225281],[120,73.48],[120,60],[150,60]]], 40 | ['.Mainland','Eurasia.180.30_1',[[150,58.72],[152.223892,59.217499],[155,60],[150,60]]], 41 | ['.Mainland','Eurasia.180.30_2',[[162.97,60],[159.910828,53.422779],[163.77,60]]], 42 | ['.Mainland','Eurasia.180.60',[[152.223892,59.217499],[160.1,61.434166],[163.327499,60.82],[162.97,60],[163.77,60],[163.788055,60.049168],[172.29306,61.125278],[176.99,65.065277],[179.999,66.03],[179.999,68.69],[176.99,68.83],[161.886383,69.527496],[150,70.91],[150,60]]], 43 | ['.Mainland','Eurasia.210.60',[[181.299438,68.631386],[184.823883,67.426],[186.112228,66.507225],[186.836105,66.929443],[189.365005,65.605003],[187.71666,64.960281],[186.628616,64.303337],[183.645279,65.491943],[180.332779,66.144722],[180.332779,66.144722],[180,66.03],[180,68.69],[181.299438,68.631386]]], 44 | ['.Mainland','N.America.-150.30',[[-160.41,60],[-160.30278,58.999443],[-163.31,55.088055],[-160.893051,55.521667],[-153.24,60]]], 45 | ['.Mainland','N.America.-150.60',[[-150,70.7],[-155.002,71.1],[-160.3,66.6],[-161.0025,64.5],[-160.41,60],[-153.24,60],[-151.501938,60.999168],[-150,60.84]]], 46 | ['.Mainland','N.America.-120.30',[[-142.24,60],[-133.30278,56.499168],[-128.103058,51.499168],[-124.30278,42.298889],[-120,36.32],[-120,60]]], 47 | ['.Mainland','N.America.-120.60',[[-120,69.22],[-134.5,69.5],[-150,70.7],[-150,60.84],[-142.502,60.099167],[-142.24,60],[-120,60]]], 48 | ['.Mainland','N.America.-90.60',[[-90,69.74],[-92.9,70.99],[-96.402496,69.9],[-97.056946,68.366943],[-107.501945,68.199722],[-119.00222,69.199448],[-120,69.22],[-120,60],[-91.66,60],[-90,62]]], 49 | ['.Mainland','N.America.-90.30',[[-90,56.9],[-93.001945,58.399166],[-91.6,60],[-120,60],[-120,36.32],[-116.702225,31.798334],[-114.65,30],[-90.66,30],[-90,30.4]]], 50 | ['.Mainland','N.America.-90.0',[[-114.65,30],[-113.542503,29.026667],[-105.334,21.543],[-97.801941,15.999166],[-90,13.72],[-90,21.89],[-97.102219,26.099167],[-90.66,30]]], 51 | ['.Mainland','N.America.-60.0_1',[[-89.32,30],[-80.501945,24.998333],[-78.56,30]]], 52 | ['.Mainland','N.America.-60.0_2',[[-90,13.72],[-87.402496,12.999166],[-83.272224,8.502],[-80.001389,7.498611],[-80.501945,8.098056],[-79.692497,9.081944],[-86.50222,15.798056],[-89.102219,21.398611],[-90,21.89]]], 53 | ['.Mainland','N.America.-60.30',[[-78.56,30],[-75.902,36.899166],[-72.602501,40.999168],[-64.002,45.298611],[-65.00222,47.299446],[-60.802223,50.198891],[-60,51.8],[-60,55.1],[-60.502224,55.599167],[-63.202778,58.49889],[-65.602219,58.799446],[-67.82,60],[-77.22,60],[-75.902222,56.099167],[-81.702225,52.699165],[-90,56.9],[-90,30.4],[-90.002502,30.398333],[-89.32,30]]], 54 | ['.Mainland','N.America.-60.60_1',[[-67.82,60],[-69.702499,60.999168],[-77.847778,61.647499],[-77.24,60]]], 55 | ['.Mainland','N.America.-60.60_2',[[-90,62],[-88.202,64.2],[-83.302,65.6],[-83.701942,69.7],[-89.0025,69.3],[-90,69.74]]], 56 | ['.Mainland','N.America.-30.30',[[-60,51.8],[-58.902222,53.99889],[-60,55.1]]], 57 | ['.Mainland','S.America.-60.-60',[[-71.2,-30],[-71.6,-33.6],[-73.7,-41.6],[-75.7,-46.9],[-75.1,-51.8],[-68,-55.8],[-68.8,-52.6],[-66.3,-47.1],[-64.6,-42.5],[-60,-39.28],[-60,-30]]], 58 | ['.Mainland','S.America.-60.-30',[[-79.66,0],[-80.8,-2.2],[-79.1,-8.1],[-73.8,-16.2],[-70.5,-24.2],[-71.2,-30],[-60,-30],[-60,0]]], 59 | ['.Mainland','S.America.-60.0',[[-60,7.98],[-63.7,10.5],[-71.5,11],[-74.5,11],[-79.753,9.163],[-77.3,4.7],[-79.66,0],[-60,0]]], 60 | ['.Mainland','S.America.-30.-60',[[-60,-39.28],[-56.6,-36.9],[-50.8,-31.2],[-49.82,-30],[-60,-30]]], 61 | ['.Mainland','S.America.-30.-30',[[-49.82,-30],[-44.6,-23.4],[-39,-16.29],[-36.6,-5.1],[-47.4,-0.6],[-48.14,0],[-60,0],[-60,-30]]], 62 | ['.Mainland','S.America.-30.0',[[-48.14,0],[-50.484,1.82],[-58.29,6.9],[-60,7.98],[-60,0]]], 63 | ['.Arctic','Antarctica.-150.-90_1',[[-179.999,-78.3],[-158.3,-77.8],[-150,-76.5],[-150,-84],[-179.999,-84]]], 64 | ['.Arctic','Antarctica.-150.-90_2',[[-179.999,-84],[-179.999,-90],[-150,-90],[-150,-84],[-179.999,-84]]], 65 | ['.Arctic','Antarctica.-120.-90_1',[[-150,-76.5],[-146.19,-76],[-130,-74.19],[-120,-73.88],[-120,-84],[-150,-84]]], 66 | ['.Arctic','Antarctica.-120.-90_2',[[-150,-84],[-150,-90],[-120,-90],[-120,-84],[-150,-84]]], 67 | ['.Arctic','Antarctica.-90.-90_1',[[-120,-73.88],[-114,-73.8],[-100.8,-74.59],[-102.69,-72.09],[-90,-72.71],[-90,-84],[-120,-84]]], 68 | ['.Arctic','Antarctica.-90.-90_2',[[-120,-84],[-120,-90],[-90,-90],[-90,-84],[-120,-84]]], 69 | ['.Arctic','Antarctica.-60.-90_1',[[-90,-72.71],[-72,-73.19],[-73,-69.5],[-66,-66.8],[-60,-64.54],[-60,-73],[-61,-75.5],[-60,-75.62],[-60,-84],[-90,-84]]], 70 | ['.Arctic','Antarctica.-60.-90_2',[[-90,-84],[-90,-90],[-60,-90],[-60,-84],[-90,-84]]], 71 | ['.Arctic','Antarctica.-30.-90_1',[[-60,-64.54],[-58.5,-64],[-59.9,-68.19],[-60,-73]]], 72 | ['.Arctic','Antarctica.-30.-90_2',[[-60,-75.62],[-40,-77.9],[-30,-75.92],[-30,-84],[-60,-84]]], 73 | ['.Arctic','Antarctica.-30.-90_3',[[-60,-84],[-60,-90],[-30,-90],[-30,-84],[-60,-84]]], 74 | ['.Arctic','Antarctica.0.-90_1',[[-30,-75.92],[-23.9,-74.8],[-11,-71],[0,-70],[0,-84],[-30,-84]]], 75 | ['.Arctic','Antarctica.0.-90_2',[[-30,-84],[-30,-90],[0,-90],[0,-84],[-30,-84]]], 76 | ['.Arctic','Antarctica.30.-90_1',[[0,-70],[1,-69.9],[16,-70],[30,-69.42],[30,-84],[0,-84]]], 77 | ['.Arctic','Antarctica.30.-90_2',[[0,-84],[0,-90],[30,-90],[30,-84],[0,-84]]], 78 | ['.Arctic','Antarctica.60.-90_1',[[30,-69.42],[31.5,-69.5],[41,-68.5],[50,-67.09],[57,-67.09],[60,-67.3],[60,-84],[30,-84]]], 79 | ['.Arctic','Antarctica.60.-90_2',[[30,-84],[30,-90],[60,-90],[60,-84],[30,-84]]], 80 | ['.Arctic','Antarctica.90.-90_1',[[60,-67.3],[78,-69],[88.3,-66.19],[90,-66.14],[90,-84],[60,-84]]], 81 | ['.Arctic','Antarctica.90.-90_2',[[60,-84],[60,-90],[90,-90],[90,-84],[60,-84]]], 82 | ['.Arctic','Antarctica.120.-90_1',[[90,-66.14],[100.19,-66],[109.4,-66.59],[120,-66.64],[120,-84],[90,-84]]], 83 | ['.Arctic','Antarctica.120.-90_2',[[90,-84],[90,-90],[120,-90],[120,-84],[90,-84]]], 84 | ['.Arctic','Antarctica.150.-90_1',[[120,-66.64],[123.3,-66.69],[134,-66.09],[144.5,-67],[148.8,-67.69],[150,-67.88],[150,-84],[120,-84]]], 85 | ['.Arctic','Antarctica.150.-90_2',[[120,-84],[120,-90],[150,-90],[150,-84],[120,-84]]], 86 | ['.Arctic','Antarctica.180.-90_1',[[150,-67.88],[157,-69.09],[166,-70.59],[169,-73],[163,-75.5],[173,-77.59],[179.999,-78.3],[179.999,-84],[150,-84]]], 87 | ['.Arctic','Antarctica.180.-90_2',[[150,-84],[150,-90],[179.999,-90],[179.999,-84],[150,-84]]], 88 | ['.Arctic','Greenland.0.60',[[-30,83.4],[-27.5,83.4],[-26,82],[-28,82],[-23,81],[-15,81.2],[-20,80.3],[-20.5,78],[-22.29,76.5],[-20.5,73.9],[-22.4,70.5],[-25,69],[-30,67.74]]], 89 | ['.Arctic','Greenland.-30.60',[[-30,67.74],[-35.7,66.3],[-42.79,61],[-52.29,65],[-53,70.3],[-54,71.4],[-59,75.8],[-60,75.86],[-60,81.46],[-55.4,82.4],[-47.5,82.2],[-42.5,83.4],[-30,83.4]]], 90 | ['.Arctic','Greenland.-60.60',[[-60,75.87],[-69,76.5],[-70,77.5],[-66,79],[-62,81],[-60,81.45]]] 91 | ]; -------------------------------------------------------------------------------- /js/data/gbutterfly.js: -------------------------------------------------------------------------------- 1 | // 2 | // from butterfly.obj 3 | // 4 | // var vrt=[], faces=[],vos=[]; 5 | // for(var i in geometry.vertices) 6 | // vrt.push([geometry.vertices[i].x, geometry.vertices[i].y, geometry.vertices[i].z]); 7 | // for(var i in geometry.faces) 8 | // faces.push([geometry.faces[i].a, geometry.faces[i].b, geometry.faces[i].c]); 9 | // for(var i in vertexOnSphere) 10 | // vos.push([vertexOnSphere[i].x, vertexOnSphere[i].y, vertexOnSphere[i].z]); 11 | // console.log('ratio=', ratio); 12 | // console.log('vertices=', vrt); 13 | // console.log('faces=', faces); 14 | // console.log('vertexOnSphere=', vos); 15 | // 16 | var GBUTTERFLY={ 17 | ratio: 0.7085611166121563, 18 | vertices: [ 19 | [-0.7677435567047284,0.7475052069269741,0], 20 | [-0.7677435567047284,0.4340471373395421,0], 21 | [-0.7107077994930577,0.5911304784777315,0], 22 | [-0.6867803640534049,0.8338035044398181,0], 23 | [-0.6867557915908223,0.5912123500633072,0], 24 | [-0.686605285257505,0.3483021788188635,0], 25 | [-0.572610559779734,0.9554957353443967,0], 26 | [-0.5725859873171515,0.7129045809678853,0], 27 | [-0.5723402626913269,0.4703021339588809,0], 28 | [-0.5721897563580096,0.22739478587256062,0], 29 | [-0.4825709137620209,0.9998164947219855,0], 30 | [-0.48212860943553687,0.1832264770336297,0], 31 | [-0.4585037224414304,0.8345968118724638,0], 32 | [-0.4582579978156059,0.5919943648634595,0], 33 | [-0.45801227318978155,0.3493919178544549,0], 34 | [-0.45698433029101243,-0.13584403090291003,0], 35 | [-0.45698433029101243,-0.37844930107003794,0], 36 | [-0.45698433029101243,-0.5504982034198074,0], 37 | [-0.43481586851195636,0.9999999999999999,0], 38 | [-0.4336026031719482,0.18337045809791772,0], 39 | [-0.433250909801237,0.029745485660763318,0], 40 | [-0.40929583034117895,0.10640552134068236,0], 41 | [-0.35465895978911915,-0.5375116760526562,0], 42 | [-0.34446906671196276,0.9562777501445491,0], 43 | [-0.34400218992289644,0.7136865957680378,0], 44 | [-0.34375646529707193,0.47108697191715654,0], 45 | [-0.3434109150420063,0.22817680067271323,0], 46 | [-0.34329573162365123,-0.01426190316514026,0], 47 | [-0.34299011162028203,-0.2567260154261032,0], 48 | [-0.3427244218686094,-0.49933410875135414,0], 49 | [-0.309586920297275,-0.7061812581288428,0], 50 | [-0.23005353781246732,0.8353675340401231,0], 51 | [-0.22958666102340097,0.5927792028217351,0], 52 | [-0.22924418232615812,0.3498746778935382,0], 53 | [-0.22909060443501789,0.10758842459434259,0], 54 | [-0.22887252382959877,-0.1351467108464568,0], 55 | [-0.22862833498268573,-0.6198575521928891,0], 56 | [-0.2285622964894954,-0.37760799994929634,0], 57 | [-0.12529790468780327,-0.7773770430295461,0], 58 | [-0.12525797443610684,-0.7409018400765904,0], 59 | [-0.11563954469188333,0.7144601410938202,0], 60 | [-0.11507591383139856,0.4715612624818701,0], 61 | [-0.11493462217154954,0.22928347865704427,0], 62 | [-0.1146766113144339,-0.013290736770727169,0], 63 | [-0.11446620960357173,-0.4981286202327078,0], 64 | [-0.11444624447772345,-0.2560202258952798,0], 65 | [-0.10565068507422949,-0.9626298559219606,0], 66 | [-0.10528977703004992,-0.5564790356724242,0], 67 | [-0.08822113020872113,-0.7592805994592329,0], 68 | [-0.04947972496756975,0.5928638975654339,0], 69 | [-0.04860279520915879,-0.37687397883724016,0], 70 | [-0.041630205373499755,-0.8455563117070909,0], 71 | [-0.041538058638815586,-0.6740466325588704,0], 72 | [-0.025303493344269606,0.5165115861209536,0], 73 | [-0.024500280973606042,-0.2998074083875664,0], 74 | [-0.0053243919079417465,-0.999901189465685,0], 75 | [-0.00498959210525598,-0.5207689085708811,0], 76 | [-0.0010980819216529082,0.35128908011330834,0], 77 | [-0.0008922875475249213,0.10875438889926294,0], 78 | [-0.0005820602074216221,-0.1337859486310289,0], 79 | [0.004711923278074416,-0.9318404934293183,0], 80 | [0.004779497550176029,-0.7599412184600833,0], 81 | [0.004890073631797128,-0.5889086530346996,0], 82 | [0.014583910120570462,-1.0000000000000002,0], 83 | [0.014737488011710707,-0.5207350306734015,0], 84 | [0.022821674623442957,0.5166527440271182,0], 85 | [0.023627958551929333,-0.29966625048140144,0], 86 | [0.048252637617358984,0.5958451525436322,0], 87 | [0.048320211889460764,-0.3775091894149811,0], 88 | [0.05162229012686744,-0.8456438296089127,0], 89 | [0.051708293745906075,-0.674216022046268,0], 90 | [0.09827464611854507,-0.7596052626434114,0], 91 | [0.11173574827698894,-0.5595732169755542,0], 92 | [0.11320379933839872,0.4719649740935011,0], 93 | [0.11327905250505756,0.22921572286208514,0], 94 | [0.11375053663085809,-0.2552184489882642,0], 95 | [0.11379353844037741,-0.015269770615156287,0], 96 | [0.11477643694367504,-0.4976627991423644,0], 97 | [0.11483034278346521,-0.9622741379984254,0], 98 | [0.11542914298102117,0.7155470569712885,0], 99 | [0.13454820822696353,-0.7421835538645656,0], 100 | [0.13454820822696353,-0.7770156787897644,0], 101 | [0.22679154340464822,-0.13404285602024885,0], 102 | [0.22686218923457274,0.3491067788840022,0], 103 | [0.227897304220858,0.10348919899932,0], 104 | [0.2284701497548113,0.5901818973483047,0], 105 | [0.2290675677513469,-0.3802532991108225,0], 106 | [0.2294069748907669,-0.6178898109809534,0], 107 | [0.2308506070674853,0.833176763336447,0], 108 | [0.3107049673447761,-0.7031294241975623,0], 109 | [0.34031478475661864,-0.012138888256423407,0], 110 | [0.34217922035506154,0.2244756403730749,0], 111 | [0.3423926936237465,0.4653107903968975,0], 112 | [0.34334794810663893,-0.26205613796288185,0], 113 | [0.3437979313276799,0.7072723805119144,0], 114 | [0.34403597705894734,-0.504596475493174,0], 115 | [0.34639954080359586,0.9503886422993582,0], 116 | [0.3559597645270773,-0.5406594973601286,0], 117 | [0.4055070637667487,0.11290725449862808,0], 118 | [0.42596056730880877,0.17672192071756054,0], 119 | [0.43094416987631035,0.03519700399684334,0], 120 | [0.4371379662259971,0.9912962035058849,0], 121 | [0.4535016905269919,0.34000209393637965,0], 122 | [0.45651796030898684,0.5819947387907527,0], 123 | [0.4578714883369731,-0.13784565001232552,0], 124 | [0.4578714883369731,-0.3786356295061753,0], 125 | [0.4578714883369731,-0.5467321104833336,0], 126 | [0.4594313329039175,0.8241962973462496,0], 127 | [0.47458486342272727,0.1735119899313757,0], 128 | [0.4857284752038646,0.9893199928195792,0], 129 | [0.5698953026643742,0.21429815533860092,0], 130 | [0.5720177491199325,0.6979983060768944,0], 131 | [0.5720269637934009,0.455782631730781,0], 132 | [0.5751860610141559,0.9411766773430504,0], 133 | [0.6847838514685816,0.32995447417557716,0], 134 | [0.685659245448081,0.5716986811151005,0], 135 | [0.6878600166281209,0.8148516439581471,0], 136 | [0.7094069947550997,0.5706032957632623,0], 137 | [0.7647426447118476,0.4115126891994113,0], 138 | [0.7677435567047284,0.7252163735435694,0]], 139 | faces: [ 140 | [32,33,41], 141 | [42,57,41], 142 | [41,40,32], 143 | [40,31,32], 144 | [31,24,32], 145 | [41,49,40], 146 | [67,73,79], 147 | [73,85,79], 148 | [85,88,79], 149 | [41,33,42], 150 | [33,34,42], 151 | [34,43,42], 152 | [32,25,33], 153 | [25,26,33], 154 | [41,57,53], 155 | [57,73,65], 156 | [42,58,57], 157 | [74,73,57], 158 | [32,24,25], 159 | [24,13,25], 160 | [33,26,34], 161 | [26,27,34], 162 | [27,35,34], 163 | [25,14,26], 164 | [14,19,26], 165 | [21,27,26], 166 | [25,13,14], 167 | [14,9,11], 168 | [15,27,20], 169 | [57,58,74], 170 | [58,76,74], 171 | [76,84,74], 172 | [42,43,58], 173 | [74,83,73], 174 | [58,59,76], 175 | [59,75,76], 176 | [75,82,76], 177 | [58,43,59], 178 | [43,45,59], 179 | [45,54,59], 180 | [66,75,59], 181 | [34,35,43], 182 | [43,35,45], 183 | [45,44,50], 184 | [77,75,68], 185 | [73,83,85], 186 | [83,92,85], 187 | [92,94,85], 188 | [74,84,83], 189 | [83,91,92], 190 | [91,102,92], 191 | [102,103,92], 192 | [83,84,91], 193 | [84,90,91], 194 | [90,98,91], 195 | [99,102,91], 196 | [76,82,84], 197 | [84,82,90], 198 | [90,104,100], 199 | [110,102,108], 200 | [85,94,88], 201 | [31,23,24], 202 | [23,12,24], 203 | [12,13,24], 204 | [88,94,96], 205 | [94,107,96], 206 | [107,101,96], 207 | [18,12,23], 208 | [92,103,94], 209 | [94,103,107], 210 | [107,113,109], 211 | [6,12,10], 212 | [14,8,9], 213 | [15,28,27], 214 | [28,35,27], 215 | [15,16,28], 216 | [16,29,28], 217 | [29,37,28], 218 | [37,35,28], 219 | [9,8,5], 220 | [8,4,5], 221 | [14,13,8], 222 | [17,22,29], 223 | [29,16,17], 224 | [30,36,29], 225 | [29,22,30], 226 | [36,37,29], 227 | [4,2,1], 228 | [1,5,4], 229 | [51,48,38], 230 | [38,46,51], 231 | [52,47,39], 232 | [39,48,52], 233 | [3,0,2], 234 | [2,4,3], 235 | [60,51,46], 236 | [46,55,60], 237 | [8,7,4], 238 | [7,3,4], 239 | [51,61,48], 240 | [62,56,47], 241 | [47,52,62], 242 | [48,61,52], 243 | [45,37,44], 244 | [77,86,75], 245 | [86,82,75], 246 | [77,87,86], 247 | [87,95,86], 248 | [95,93,86], 249 | [93,82,86], 250 | [44,37,36], 251 | [89,97,95], 252 | [95,87,89], 253 | [106,105,95], 254 | [95,97,106], 255 | [105,93,95], 256 | [45,35,37], 257 | [70,72,64], 258 | [64,62,70], 259 | [52,61,62], 260 | [71,80,72], 261 | [72,70,71], 262 | [62,61,70], 263 | [90,93,104], 264 | [110,112,102], 265 | [112,103,102], 266 | [110,114,112], 267 | [114,115,112], 268 | [115,111,112], 269 | [111,103,112], 270 | [104,93,105], 271 | [118,117,115], 272 | [115,114,118], 273 | [119,116,115], 274 | [115,117,119], 275 | [116,111,115], 276 | [90,82,93], 277 | [69,78,81], 278 | [81,71,69], 279 | [70,61,71], 280 | [60,63,78], 281 | [78,69,60], 282 | [71,61,69], 283 | [107,111,113], 284 | [6,7,12], 285 | [7,13,12], 286 | [6,3,7], 287 | [8,13,7], 288 | [113,111,116], 289 | [107,103,111], 290 | [69,61,60], 291 | [60,61,51]], 292 | vertexOnSphere: [ 293 | [-0.30367782,-0.677289,0.11108287], 294 | [-0.10928134,-0.677289,-0.30230817], 295 | [-0.28635367,-0.552394,-0.13260342], 296 | [-0.47027499,-0.5,0.17171928], 297 | [-0.3199307,-0.5,-0.14826064], 298 | [-0.16991775,-0.5,-0.46890533], 299 | [-0.70519814,-0.25,0.25722432], 300 | [-0.55485385,-0.25,-0.062755608], 301 | [-0.40543573,-0.25,-0.3831838], 302 | [-0.25542279,-0.25,-0.70382849], 303 | [-0.70519814,-0.000288,0.25722432], 304 | [-0.25542279,-0.000288,-0.70382849], 305 | [-0.78977701,-0.000288,0.022749428], 306 | [-0.64035889,-0.000288,-0.29767876], 307 | [-0.49094077,-0.000288,-0.61810695], 308 | [-0.25542279,-0.25,-0.70382849], 309 | [-0.16991775,-0.5,-0.46890533], 310 | [-0.10928134,-0.677289,-0.30230817], 311 | [-0.70519814,-0.000288,0.25722432], 312 | [-0.25542279,-0.000288,-0.70382849], 313 | [-0.25542279,-0.000288,-0.70382849], 314 | [-0.25542279,-0.000288,-0.70382849], 315 | [0.13425839,-0.552394,-0.28569369], 316 | [-0.70519814,0.25,0.25722432], 317 | [-0.55485385,0.25,-0.062755608], 318 | [-0.40543573,0.25,-0.3831838], 319 | [-0.25542279,0.25,-0.70382849], 320 | [-0.021094459,-0.000288,-0.78911703], 321 | [0.064410576,-0.25,-0.55419387], 322 | [0.14991561,-0.5,-0.31927072], 323 | [0.30282047,-0.677289,-0.10966445], 324 | [-0.47027499,0.5,0.17171928], 325 | [-0.3199307,0.5,-0.14826064], 326 | [-0.16991775,0.5,-0.46890533], 327 | [0.064410576,0.25,-0.55419387], 328 | [0.29933373,-0.000288,-0.63969891], 329 | [0.46941763,-0.5,-0.17030086], 330 | [0.38483877,-0.25,-0.40477575], 331 | [-0.10928134,-0.677289,-0.30230817], 332 | [-0.10928134,-0.677289,-0.30230817], 333 | [-0.23535183,0.75,0.086214247], 334 | [-0.084412718,0.75,-0.23398218], 335 | [0.14991561,0.5,-0.31927072], 336 | [0.38483877,0.25,-0.40477575], 337 | [0.70434079,-0.25,-0.2558059], 338 | [0.61976192,-0.000288,-0.49028079], 339 | [-0.28635367,-0.552394,-0.13260342], 340 | [0.13425839,-0.552394,-0.28569369], 341 | [-0.084412718,-0.75,-0.23398218], 342 | [0.00016708754,0.75,0.00049237032], 343 | [0.70459544,-0.000288,-0.25589858], 344 | [-0.1597166,-0.75,-0.073551584], 345 | [0.075206553,-0.75,-0.15905662], 346 | [0.00016708754,0.75,0.00049237032], 347 | [0.70459544,-0.000288,-0.25589858], 348 | [-0.30367782,-0.677289,0.11108287], 349 | [0.30282047,-0.677289,-0.10966445], 350 | [0.23449448,0.75,-0.084795825], 351 | [0.46941763,0.5,-0.17030086], 352 | [0.70434079,0.25,-0.2558059], 353 | [-0.23535183,-0.75,0.086214247], 354 | [0.00016708754,-0.75,0.00049237032], 355 | [0.23449448,-0.75,-0.084795825], 356 | [-0.30367782,-0.677289,0.11108287], 357 | [0.30282047,-0.677289,-0.10966445], 358 | [0.00016708754,0.75,0.00049237032], 359 | [0.70459544,-0.000288,-0.25589858], 360 | [0.00016708754,0.75,0.00049237032], 361 | [0.70459544,-0.000288,-0.25589858], 362 | [-0.074187757,-0.750268,0.16128203], 363 | [0.1607354,-0.750268,0.075776992], 364 | [0.086545367,-0.750537,0.2357213], 365 | [0.28843668,-0.564556,0.1308701], 366 | [0.086597354,0.75,0.23586413], 367 | [0.3210374,0.498752,0.15016034], 368 | [0.79101573,-0.000288,-0.02134367], 369 | [0.55630627,0.244886,0.063368458], 370 | [0.70434079,-0.25,-0.2558059], 371 | [-0.13306592,-0.55461,0.28727059], 372 | [-0.23535183,0.75,0.086214247], 373 | [0.11116192,-0.680439,0.30335474], 374 | [0.11116192,-0.680439,0.30335474], 375 | [0.64237755,-0.000288,0.29618383], 376 | [0.17183869,0.497268,0.47006278], 377 | [0.40736709,0.239527,0.38201329], 378 | [-0.14892063,0.5,0.32158567], 379 | [0.55661786,-0.258595,0.062210028], 380 | [0.46941763,-0.5,-0.17030086], 381 | [-0.47027499,0.5,0.17171928], 382 | [0.30282047,-0.677289,-0.10966445], 383 | [0.49330609,-0.000288,0.61532483], 384 | [0.25612956,0.234685,0.70165003], 385 | [-0.062958157,0.244886,0.55480672], 386 | [0.40780106,-0.265315,0.38040168], 387 | [-0.38384378,0.25,0.4070907], 388 | [0.32229602,-0.515315,0.14547852], 389 | [-0.70519814,0.25,0.25722432], 390 | [0.28843668,-0.564556,0.1308701], 391 | [0.25626807,-0.000288,0.70203061], 392 | [0.25626807,-0.000288,0.70203061], 393 | [0.25626807,-0.000288,0.70203061], 394 | [-0.70519814,-0.000288,0.25722432], 395 | [0.022777474,-0.000288,0.78887229], 396 | [-0.29822703,-0.000288,0.64159861], 397 | [0.25640659,-0.262444,0.70241118], 398 | [0.17118338,-0.509522,0.46826233], 399 | [0.11116192,-0.680439,0.30335474], 400 | [-0.61876694,-0.000288,0.49259574], 401 | [0.25626807,-0.000288,0.70203061], 402 | [-0.70519814,-0.000288,0.25722432], 403 | [0.25640659,-0.262444,0.70241118], 404 | [-0.38384378,-0.25,0.4070907], 405 | [-0.062646572,-0.258595,0.55364829], 406 | [-0.70519814,-0.25,0.25722432], 407 | [0.17118338,-0.509522,0.46826233], 408 | [-0.14867689,-0.502732,0.32067647], 409 | [-0.47027499,-0.5,0.17171928], 410 | [-0.13306592,-0.55461,0.28727059], 411 | [0.11116192,-0.680439,0.30335474], 412 | [-0.30367782,-0.677289,0.11108287]], 413 | }; -------------------------------------------------------------------------------- /svg/metro-kiev.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | Карта метро Киева в 2025 году / SVG векторная карта 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 26 | 27 |
24 |
25 |
28 | 308 | 309 | 310 | --------------------------------------------------------------------------------