tag:blogger.com,1999:blog-13055891759771102882024-03-13T09:03:19.838-07:00Карты меняющие привычный взгляд на мирHTML5 Canvas Карта-Навигатор с проекциями. Карты, схемы, Proj4js. Блог проекта <a href="http://dbcartajs.appspot.com">dbcartajs</a>egaxegaxhttp://www.blogger.com/profile/04132504793385756437noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-1305589175977110288.post-58286259454477540972014-02-08T23:22:00.001-08:002014-02-09T04:28:12.357-08:00Схема метро Тбилиси<div id="cont-tbilisimetro">
Схема метро столицы Грузии Тбилиси. Позаимствована с блога <a href="http://za7gorami.ru/metro-tbilisi">za7gorami.ru</a>. <br/>
За последние годы город сильно преобразился. Построено много новых зданий, например суперсовременное здание МВД, и станций метро, последняя из которых - <a id="tbilisimetro-href1" href="#cont-tbilisimetro">"Сахелмципо Университети"</a> - будет открыто в этом году. <br/>
Все станции <select id="tbilisimetro-stationlist"><option value="">Выберите...</option></select>.<br/>
</div>
<script type="text/javascript">
// tbilisimetro.html func
allmaps.push(function(){
var MLINES = [
['r1', '1', [
[32,60],[20,50],[14,37],[7,21],
[-1,8],[2,0],[12,-8],[12,-18],[11,-32],
[5,-40],[11,-48],[28,-48],[36,-54],
[46,-54],[56,-56],[69,-49]
]
],
['r2', '1', [
[-68,-9],[-51,-18],[-30,-15],[-13,-13],
[-5,-22],[3,-15],[12,-18]
]
]
];
var MSTATIONS = [
['s1','AKHMETELI THEATRE',[[32,60]],'АХМЕТЕЛИС ТЕАТРИ'],
['s1_1','SARAJISHVILI',[[20,50]],'САРАДЖИШВИЛИ'],
['s1_1','GURAMISHVILI',[[14,37]],'ГУРАМИШВИЛИ'],
['s1_1','GRMAGELE',[[7,21]],'ГРМАГЕЛЕ'],
['s1','DIDUBE',[[-1,8]],'ДИДУБЕ'],
['s1_1','GOTSIRIDZE',[[2,0]],'ГОЦИРИДЗЕ'],
['s1_1','NADZALADEVI',[[12,-8]],'НАДЗАЛАДЕВИ'],
['s1_5','STATION SQUARE I',[[12,-18]],'САДГУРИС МОЭДАНИ I'],
['s1_1','MARDJANISHVILI',[[11,-32]],'МАРДЖАНИШВИЛИ'],
['s1','RUSTAVELI',[[5,-40]],'РУСТАВЕЛИ'],
['s1','LIBERTY SQUARE',[[11,-48]],'ТАВИСУПЛЕБИС МОЭДАНИ'],
['s1_2','AVLABARI',[[28,-48]],'АВЛАБАРИ'],
['s1_3','300 ARAGVELI',[[36,-54]],'САМАСИ АРАГВЕЛИ'],
['s1_2','ISANI',[[46,-54]],'ИСАНИ'],
['s1_4','SAMGORI',[[56,-56]],'САМГОРИ'],
['s1_2','VARKETILI',[[69,-49]],'ВАРКЕТИЛИ'],
//
['s2_3','STATE UNIVERSITY',[[-68,-9]],'САХЕЛМЦИПО УНИВЕРСИТЕТИ'],
['s2_1','VAZHA-PSHAVELA',[[-51,-18]],'ВАЖНА-ПШАВЕЛА'],
['s2_1','DELISI',[[-30,-15]],'ДЕЛИСИ'],
['s2_2','MEDICAL UNIVERSITY',[[-13,-13]],'САМЕДИЦИНО УНИВЕРСИТЕТИ'],
['s2_1','TECHNICAL UNIVERSITY',[[-5,-22]],'ТЕКНИКУРИ УНИВЕРСИТЕТИ'],
['s2_3','TSERETELI',[[3,-15]],'ЦЕРЕТЕЛИ'],
['s2','STATION SQUARE II',[[12,-18]],'САДГУРИС МОЭДАНИ II'],
//
['s1s','AKHMETELI THEATRE',[[32,60]],'',null,1],
['s1s','SARAJISHVILI',[[20,50]],'',null,1],
['s1s','GURAMISHVILI',[[14,37]],'',null,1],
['s1s','GRMAGELE',[[7,21]],'',null,1],
['s1s','DIDUBE',[[-1,8]],'',null,1],
['s1s','GOTSIRIDZE',[[2,0]],'',null,1],
['s1s','NADZALADEVI',[[12,-8]],'',null,1],
['s1s','STATION SQUARE I',[[12,-18]],'',null,1],
['s1s','MARDJANISHVILI',[[11,-32]],'',null,1],
['s1s','RUSTAVELI',[[5,-40]],'',null,1],
['s1s','LIBERTY SQUARE',[[11,-48]],'',null,1],
['s1s','AVLABARI',[[28,-48]],'',null,1],
['s1s','300 ARAGVELI',[[36,-54]],'',null,1],
['s1s','ISANI',[[46,-54]],'',null,1],
['s1s','SAMGORI',[[56,-56]],'',null,1],
['s1s','VARKETILI',[[69,-49]],'',null,1],
//
['s2s','STATE UNIVERSITY',[[-68,-9]],'',null,1],
['s2s','VAZHA-PSHAVELA',[[-51,-18]],'',null,1],
['s2s','DELISI',[[-30,-15]],'',null,1],
['s2s','MEDICAL UNIVERSITY',[[-13,-13]],'',null,1],
['s2s','TECHNICAL UNIVERSITY',[[-5,-22]],'',null,1],
['s2s','TSERETELI',[[3,-15]],'',null,1],
['s2s','STATION SQUARE II',[[12,-18]],'',null,1],
//
];
// -------------------------------------------
var dw = new dbCarta({
id: 'cont-tbilisimetro',
height: 600,
scalebg: 'rgba(200,100,50,0.2)'
});
dw.style.backgroundColor = 'white';
dw.style.border = '1px dashed lightgray';
// define new layers
var route = function(o){ return dw.extend({cls: 'Line', width: 5, anchor: ['start', 'middle'], labelscale: 1}, o||{}) },
station = function(o){ return dw.extend({cls: 'Dot', size: 8, width: 6, bg: dw.style.backgroundColor, labelscale: 1}, o||{}) },
redst = function(o){ return station(dw.extend({fg: 'rgb(193,41,22)'}, o||{})) },
bluest = function(o){ return station(dw.extend({fg: 'rgb(25,74,103)'}, o||{})) };
// lines
dw.extend(dw.mopt, {
'r1': route({fg: 'rgb(236,66,45)'}),
'r2': route({fg: 'rgb(180,215,233)'})
});
// stations
dw.extend(dw.mopt, {
's1': redst({anchor: ['end', 'middle']}),
's1_1': redst({anchor: ['start', 'middle']}),
's1_2': redst({anchor: ['center', 'bottom']}),
's1_3': redst({anchor: ['center', 'top']}),
's1_4': redst({anchor: ['start', 'top']}),
's1_5': redst({anchor: ['start', 'bottom']}),
's1s': redst({bg: redst().fg, size: 5, width: 1}),
's2': bluest({anchor: ['start', 'top']}),
's2_1': bluest({anchor: ['center', 'top']}),
's2_2': bluest({anchor: ['end', 'bottom']}),
's2_3': bluest({anchor: ['center', 'bottom']}),
's2s': bluest({bg: bluest().fg, size: 5, width: 1})
});
dw.loadCarta(MLINES);
dw.loadCarta(MSTATIONS);
dw.scaleCarta(1.7);
dw.draw();
// find href
var getstation = function(fkey){
if (fkey in dw.mflood) {
var centerofpts = dw.mflood[fkey]['pts'];
dw.centerCarta(centerofpts[0][0] + dw.m.offset[0], centerofpts[0][1] + dw.m.offset[1]);
dw.draw();
drawcrosshair();
}
};
// station list
var findstation = function(ev){
var stationlist = ev.target,
opt = stationlist.options[stationlist.selectedIndex];
if (opt) {
var centerofpts = dw.mflood[opt.value]['pts'];
dw.centerCarta(centerofpts[0][0] + dw.m.offset[0], centerofpts[0][1] + dw.m.offset[1]);
dw.draw();
drawcrosshair();
}
};
var drawcrosshair = function(){
var ctx = dw.getContext('2d');
ctx.save();
ctx.setTransform(1, 0, 0, 1, 0, 0);
ctx.beginPath();
ctx.moveTo(dw.width/2.0, 0);
ctx.lineTo(dw.width/2.0, dw.height);
ctx.moveTo(0, dw.height/2.0);
ctx.lineTo(dw.width, dw.height/2.0);
ctx.lineWidth = 15;
ctx.strokeStyle = 'rgba(100,100,200,0.2)';
ctx.stroke();
ctx.restore();
}
var fillstation = function(ev){
var stationlist = ev.target;
if (stationlist.length < MSTATIONS.length){
MSTATIONS.sort(function(a,b){return (a[3]>b[3]) ? 1 : -1});
for (var i in MSTATIONS) {
if (!MSTATIONS[i][3]) continue;
var el = document.createElement('option');
el.value = MSTATIONS[i][0] + '_' + MSTATIONS[i][1];
el.appendChild(document.createTextNode(MSTATIONS[i][3]));
stationlist.appendChild(el);
}
}
}
var stationlist = document.getElementById('tbilisimetro-stationlist');
stationlist.onmousedown = fillstation;
stationlist.onchange = findstation;
// a href
var href1 = document.getElementById('tbilisimetro-href1');
href1.onclick = function(){ getstation('s2s_STATE UNIVERSITY'); };
});
</script>egaxegaxhttp://www.blogger.com/profile/04132504793385756437noreply@blogger.com0tag:blogger.com,1999:blog-1305589175977110288.post-6546064757676503442014-02-02T02:58:00.003-08:002015-12-21T11:58:27.578-08:00Карта метро Новосибирска<div id="cont-nsbmetro">
Карта метро Новосибирска с выбором станций. Сделана по данным с карт <a href="http://www.bing.com/maps">Bing.com</a>. <br/>
Перемещайтесь по карте или по станциям <select id="nsbmetro-stationlist"><option value="">Выберите...</option></select>. <br/>
Новосибирск - 3-й в списке крупнейших городов России с населением около 1,5 миллионов жителей.
<br/>
</div>
<script type="text/javascript">
// nsbmetro.html func
allmaps.push(function() {
var MLINES = [
['ob_river', '1', [
[-103,8],[10,-70]
], 'река Обь', [-61,-21]
],
['r1', '1', [
[-50,20],
[-40,27,'Q'],[-37,30,'Q'],[-34,30,'Q'],
[15,30,'Q'],[18,30,'Q'],[22,28,'Q'],
[58,12]
]
],
['r5', '1', [
[-18,70],
[-18,-16,'Q'],[-18,-21,'Q'],[-21,-23,'Q'],
[-73,-60]
]
],
//
['interchange', 'Sibirskaya-Krasniy_Prospekt', [
[-14,30],[-18,30]
]
],
['interchange_d', 'Sibirskaya-Krasniy_Prospekt', [
[-14,30],[-18,30]
]
]
];
var MSTATIONS = [
['s1','Ploschad_Garina_Mihaylovskogo',[[-50,20]],'Площадь Гарина-Михайловского',null,1],
['s1_1','Sibirskaya',[[-14,30]],'Сибирская',null,1],
['s1_1','Marshala_Pokryshkina',[[8,30]],'Маршала Покрышкина',null,1],
['s1_2','Berezovaya_Roscha',[[22,28]],'Березовая Роща',null,1],
['s1_2','Zolotaya_Niva',[[58,12]],'Золотая Нива',null,1],
//
['s5','Zaeltsovskaya',[[-18,70]],'Заельцовская',null,1],
['s5','Gagarinskaya',[[-18,66]],'Гагаринская',null,1],
['s5_1','Krasniy_Prospekt',[[-18,30]],'Красный проспект',null,1],
['s5','Ploschad_Lenina',[[-18,-2]],'Площадь Ленина',null,1],
['s5','Oktyabrskaya',[[-18,-6]],'Октябрьская',null,1],
['s5_2','Rechnoy_Vokzal',[[-28,-27.98]],'Речной вокзал',null,1],
['s5','Studencheskaya',[[-60,-50.75]],'Студенческая',null,1],
['s5','Ploschad_Marksa',[[-73,-60]],'Площадь Маркса',null,1]
];
// -------------------------------------------
var dw = new dbCarta({
id: 'cont-nsbmetro',
height: 600,
scalebg: 'rgba(100,200,100,0.2)'
});
dw.style.backgroundColor = 'white';
dw.style.border = '1px dashed lightgray';
// define new layers
var route = function(o){ return dw.extend({cls: 'Line', width: 5, anchor: ['start', 'middle'], labelscale: 1}, o||{}) },
river = function(o){ return route(dw.extend({fg: "#E2FCFC", join: 'round', cap: 'round', labelcolor: '#5555FF', labelscale: 0}, o||{})) },
interchange = function(o){ return route(dw.extend({fg: '#000000', join: 'round', cap: 'round', width: 8}, o||{})) },
interchange_d = function(o) { return interchange(dw.extend({fg: '#FFFFFF', width: 7}, o||{})) },
station = function(o){ return dw.extend({cls: 'Dot', bg: 'white', size: 3, width: 5, labelscale: 1}, o||{}) };
// lines
dw.extend(dw.mopt, {
'ob_river': river({width: 70, rotate: 38}),
'r1': route({fg: '#44B85C'}),
'r5': route({fg: '#ED1B35'})
});
// interchanges
dw.extend(dw.mopt, {
'interchange': interchange(),
'interchange_d': interchange_d()
});
// stations
dw.extend(dw.mopt, {
's1': station({fg: dw.mopt['r1'].fg, anchor: ['end', 'middle']}),
's1_1': station({fg: dw.mopt['r1'].fg, anchor: ['start', 'bottom']}),
's1_2': station({fg: dw.mopt['r1'].fg, anchor: ['start', 'middle']}),
's5': station({fg: dw.mopt['r5'].fg, anchor: ['end', 'middle']}),
's5_1': station({fg: dw.mopt['r5'].fg, anchor: ['end', 'bottom']}),
's5_2': station({fg: dw.mopt['r5'].fg, anchor: ['start', 'middle']})
});
dw.loadCarta(MLINES);
dw.loadCarta(MSTATIONS);
dw.scaleCarta(1.6);
dw.draw();
// station list
var findstation = function(ev){
var stationlist = ev.target,
opt = stationlist.options[stationlist.selectedIndex];
if (opt) {
var centerofpts = dw.mflood[opt.value]['pts'];
dw.centerCarta(centerofpts[0][0] + dw.m.offset[0], centerofpts[0][1] + dw.m.offset[1]);
dw.draw();
drawcrosshair();
}
};
var drawcrosshair = function(){
var ctx = dw.getContext('2d');
ctx.save();
ctx.setTransform(1, 0, 0, 1, 0, 0);
ctx.beginPath();
ctx.moveTo(dw.width/2.0, 0);
ctx.lineTo(dw.width/2.0, dw.height);
ctx.moveTo(0, dw.height/2.0);
ctx.lineTo(dw.width, dw.height/2.0);
ctx.lineWidth = 15;
ctx.strokeStyle = 'rgba(100,100,200,0.2)';
ctx.stroke();
ctx.restore();
}
var fillstation = function(ev){
var stationlist = ev.target;
if (stationlist.length < MSTATIONS.length){
MSTATIONS.sort(function(a,b){return (a[3]>b[3]) ? 1 : -1});
for (var i in MSTATIONS) {
if (!MSTATIONS[i][3]) continue;
var el = document.createElement('option');
el.value = MSTATIONS[i][0] + '_' + MSTATIONS[i][1];
el.appendChild(document.createTextNode(MSTATIONS[i][3]));
stationlist.appendChild(el);
}
}
}
var stationlist = document.getElementById('nsbmetro-stationlist');
stationlist.onmousedown = fillstation;
stationlist.onchange = findstation;
});
</script>egaxegaxhttp://www.blogger.com/profile/04132504793385756437noreply@blogger.com2tag:blogger.com,1999:blog-1305589175977110288.post-59445074518691251192014-02-01T23:57:00.000-08:002014-02-09T00:30:44.178-08:00Карта метро Киева<div id="cont-kievmetro">
Карта метро Киева с выбором станций. Сделана по оригиналу с <a href="http://www.tutu.ru/metro/kiev/">tutu.ru</a>. <br/>
Перемещайтесь по карте или по станциям <select id="kievmetro-stationlist"><option value="">Выберите...</option></select>. <br/>
По численности населения 5-милионный Киев сопоставим с нашим Санкт-Петербургом, но в размерах город меньше. Видно это и по количеству станций метро: 50 против 70.
<br/>
</div>
<script type="text/javascript">
// kievmetro.html func
allmaps.push(function() {
var MLINES = [
['dnepr_river', '1', [
[26,80],[26,0],[26,-80]
], 'река Днепр', [26,42]
],
['r1', '1', [
[-40,44],
[-40,21,'Q'],[-40,18,'Q'],[-37,15,'Q'],
[5,-25,'Q'],[8,-28,'Q'],[8,-31,'Q'],
[8,-57,'Q'],[8,-60,'Q'],[11,-60,'Q'],
[44,-60,'Q'],[47,-60,'Q'],[47,-57,'Q'],
[47,-28]
]
],
['r3', '1', [
[-10,60],[-10,10],[-10,-68]
]
],
['r5', '1', [
[-60,70],
[-60,13,'Q'],[-60,10,'Q'],[-57,10,'Q'],
[5,10,'Q'],[8,10,'Q'],[8,7,'Q'],
[8,-10,'Q'],[8,-13,'Q'],[11,-13,'Q'],
[44,-13,'Q'],[47,-13,'Q'],[47,-10,'Q'],
[47,10]
]
],
//
['interchange', 'Zolotye_Vorota-Teatralnaya', [
[-36,14],[-31.76,10]
]
],
['interchange_d', 'Zolotye_Vorota-Teatralnaya', [
[-36,14],[-31.76,10]
]
],
['interchange', 'Ploschad_Nezavisimosti-Kreschatik', [
[-10,14],[-10,10]
]
],
['interchange_d', 'Ploschad_Nezavisimosti-Kreschatik', [
[-10,14],[-10,10]
]
],
['interchange', 'Polschad_Lva_Tolstogo-Dvorets_Sporta', [
[-10,-10.72],[-5.92,-14.6]
]
],
['interchange_d', 'Polschad_Lva_Tolstogo-Dvorets_Sporta', [
[-10,-10.72],[-5.92,-14.6]
]
]
];
var MSTATIONS = [
['s1','Syrets',[[-40,44]],'Сырец',null,1],
['s1','Dorogozhichi',[[-40,40]],'Дорогожичи',null,1],
['s1','Lukyanovskaya',[[-40,36]],'Лукьяновская',null,1],
['s1','Zolotye_Vorota',[[-36,14]],'Золотые ворота',null,1],
['s1','Dvorets_Sporta',[[-5.92,-14.6]],'Дворец спорта',null,1],
['s1','Klovskaya',[[8,-40]],'Кловская',null,1],
['s1','Pecherskaya',[[8,-44]],'Печерская',null,1],
['s1','Druzhby_Narodov',[[8,-48]],'Дружбы народов',null,1],
['s1','Vidubichi',[[8,-52]],'Выдубичи',null,1],
['s1','Slavutich',[[47,-52]],'Славутич',null,1],
['s1','Osokorki',[[47,-48]],'Осокорки',null,1],
['s1','Poznyaki',[[47,-44]],'Позняки',null,1],
['s1','Harkovskaya',[[47,-40]],'Харьковская',null,1],
['s1','Virlitsa',[[47,-36]],'Вырлица',null,1],
['s1','Borispolskaya',[[47,-32]],'Бориспольская',null,1],
['s1','Krasniy_Hutor',[[47,-28]],'Красный Хутор',null,1],
//
['s3','Geroev Dnepra',[[-10,60]],'Героев Днепра',null,1],
['s3','Minskaya',[[-10,56]],'Минская',null,1],
['s3','Obolon',[[-10,52]],'Оболонь',null,1],
['s3','Petrovka',[[-10,48]],'Петровка',null,1],
['s3','Tarasa_Shevchenko',[[-10,44]],'Тараса Шевченко',null,1],
['s3','Konrtaktovaya_Ploschad',[[-10,40]],'Контрактовая площадь',null,1],
['s3','Pochtovaya_Ploschad',[[-10,36]],'Почтовая площадь',null,1],
['s3','Ploschad_Nezavisimosti',[[-10,14]],'Площадь Независимости',null,1],
['s3_1','Polschad_Lva_Tolstogo',[[-10,-10.72]],'Площадь Льва Толстого',null,1],
['s3_1','Olimpiiskaya',[[-10,-40]],'Олимпийская',null,1],
['s3_1','Dvorets_Ukraina',[[-10,-44]],'Дворец "Украина"',null,1],
['s3_1','Lybedskaya',[[-10,-48]],'Лыбедская',null,1],
['s3_1','Demeevskaya',[[-10,-52]],'Демеевская',null,1],
['s3_1','Goloseevskaya',[[-10,-56]],'Голосеевская',null,1],
['s3_1','Vasilkovskaya',[[-10,-60]],'Васильковская',null,1],
['s3_1','Vystavochniy_Tsentr',[[-10,-64]],'Выставочный Центр',null,1],
['s3_1','Ippodrom',[[-10,-68]],'Ипподром',null,1],
//
['s5','Academgorodok',[[-60,70]],'Академгородок',null,1],
['s5','Zhitomirskaya',[[-60,66]],'Житомирская',null,1],
['s5','Nivki',[[-60,62]],'Нивки',null,1],
['s5','Beresteiskaya',[[-60,58]],'Берестейская',null,1],
['s5','Shulyavskaya',[[-60,54]],'Шулявская',null,1],
['s5','Politehnicheskiy_Institut',[[-60,50]],'Политехнический интститут',null,1],
['s5','Vokzalnaya',[[-60,46]],'Вокзальная',null,1],
['s5','Universitet',[[-60,42]],'Университет',null,1],
['s5_2','Teatralnaya',[[-31.76,10]],'Театральная',null,1],
['s5_2','Kreschatik',[[-10,10]],'Крещатик',null,1],
['s5_1','Arsenalnaya',[[8,2]],'Арсенальная',null,1],
['s5_1','Dnepr',[[8,-2]],'Днепр',null,1],
['s5_3','Gidropark',[[26,-13]],'Гидропарк',null,1],
['s5_1','Levoberezhnaya',[[47,-2]],'Левобережная',null,1],
['s5_1','Darnitsa',[[47,2]],'Дарница',null,1],
['s5_1','Chernigovskaya',[[47,6]],'Черниговская',null,1],
['s5_1','Lesnaya',[[47,10]],'Лесная',null,1]
];
// -------------------------------------------
var dw = new dbCarta({
id: 'cont-kievmetro',
height: 600,
scalebg: 'rgba(100,200,100,0.2)'
});
dw.style.backgroundColor = 'white';
dw.style.border = '1px dashed lightgray';
// define new layers
var route = function(o){ return dw.extend({cls: 'Line', width: 5, anchor: ['start', 'middle'], labelscale: 1}, o||{}) },
river = function(o){ return route(dw.extend({fg: "#E2FCFC", join: 'round', cap: 'round', labelcolor: '#5555FF', labelscale: 0}, o||{})) },
interchange = function(o){ return route(dw.extend({fg: '#000000', join: 'round', cap: 'round', width: 8}, o||{})) },
interchange_d = function(o) { return interchange(dw.extend({fg: '#FFFFFF', width: 7}, o||{})) },
station = function(o){ return dw.extend({cls: 'Dot', bg: 'white', size: 3, width: 5, labelscale: 1}, o||{}) };
// lines
dw.extend(dw.mopt, {
'dnepr_river': river({width: 80, rotate: 90}),
'r1': route({fg: '#44B85C'}),
'r3': route({fg: '#0078BF'}),
'r5': route({fg: '#ED1B35'})
});
// interchanges
dw.extend(dw.mopt, {
'interchange': interchange(),
'interchange_d': interchange_d()
});
// stations
dw.extend(dw.mopt, {
's1': station({fg: dw.mopt['r1'].fg, anchor: ['start', 'middle']}),
's3': station({fg: dw.mopt['r3'].fg, anchor: ['start', 'middle']}),
's3_1': station({fg: dw.mopt['r3'].fg, anchor: ['end', 'middle']}),
's5': station({fg: dw.mopt['r5'].fg, anchor: ['end', 'middle']}),
's5_1': station({fg: dw.mopt['r5'].fg, anchor: ['start', 'middle']}),
's5_2': station({fg: dw.mopt['r5'].fg, anchor: ['end', 'top']}),
's5_3': station({fg: dw.mopt['r5'].fg, anchor: ['center', 'bottom']})
});
dw.loadCarta(MLINES);
dw.loadCarta(MSTATIONS);
dw.scaleCarta(1.6);
dw.draw();
// station list
var findstation = function(ev){
var stationlist = ev.target,
opt = stationlist.options[stationlist.selectedIndex];
if (opt) {
var centerofpts = dw.mflood[opt.value]['pts'];
dw.centerCarta(centerofpts[0][0] + dw.m.offset[0], centerofpts[0][1] + dw.m.offset[1]);
dw.draw();
drawcrosshair();
}
};
var drawcrosshair = function(){
var ctx = dw.getContext('2d');
ctx.save();
ctx.setTransform(1, 0, 0, 1, 0, 0);
ctx.beginPath();
ctx.moveTo(dw.width/2.0, 0);
ctx.lineTo(dw.width/2.0, dw.height);
ctx.moveTo(0, dw.height/2.0);
ctx.lineTo(dw.width, dw.height/2.0);
ctx.lineWidth = 15;
ctx.strokeStyle = 'rgba(100,100,200,0.2)';
ctx.stroke();
ctx.restore();
}
var fillstation = function(ev){
var stationlist = ev.target;
if (stationlist.length < MSTATIONS.length){
MSTATIONS.sort(function(a,b){return (a[3]>b[3]) ? 1 : -1});
for (var i in MSTATIONS) {
if (!MSTATIONS[i][3]) continue;
var el = document.createElement('option');
el.value = MSTATIONS[i][0] + '_' + MSTATIONS[i][1];
el.appendChild(document.createTextNode(MSTATIONS[i][3]));
stationlist.appendChild(el);
}
}
}
var stationlist = document.getElementById('kievmetro-stationlist');
stationlist.onmousedown = fillstation;
stationlist.onchange = findstation;
});
</script>egaxegaxhttp://www.blogger.com/profile/04132504793385756437noreply@blogger.com0tag:blogger.com,1999:blog-1305589175977110288.post-25297163395309737742014-01-26T02:48:00.000-08:002014-02-09T00:30:15.502-08:00Карта метро Санкт-Петербурга<div id="cont-spbmetro">
Карта метро Санкт-Петербурга с выбором станций. За основу была взята картинка с сайта <a href="http://www.tutu.ru/metro/show/view_86/30957885/">tutu.ru</a>. <br/>
Перемещайтесь по карте тасканием мышью или по списку станций <select id="spbmetro-stationlist"><option value="">Выберите...</option></select>. <br/>
В списке чуть меньше 70 станций. Для сравнения - в Москве их свыше 270.
<br/>
</div>
<script type="text/javascript">
// spbmetro.html func
allmaps.push(function() {
/* List with coords of Saint-Petersburg Metro lines and stations
[[ftype, ftag, coords, label, centerof, ismap],...]
Three points with coords and 'Q' literal implements to bezierCurveTo (...) method. */
var MLINES = [
['neva_river1', '1', [
[-103,-17.5,'Q'],[-101,-17.5,'Q'],[-99,-15.5,'Q'],
[-70,28,'Q'],[-69,31,'Q'],[-65,31,'Q']
], 'река Большая Нева', [-93,-5]
],
['neva_river2', '1', [
[-65,31],
[55,30,'Q'],[59,30,'Q'],[59,26,'Q'],
[58,8,'Q'],[57,5,'Q'],[57,2,'Q'],
[61,-61]
], 'река Нева', [-20,30]
],
['neva_river3', '1', [
[-100,63],[-67.7,30.5]
], 'река Малая Нева', [-100,62]
],
['r1', '1', [
[-80,40],
[-80,35,'Q'],[-80,31,'Q'],[-77,28,'Q'],
[-70,20,'Q'],[-67,16,'Q'],[-64,16,'Q'],
[50,16,'Q'],[53,16,'Q'],[53,13,'Q'],
[53,-60]
]
],
['r2', '1', [
[-60,70],
[-60,30,'Q'],[-60,26,'Q'],[-57,23,'Q'],
[10,-40,'Q'],[12,-42,'Q'],[12,-46,'Q'],
[12,-62]
]
],
['r3', '1', [
[-30,70],[-30,0],[-30,-70]
]
],
['r4', '1', [
[-27,-5.21],
[56,-5.21,'Q'],[58,-5.21,'Q'],[60,-7.21,'Q'],
[60,-7.21,'Q'],[62,-9.21,'Q'],[62,-11.26,'Q'],
[62,-24]
]
],
['r5', '1', [
[20,70],
[20,34,'Q'],[20,31,'Q'],[17,28,'Q'],
[-55,-42,'Q'],[-58,-45,'Q'],[-58,-48,'Q'],
[-58,-70]
]
],
//
['interchange', 'Nevskiy_Prospekt-Gostiniy_Dvor', [
[-30,22],[-30,16]
]
],
['interchange_d', 'Nevskiy_Prospekt-Gostiniy_Dvor', [
[-30,22],[-30,16]
]
],
['interchange', 'Mayakovskaya-Ploschad_Vosstaniya', [
[-1,16],[2,13.42]
]
],
['interchange_d', 'Mayakovskaya-Ploschad_Vosstaniya', [
[-1,16],[2,13.42]
]
],
['interchange', 'Ploschad_Alexandra_Nevskogo', [
[53,-1.21],[53,-5.21]
]
],
['interchange_d', 'Ploschad_Alexandra_Nevskogo', [
[53,-1.21],[53,-5.21]
]
],
['interchange', 'Sadovaya-Sennaya_Ploschad-Spasskaya', [
[-33,0.44],[-30,-2.38],[-27,-5.21]
]
],
['interchange_d', 'Sadovaya-Sennaya_Ploschad-Spasskaya', [
[-33,0.44],[-30,-2.38],[-27,-5.21]
]
],
['interchange', 'Pushkinskaya-Zvenigorodskaya', [
[-24.9,-12.73],[-19,-12.73]
]
],
['interchange_d', 'Pushkinskaya-Zvenigorodskaya', [
[-24.9,-12.73],[-19,-12.73]
]
],
['interchange', 'Dostoevskaya-Vladimirskaya', [
[-22.7,-5.21],[-20,-7.97]
]
],
['interchange_d', 'Dostoevskaya-Vladimirskaya', [
[-22.7,-5.21],[-20,-7.97]
]
],
['interchange', 'Tehnologicheskiy_Institut', [
[-30,-17.68],[-33,-20.6]
]
],
['interchange_d', 'Tehnologicheskiy_Institut', [
[-30,-17.68],[-33,-20.6]
]
],
//
['r5', 'r5_legend', [
[-70,-90],[-60,-90]
], 'Кировско-Выборгская линия (красная)', [-60,-90]
],
['r3', 'r3_legend', [
[-70,-94],[-60,-94]
], 'Московско-Петроградская линия (синяя)', [-60,-94]
],
['r1', 'r1_legend', [
[-70,-98],[-60,-98]
], 'Невско-Василеостровская линия (зеленая)', [-60,-98]
],
['r4', 'r4_legend', [
[7,-90],[17,-90]
], 'Правобережная линия (желтая)', [17,-90]
],
['r2', 'r2_legend', [
[7,-94],[17,-94]
], 'Фрунзенская линия (фиолетовая)', [17,-94]
]
];
var MSTATIONS = [
['s1','Primorskaya',[[-80,40]],'Приморская',null,1],
['s1','Vasileostrovskaya',[[-80,36]],'Василеостровская',null,1],
['s1_1','Gostiniy_Dvor',[[-30,16]],'Гостиный двор',null,1],
['s1_2','Mayakovskaya',[[-1,16]],'Маяковская',null,1],
['s1_3','Ploschad_Alexandra_Nevskogo',[[53,-1.21]],'Площадь Александра Невского',null,1],
['s1_3','Elizarovskaya',[[53,-44]],'Елизаровская',null,1],
['s1_3','Lomonosovskaya',[[53,-48]],'Ломоносовкая',null,1],
['s1_3','Proletarskaya',[[53,-52]],'Пролетарская',null,1],
['s1_3','Obukhovo',[[53,-56]],'Обухово',null,1],
['s1_3','Rybatskoe',[[53,-60]],'Рыбацкое',null,1],
//
['s2','Komendantskiy_Prospekt',[[-60,70]],'Комендантский проспект',null,1],
['s2','Staraya_Derevnya',[[-60,66]],'Старая деревня',null,1],
['s2','Krestovskiy_Ostrov',[[-60,62]],'Крестовский остров',null,1],
['s2','Chkalovskaya',[[-60,58]],'Чкаловская',null,1],
['s2','Sportivnaya',[[-60,54]],'Спортивная',null,1],
['s2_1','Admiralteyskaya',[[-58.73,25.36]],'Адмиралтейская',null,1],
['s2','Sadovaya',[[-33,0.44]],'Садовая',null,1],
['s2_1','Zvenigorodskaya',[[-19,-12.73]],'Звенигородская',null,1],
['s2_1','Obvodniy_Kanal',[[12,-50]],'Обводной канал',null,1],
['s2_1','Volkovskaya',[[12,-54]],'Волковская',null,1],
['s2_1','Bukharestskaya',[[12,-58]],'Бухарестская',null,1],
['s2_1','Mezhdunrodnaya',[[12,-62]],'Международная',null,1],
//
['s3','Parnas',[[-30,70]],'Парнас',null,1],
['s3','Prospekt_Prosvescheniya',[[-30,66]],'Проспект Просвещения',null,1],
['s3','Ozerki',[[-30,62]],'Озерки',null,1],
['s3','Udelnaya',[[-30,58]],'Удельная',null,1],
['s3','Pionerskaya',[[-30,54]],'Пионерская',null,1],
['s3','Chernaya_Rechka',[[-30,50]],'Черная речка',null,1],
['s3','Petrogradskaya',[[-30,46]],'Петроградская',null,1],
['s3','Gorkovskaya',[[-30,42]],'Горьковская',null,1],
['s3','Nevskiy_Prospekt',[[-30,22]],'Невский проспект',null,1],
['s3_1','Sennaya_Ploschad',[[-30,-2.38]],'Сенная площадь',null,1],
['s3_1','Tehnologicheskiy_Institut',[[-30,-17.68]],'Технологический институт',null,1],
['s3','Frunzenskaya',[[-30,-46]],'Фрунзенская',null,1],
['s3','Moskovskie_Vorota',[[-30,-50]],'Московские ворота',null,1],
['s3','Elektrosila',[[-30,-54]],'Электросила',null,1],
['s3','Park_Pobedy',[[-30,-58]],'Парк Победы',null,1],
['s3','Moskovskaya',[[-30,-62]],'Московская',null,1],
['s3','Zvezdnaya',[[-30,-66]],'Звездная',null,1],
['s3','Kupchino',[[-30,-70]],'Купчино',null,1],
//
['s4','Spasskaya',[[-27,-5.21]],'Спасская',null,1],
['s4_1','Dostoevskaya',[[-22.7,-5.21]],'Достоевская',null,1],
['s4_1','Ligovskiy_Prospekt',[[3,-5.21]],'Лиговский проспект',null,1],
['s4_2','Ploschad_Alexandra_Nevskogo',[[53,-5.21]],'',null,1],
['s4_2','Novocherkasskaya',[[62,-12]],'Новочеркасская',null,1],
['s4_2','Ladozhskaya',[[62,-16]],'Ладожская',null,1],
['s4_2','Plospekt_Dolshevikov',[[62,-20]],'Проспект Большевиков',null,1],
['s4_2','Ulitsa_Dybenko',[[62,-24]],'Улица Дыбенко',null,1],
//
['s5','Devyatkino',[[20,70]],'Девяткино',null,1],
['s5','Grazhdanskiy_Prospekt',[[20,66]],'Гражданский проспект',null,1],
['s5','Academicheskaya',[[20,62]],'Академическая',null,1],
['s5','Politehnicheskaya',[[20,58]],'Политехническая',null,1],
['s5','Ploschad_Muzhestva',[[20,54]],'Площадь Мужества',null,1],
['s5','Lesnaya',[[20,50]],'Лесная',null,1],
['s5','Vyborgskaya',[[20,46]],'Выборгская',null,1],
['s5','Ploschad_Lenina',[[20,42]],'Площадь Ленина',null,1],
['s5','Chernyschevskaya',[[12.74,23.86]],'Чернышевская',null,1],
['s5','Ploschad_Vosstaniya',[[2,13.42]],'Площадь Восстания',null,1],
['s5','Vladimirskaya',[[-20,-7.97]],'Владимирская',null,1],
['s5_1','Pushkinskaya',[[-24.9,-12.73]],'Пушкинская',null,1],
['s5_1','Tehnologicheskiy_Institut',[[-33,-20.6]],'',null,1],
['s5_1','Baltiyskaya',[[-58,-50]],'Балтийская',null,1],
['s5_1','Narvskaya',[[-58,-54]],'Нарвская',null,1],
['s5_1','Kirovskiy_Zavod',[[-58,-58]],'Кировский завод',null,1],
['s5_1','Avtovo',[[-58,-62]],'Автово',null,1],
['s5_1','Leninskiy_Prospekt',[[-58,-66]],'Ленинский проспект',null,1],
['s5_1','Prospekt_Veteranov',[[-58,-70]],'Проспект Ветеранов',null,1]
];
// -------------------------------------------
var dw = new dbCarta({
id: 'cont-spbmetro',
height: 600,
// viewportx: 220,
// viewporty: 220,
scalebg: 'rgba(100,200,100,0.2)'
});
dw.style.backgroundColor = 'white';
dw.style.border = '1px dashed lightgray';
// define new layers
var route = function(o){ return dw.extend({cls: 'Line', width: 5, anchor: ['start', 'middle'], labelscale: 1}, o||{}) },
river = function(o){ return route(dw.extend({fg: "#E2FCFC", join: 'round', cap: 'round', labelcolor: '#5555FF', labelscale: 0}, o||{})) },
interchange = function(o){ return route(dw.extend({fg: '#000000', join: 'round', cap: 'round', width: 8}, o||{})) },
interchange_d = function(o) { return interchange(dw.extend({fg: '#FFFFFF', width: 7}, o||{})) },
station = function(o){ return dw.extend({cls: 'Dot', bg: 'white', size: 3, width: 5, labelscale: 1}, o||{}) },
inst = function(o){ return station(dw.extend({size: 3, labelcolor: o['fg'], bg: o['fg']}, o)) },
inst_d = function(o){ return inst(dw.extend({size: 2, width: 1}, o||{})) };
// lines
dw.extend(dw.mopt, {
'neva_river1': river({width: 20, rotate: -56}),
'neva_river2': river({width: 25, rotate: 0}),
'neva_river3': river({width: 20, rotate: 46}),
'r1': route({fg: '#44B85C'}),
'r2': route({fg: '#8E479C'}),
'r3': route({fg: '#0078BF'}),
'r4': route({fg: '#FFCB31'}),
'r5': route({fg: '#ED1B35'})
});
// interchanges
dw.extend(dw.mopt, {
'interchange': interchange(),
'interchange_d': interchange_d()
});
// stations
dw.extend(dw.mopt, {
's1': station({fg: dw.mopt['r1'].fg, anchor: ['end', 'middle']}),
's1_1': station({fg: dw.mopt['r1'].fg, anchor: ['start', 'top']}),
's1_2': station({fg: dw.mopt['r1'].fg, anchor: ['center', 'bottom']}),
's1_3': station({fg: dw.mopt['r1'].fg, anchor: ['start', 'middle']}),
's2': station({fg: dw.mopt['r2'].fg, anchor: ['end', 'middle']}),
's2_1': station({fg: dw.mopt['r2'].fg, anchor: ['start', 'middle']}),
's3': station({fg: dw.mopt['r3'].fg, anchor: ['start', 'middle']}),
's3_1': station({fg: dw.mopt['r3'].fg, anchor: ['end', 'middle']}),
's4': station({fg: dw.mopt['r4'].fg, anchor: ['end', 'middle']}),
's4_1': station({fg: dw.mopt['r4'].fg, anchor: ['start', 'bottom']}),
's4_2': station({fg: dw.mopt['r4'].fg, anchor: ['start', 'middle']}),
's5': station({fg: dw.mopt['r5'].fg, anchor: ['start', 'middle']}),
's5_1': station({fg: dw.mopt['r5'].fg, anchor: ['end', 'middle']})
});
dw.loadCarta(MLINES);
dw.loadCarta(MSTATIONS);
dw.scaleCarta(1.6);
dw.draw();
// station list
var findstation = function(ev){
var stationlist = ev.target,
opt = stationlist.options[stationlist.selectedIndex];
if (opt) {
var centerofpts = dw.mflood[opt.value]['pts'];
dw.centerCarta(centerofpts[0][0] + dw.m.offset[0], centerofpts[0][1] + dw.m.offset[1]);
dw.draw();
drawcrosshair();
}
};
var drawcrosshair = function(){
var ctx = dw.getContext('2d');
ctx.save();
ctx.setTransform(1, 0, 0, 1, 0, 0);
ctx.beginPath();
ctx.moveTo(dw.width/2.0, 0);
ctx.lineTo(dw.width/2.0, dw.height);
ctx.moveTo(0, dw.height/2.0);
ctx.lineTo(dw.width, dw.height/2.0);
ctx.lineWidth = 15;
ctx.strokeStyle = 'rgba(100,100,200,0.2)';
ctx.stroke();
ctx.restore();
}
var fillstation = function(ev){
var stationlist = ev.target;
if (stationlist.length < MSTATIONS.length){
MSTATIONS.sort(function(a,b){return (a[3]>b[3]) ? 1 : -1});
for (var i in MSTATIONS) {
if (!MSTATIONS[i][3]) continue;
var el = document.createElement('option');
el.value = MSTATIONS[i][0] + '_' + MSTATIONS[i][1];
el.appendChild(document.createTextNode(MSTATIONS[i][3]));
stationlist.appendChild(el);
}
}
}
var stationlist = document.getElementById('spbmetro-stationlist');
stationlist.onmousedown = fillstation;
stationlist.onchange = findstation;
});
</script>egaxegaxhttp://www.blogger.com/profile/04132504793385756437noreply@blogger.com0tag:blogger.com,1999:blog-1305589175977110288.post-58595006509860501062013-12-08T01:28:00.001-08:002014-02-09T00:19:11.002-08:00Карта России без учета расстояний<div id="cont-russ">
Карта России без учета расстояний, представленная как схема метро. Идея и оригинал от <a href="https://plus.google.com/101894938930580928731">Максима Осовского</a>.
Цветные линии изображают федеральные автомобильные трассы, цветные круги - области, белые круги и точки - города. Названия трасс выведены в легенду.
<br/>
Тащите мышью или кликните по карте чтобы сместиться.
<br/>
</div>
<script type="text/javascript">
allmaps.push(function(){
// трассы под белыми кругами
var MLINES_a = [
['r1', '1', [
[0,84],[0,0]
]
],
['r2', '1', [
[27,40],[0,0]
]
],
['r3', '1', [
[66,23],[0,0]
]
],
['r3', '2', [
[116,22],[69,5],[35.3,12.3]
]
],
['r4', '1', [
[55.5,-16.5],[0,0]
]
],
['r4', '2', [
[25.75,-34],[33.5,-10]
]
],
['r4', '3', [
[30.09,-20.4],[0,0]
]
],
['r5', '1', [
[75,-99],[0,0]
]
],
['r5', '2', [
[0,-103],[75,-99]
]
],
['r5', '3', [
[58.4,-77],[98,-76],[66,-87]
]
],
['r5', '4', [
[66,-87],[0,-83],[-9,-73],[0,-65],[41.75,-55]
]
],
['r5', '5', [
[112,-64],[75,-51],[34.08,-45]
]
],
['r6', '2', [
[136,-203],[55,-176],[0,-174]
]
],
['r6', '3', [
[39,-125],[0,-130],[-19,-126],[0,-116]
]
],
['r6', '4', [
[39,-125],[0,-116],[-21,-114]
]
],
['r6', '5', [
[0,-49.50],[34.08,-45],[6.5,-41.1]
]
],
['r6', '6', [
[25.75,-34],[0,-34],[-41.65,-59.5]
]
],
['r6', '7', [
[-28,-51],[-19,-74],[12,-34],[0,-24],[-32.15,-46]
]
],
['r7', '1', [
[-63,-90],[0,0]
]
],
['r8', '1', [
[-89,-31],[0,0]
]
],
['r8', '2', [
[-63,-90],[-71,-40],[-69.3,-24.18]
]
],
['r8', '3', [
[-52.5,-75.2],[-71,-40]
]
],
['r8', '4', [
[-41.65,-59.5],[-71,-40]
]
],
['r9', '1', [
[-52.5,14.14],[0,0]
]
],
['r10', '1', [
[-23,30],[0,0]
]
]
];
var MLINES_b = [
['r6', '1', [
[0,-210],[0,0]
]
]
];
// легенда
var MLEGEND = [
['legend', '1', [
[-125,75],[-85,75],[-85,20],[-125,20]
]
],
['r1', '1_legend', [
[-120,70],[-115,70]
], 'М-1 "Беларусь"', [-114,69]
],
['r2', '2_legend', [
[-120,65],[-115,65]
], 'М-9 "Балтия"', [-114,64]
],
['r3', '3_legend', [
[-120,60],[-115,60]
], 'М-10 "Россия"', [-114,59]
],
['r4', '4_legend', [
[-120,55],[-115,55]
], 'М-8 "Холмогоры"', [-114,54]
],
['r5', '5_legend', [
[-120,50],[-115,50]
], 'М-7 "Волга"', [-114,49]
],
['r6', '6_legend', [
[-120,45],[-115,45]
], 'М-5 "Урал"', [-114,44]
],
['r7', '7_legend', [
[-120,40],[-115,40]
], 'М-6 "Каспий"', [-114,39]
],
['r8', '8_legend', [
[-120,35],[-115,35]
], 'М-4 "Дон"', [-114,34]
],
['r9', '9_legend', [
[-120,30],[-115,30]
], 'М-2 "Крым"', [-114,29]
],
['r10', '10_legend', [
[-120,25],[-115,25]
], 'М-3 "Украина"', [-114,24]
]
];
// точки круга
var circle2poly = function(x, y, radius, col_vertex){
var anglestep = 2.0*Math.PI / col_vertex,
pts = [];
if (Math.abs(radius) <= this.EPS) return pts;
for (var i=0; i<=col_vertex; i++){
pts.push([ x - radius * Math.cos(i * anglestep),
y + radius * Math.sin(i * anglestep) ]);
}
return pts;
}
// поворот точки отн. оси Z
var rotateZ = function(x, y, angle, cx, cy) {
var roll = angle * Math.PI/180,
r = Math.sqrt((cx - x) * (cx - x) + (y - cy) * (y - cy));
if (r > 0) {
var a = Math.acos((cx - x) / r);
if (y < cy) a = 2.0 * Math.PI - a;
coords = [ cx - r * Math.cos(roll + a),
cy + r * Math.sin(roll + a) ];
}
return coords;
}
// создаем круг
var genkrug = function(x, y, r){
var cols = 10,
roll = 18;
var coords = circle2poly(x, y, r, cols),
pts = [];
for(var i in coords){
var pt = rotateZ(coords[i][0], coords[i][1], roll, x, y);
pts.push(pt);
}
return pts;
};
// цветные круги под трассами
var MKRUG_a = [
['s1', '1',
genkrug(0, 0, 22)
],
['s1_1', '1',
genkrug(0, 0, 17)
],
['s2', '1',
genkrug(0, 43, 11)
],
['s2', '2',
genkrug(0, 67, 11)
],
['s3', '1',
genkrug(0, 26.5, 4.5)
],
['s3', '2',
genkrug(0, 84, 4)
],
['s4', '1',
genkrug(27, 40, 3)
],
['s5', '1',
genkrug(26.5, 9.23, 6)
],
['s5', '2',
genkrug(35.3, 12.3, 3)
],
['s5', '3',
genkrug(69, 5, 3)
],
['s5', '4',
genkrug(116, 22, 4)
],
['s6', '1',
genkrug(33.5, -10, 5.5)
],
['s6', '2',
genkrug(44.5, -13.22, 5.5)
],
['s6', '3',
genkrug(55.5, -16.5, 5.5)
],
['s6', '4',
genkrug(23.3, -15.8, 5.5)
],
['s7', '1',
genkrug(-30, -10.45, 10)
],
['s8', '1',
genkrug(-27.2, 7.33, 7)
],
['s8', '2',
genkrug(-40, 10.77, 5)
],
['s8', '3',
genkrug(-52.5, 14.14, 7)
],
['s9', '1',
genkrug(-16, 20.87, 4.5)
],
['s9', '2',
genkrug(-23, 30, 5)
]
];
// цветные круги над трассами
var MKRUG_b = [
['s5_1', '1',
genkrug(66, 23, 10)
],
['s8_1', 'MOSCOW',
genkrug(0, 0, 4.5), 'Москва', null, 1
]
];
// белые круги под трассами
var MCITIES_a = [
['a2_1', 'Ryazan', genkrug(0, -24, 2), 'Рязань', [-3,-24], 1],
['a2_1', 'Penza', genkrug(0, -34, 3), 'Пенза', [-4,-34], 1],
['a2_1', 'Samara', genkrug(0, -49.5, 5), 'Самара', [-6,-50], 1],
['a2', 'Ufa', genkrug(0, -65, 4), 'Уфа', [5,-65], 1],
['a2_1', 'Chelyabinsk', genkrug(0, -83, 5), 'Челябинск', [-6,-83], 1],
['a2_1', 'Kurgan', genkrug(0, -91, 1.5), 'Курган', [-3,-91], 1],
['a2_1', 'Omsk', genkrug(0, -103, 5), 'Омск', [-6,-103], 1],
['a2', 'Novosibirsk', genkrug(0, -116, 6), 'Новосибирск', [7,-116], 1],
['a2', 'Kemerovo', genkrug(0, -130, 2), 'Кемерово', [4,-133], 1],
['a2', 'Krasnoyarsk', genkrug(0, -142, 4), 'Красноярск', [5,-142], 1]
];
// белые круги над трассами
var MCITIES_b = [
['a1', 'Minsk', null, 'Минск', [0,43], 1],
['a1', 'Vilnus', null, 'Вильнюс', [0,67], 1],
['a2', 'Smolensk', genkrug(0, 26.5, 1.5), 'Смоленск', [-7,31], 1],
['a2', 'Kaliningrad', genkrug(0, 84, 1.5), 'Калининград', [4,84], 1],
['a2_1', 'Rzhev', genkrug(14.85, 22, 0.1), 'Ржев', [13,22], 1],
['a2', 'Velikie_Luki', genkrug(20.4, 30.2, 0.1), 'Великие Луки', [22,30.2], 1],
['a2', 'Pskov', genkrug(27, 40, 1), 'Псков', [29,40], 1],
['a2', 'Tver', genkrug(26.5, 9.23, 2), 'Тверь', [29,6], 1],
['a2', 'Velikiy_Novgorod', genkrug(35.3, 12.3, 2), 'Великий Новгород', [22,18], 1],
['a2', 'Petrozavodsk', genkrug(69, 5, 1.5), 'Петрозаводск', [72,3], 1],
['a2', 'Murmansk', genkrug(116, 22, 2), 'Мурманск', [116,17], 1],
['a2', 'Saint-Petersburg', null, 'Санкт-Петерсбург', [55,35], 1],
['a2', 'Yaroslavl', genkrug(33.5, -10, 3), 'Ярославль', [35,-5], 1],
['a2', 'Vologda', genkrug(44.5, -13.22, 1.5), 'Вологда', [48,-9], 1],
['a2', 'Arkhangelsk', genkrug(55.5, -16.5, 1.5), 'Архангельск', [61,-16], 1],
['a2', 'Vladimir', genkrug(23.3, -15.8, 1.5), 'Владимир', [10,-11], 1],
['a2', 'Ivanovo', genkrug(30.09, -20.4, 2), 'Иваново', [32,-24], 1],
['a2', 'Nizhniy_Novgorod', genkrug(25.75, -34, 5), 'Нижний Новгород', [32,-33], 1],
['a2', 'Cheboksary', genkrug(34.08, -45, 3), 'Чебоксары', [38,-42], 1],
['a2','Yoshkar-Ola', genkrug(75, -51, 1), 'Йошкар-Ола', [70,-47], 1],
['a2', 'Kirov', genkrug(93, -57.32, 2), 'Киров', [95,-54], 1],
['a2', 'Syktyvkar', genkrug(112, -64, 1), 'Сыктывкар', [110,-60], 1],
['a2', 'Kazan', genkrug(41.75, -55, 5), 'Казань', [48,-54], 1],
['a2', 'Naberezhnye_Chelny', genkrug(48.6, -64.15, 2), 'Набережные Челны', [52,-63], 1],
['a2', 'Izhevsk', genkrug(53.4, -70.5, 3), 'Ижевск', [57,-70], 1],
['a2', 'Perm', genkrug(58.4, -77, 4), 'Пермь', [63,-75], 1],
['a2', 'Nizhniy_Tagil', genkrug(98, -76, 1.3), 'Нижний Тагил', [100,-75], 1],
['a2', 'Ekaterinburg', genkrug(66, -87, 5.5), 'Екатеринбург', [73,-86], 1],
['a2', 'Tumen', genkrug(75, -99, 3), 'Тюмень', [79,-98], 1],
['a2', 'Magnitogorsk', genkrug(-9, -73, 2), 'Магнитогорск', [-6,-73], 1],
['a2', 'Vladivostok',genkrug(0, -210, 3), 'Владивосток', [5,-210], 1],
['a2', 'Magadan', genkrug(136, -203, 3), 'Магадан', [130,-198], 1],
['a2', 'Yakutsk', genkrug(55, -176, 1.5), 'Якутск', [58,-176], 1],
['a2', 'Chita', genkrug(0, -174, 2), 'Чита', [3,-173], 1],
['a2', 'Tomsk', genkrug(39, -125, 3), 'Томск', [43,-125], 1],
['a2_1', 'Novokuznetsk', genkrug(-19, -126, 3), 'Новокузнецк', [-23,-126], 1],
['a2_1', 'Barnaul', genkrug(-21, -114, 3), 'Барнаул', [-25,-114], 1],
['a2_1', 'Ulyanovsk', genkrug(6.5, -41.1, 3), 'Ульяновск', [2,-41], 1],
['a2_1', 'Volgograd', genkrug(-41.65, -59.5, 4), 'Волгоград', [-47,-59], 1],
['a2_1', 'Tambov', genkrug(-32.15, -46, 1.5), 'Тамбов', [-35,-46], 1],
['a2', 'Saransk', genkrug(12, -34, 1.5), 'Саранск', [6,-31], 1],
['a2_1', 'Orenburg', genkrug(-19, -74, 2.5), 'Оренбург', [-22,-74], 1],
['a2', 'Saratov', genkrug(-28, -51, 3.5), 'Саратов', [-32,-57], 1],
['a2', 'Ulan-Ude', genkrug(0, -154, 3), 'Улан-Удэ', [4,-154], 1],
['a2', 'Irkutsk', genkrug(0,-164, 2), 'Иркутск', [4,-164], 1],
['a2', 'Blagoveschensk', genkrug(0, -181, 1), 'Благовещенск', [4,-181], 1],
['a2', 'Birobidzhan', genkrug(0, -191, 0.5), 'Биробиджан', [4,-191], 1],
['a2', 'Habarovsk', genkrug(0, -201, 2), 'Хабаровск', [4,-201], 1],
['a2', 'Tolyatti', genkrug(8.6, -48.35, 3), 'Тольятти', [13,-51], 1],
['a2_1', 'Lipetsk', genkrug(-21.5, -35.5, 2), 'Липецк', [-24.5,-35.5], 1],
['a2_1', 'Novorossiysk', genkrug(-89, -31, 1.5), 'Новороссийск', [-93,-31], 1],
['a2_1', 'Makhachkala', genkrug(-63, -90, 2.5), 'Махачкала', [-67,-92], 1],
['a2_1', 'Stavropol', genkrug(-71, -40, 2), 'Ставрополь', [-74,-42], 1],
['a2_1', 'Rostov-na-Donu', genkrug(-69.3, -24.18, 4), 'Ростов-на-Дону', [-66,-18], 1],
['a2_1', 'Astrahan', genkrug(-52.5, -75.2, 3.5), 'Астрахань', [-57,-75], 1],
['a2_1', 'Voronezh', genkrug(-30, -10.45, 4), 'Воронеж', [-33,-4], 1],
['a2_1', 'Krasnodar', genkrug(-81, -28.22, 3), 'Краснодар', [-85,-25], 1],
['a2_1', 'Elista', genkrug(-66.5, -68, 0.3), 'Элиста', [-69,-68], 1],
['a2_1', 'Tula', genkrug(-27.2, 7.33, 2), 'Тула', [-25,13], 1],
['a2_1', 'Kursk', genkrug(-40, 10.77,2), 'Курск', [-36,16], 1],
['a2_1', 'Belgorod', genkrug(-52.5, 14.14, 1.5), 'Белгород', [-56,12], 1],
['a2', 'Kaluga', genkrug(-16, 20.87, 1.5), 'Калуга', [-16,14], 1],
['a2_1', 'Bryansk', genkrug(-23, 30, 1.5), 'Брянск', [-27,30], 1]
];
// --------------------------------------
var dw = new dbCarta({
id: 'cont-russ',
height: 600,
viewportx: 220,
viewporty: 220,
scalebg: 'rgba(100,200,100,0.2)'
});
dw.style.backgroundColor = 'white';
dw.style.border = '1px dashed lightgray';
// создаем слои
var route = function(o){ return dw.extend({cls: 'Line', cap: 'round', join: 'bevel', width: 5, labelscale: 1}, o||{}) },
krug = function(o){ return dw.extend({cls: 'Polygon', fg: 'black', bg: 'white', width: 3, labelcolor: 'black', labelscale: 1}, o||{}) },
gorod = function(o){ return krug(dw.extend({cls: 'Dot'}, o||{})) };
// трассы
dw.extend(dw.mopt, {
'r1': route({fg: 'rgb(0,160,227)'}),
'r2': route({fg: 'rgb(174,74,132)'}),
'r3': route({fg: 'rgb(0,152,70)'}),
'r4': route({fg: 'rgb(239,127,26)'}),
'r5': route({fg: 'rgb(255,237,0)'}),
'r6': route({fg: 'rgb(176,203,31)'}),
'r7': route({fg: 'rgb(102,195,208)'}),
'r8': route({fg: 'rgb(178,179,179)'}),
'r9': route({fg: 'rgb(227,30,36)'}),
'r10': route({fg: 'rgb(57,49,133)'}),
'legend': {cls: 'Polygon', fg: 'rgba(63,152,170,0.1)', bg: 'rgba(103,152,170,0.1)'}
});
// цветные круги
dw.extend(dw.mopt, {
's1': krug({fg: 'rgb(210,205,231)', bg: 'rgb(210,205,231)'}),
's1_1': krug({fg: 'rgb(245,178,182)', bg: 'rgb(245,178,182)'}),
's2': krug({fg: 'rgb(198,198,198)', bg: 'rgb(218,218,218)'}),
's3': krug({fg: 'rgb(162,217,247)', bg: 'rgb(162,217,247)'}),
's4': krug({fg: 'rgb(206,130,181)', bg: 'rgb(206,130,181)'}),
's5': krug({fg: 'rgb(168,212,175)', bg: 'rgb(168,212,175)'}),
's5_1': krug({fg: dw.mopt['r3'].fg, bg: 'rgb(168,212,175)'}),
's6': krug({fg: 'rgb(246,176,150)', bg: 'rgb(246,176,150)'}),
's7': krug({fg: 'rgb(218,218,218)', bg: 'rgb(218,218,218)'}),
's8': krug({fg: 'rgb(240,134,131)', bg: 'rgb(240,134,131)'}),
's8_1': krug({fg: dw.mopt['r9'].fg, bg: 'white'}),
's9': krug({fg: 'rgb(126,113,177)', bg: 'rgb(126,113,177)'})
});
// белые круги
dw.extend(dw.mopt, {
'a1': krug({labelcolor: 'white', anchor: ['center', 'middle']}),
'a2': krug({anchor: ['left', 'middle']}),
'a2_1': krug({anchor: ['right', 'middle']})
});
// выводим последовательно
dw.loadCarta(MKRUG_a);
dw.loadCarta(MLINES_a);
dw.loadCarta(MCITIES_a);
dw.loadCarta(MLINES_b);
dw.loadCarta(MKRUG_b);
dw.loadCarta(MCITIES_b);
dw.loadCarta(MLEGEND);
dw.scaleCarta(1.4);
dw.draw();
});
</script>egaxegaxhttp://www.blogger.com/profile/04132504793385756437noreply@blogger.com2tag:blogger.com,1999:blog-1305589175977110288.post-11733309592347115862013-12-04T12:39:00.000-08:002014-02-02T08:46:59.872-08:00Схема пригородного ж/д транспорта Москвы и МО<div id="cont-mosrails">
Ещё одна карта на тему железных дорог. Схема пригородного ж/д транспорта Москвы и МО. Оригинал этой карты можно видеть на стенах тамбуров подмосковных электричек под названием Moscow Underground and Commuter Rail Map. Подробности на Хабре в статье "<a href="http://habrahabr.ru/post/203462/">Canvas Схема пригородного движения ж/д сообщения Москвы и МО</a>".
<br />
Перемещайтесь по карте с помощью мыши или по списку станций <select id="mosrails-stationlist""><option value="">Выберите...</option></select>. <br/>
Полная версия доступна на <a href="http://dbcartajs.appspot.com/mosrails.html">сайте проекта</a>.
<br/>
</div>
<script type="text/javascript">
// mosrails.html func
allmaps.push(function() {
/* List with coords of Moscow Underground and Commuter Rail lines and stations
[[ftype, ftag, coords, label, centerof, ismap],...]
Three points with coords and 'Q' literal implements to bezierCurveTo (...) method. */
var RLINES = [
// MKAD
['mkad', 'm', [
[-83,158,'Q'],[-85,158,'Q'],[-87,156,'Q'],
[-99,141,'Q'],[-101,139,'Q'],[-103,139,'Q'],
[-140,139,'Q'],[-142,139,'Q'],[-144,137,'Q'],
[-175,97,'Q'],[-177,95,'Q'],[-177,93,'Q'],
[-177,93,'Q'],[-177,91,'Q'],[-175,89,'Q'],
[-150,63,'Q'],[-148,61,'Q'],[-148,59,'Q'],
[-148,53,'Q'],[-148,51,'Q'],[-150,49,'Q'],
[-207,-2,'Q'],[-209,-4,'Q'],[-209,-6,'Q'],
[-209,-15,'Q'],[-209,-17,'Q'],[-207,-19,'Q'],
[-195,-30,'Q'],[-193,-32,'Q'],[-191,-32,'Q'],
[-157,-32,'Q'],[-155,-32,'Q'],[-153,-34,'Q'],
[-141,-45,'Q'],[-139,-47,'Q'],[-139,-49,'Q'],
[-139,-85,'Q'],[-139,-87,'Q'],[-137,-89,'Q'],
[-119,-110,'Q'],[-117,-112,'Q'],[-115,-112,'Q'],
[-86,-112,'Q'],[-84,-112,'Q'],[-82,-114,'Q'],
[-51,-142,'Q'],[-49,-144,'Q'],[-47,-144,'Q'],
[1,-144,'Q'],[3,-144,'Q'],[5,-146,'Q'],
[10,-151,'Q'],[12,-153,'Q'],[12,-155,'Q'],
[12,-172,'Q'],[12,-174,'Q'],[10,-176,'Q'],
[-20,-207,'Q'],[-22,-209,'Q'],[-22,-211,'Q'],
[-22,-211,'Q'],[-22,-213,'Q'],[-18,-215,'Q'],
[-18,-215,'Q'],[-14,-217,'Q'],[-12,-217,'Q'],
[30,-217,'Q'],[32,-217,'Q'],[34,-215,'Q'],
[34,-215,'Q'],[36,-213,'Q'],[36,-211,'Q'],
[36,-195,'Q'],[36,-193,'Q'],[38,-191,'Q'],
[40,-189,'Q'],[42,-187,'Q'],[44,-187,'Q'],
[100,-187,'Q'],[102,-187,'Q'],[104,-185,'Q'],
[109,-180,'Q'],[111,-178,'Q'],[111,-176,'Q'],
[111,-125,'Q'],[111,-123,'Q'],[113,-121,'Q'],
[126,-108,'Q'],[128,-106,'Q'],[130,-106,'Q'],
[158,-106,'Q'],[160,-106,'Q'],[162,-104,'Q'],
[164,-102,'Q'],[166,-100,'Q'],[166,-98,'Q'],
[166,-6,'Q'],[166,-4,'Q'],[168,-2,'Q'],
[195,23,'Q'],[197,25,'Q'],[197,27,'Q'],
[197,43,'Q'],[197,45,'Q'],[195,47,'Q'],
[135,106,'Q'],[133,108,'Q'],[131,108,'Q'],
[65,108,'Q'],[63,108,'Q'],[61,112,'Q'],
[40,156,'Q'],[38,158,'Q'],[36,158,'Q'],
[-83,158]
]
],
// Metro
['mr', 'r1', [
[69,103],
[69,68,'Q'],[69,63,'Q'],[63,58,'Q'],
[-63,-67,'Q'],[-66,-70,'Q'],[-69,-70,'Q'],
[-113,-70,'Q'],[-116,-70,'Q'],[-119,-73,'Q'],
[-132,-86]
]
],
['mr','r2', [
[-79,119],
[-79,77,'Q'],[-79,72,'Q'],[-73,67,'Q'],
[-3,-3,'Q'],[-1,-5,'Q'],[-1,-7,'Q'],
[-1,-17,'Q'],[-1,-20,'Q'],[2,-23,'Q'],
[44,-65,'Q'],[46,-67,'Q'],[46,-69,'Q'],
[46,-120,'Q'],[46,-123,'Q'],[49,-126,'Q'],
[96,-173]
]
],
['mr', 'r3', [
[132,63],
[115,63,'Q'],[113,63,'Q'],[111,61,'Q'],
[35,-14,'Q'],[33,-16,'Q'],[31,-16,'Q'],
[-15,-16,'Q'],[-17,-16,'Q'],[-19,-18,'Q'],
[-38,-37,'Q'],[-40,-39,'Q'],[-42,-39,'Q'],
[-119,-39,'Q'],[-121,-39,'Q'],[-123,-37,'Q'],
[-156,-4,'Q'],[-158,-2,'Q'],[-158,0,'Q'],
[-158,60]
]
],
['mr', 'r4_1', [
[-151,35,'Q'],[-148,36,'Q'],[-145,34,'Q'],
[-130,20,'Q'],[-128,18,'Q'],[-128,16,'Q'],
[-128,-2,'Q'],[-128,-4,'Q'],[-126,-6,'Q'],
[-113,-19,'Q'],[-111,-21,'Q'],[-109,-21,'Q'],
[-80,-21,'Q'],[-78,-21,'Q'],[-76,-23,'Q'],
[-71,-28],
[-63,-21,'Q'],[-61,-19,'Q'],[-59,-19,'Q'],
[-26,-19]
]
],
['mr', 'r4_2', [
[-102,20],
[-102,-9,'Q'],[-102,-11,'Q'],[-100,-13,'Q'],
[-93,-21]
]
],
['mr', 'r5', [
[-70,0],[-69.86,4.40],[-69.45,8.77],[-68.76,13.12],[-67.80,17.41],[-66.57,21.63],[-65.08,25.77],[-63.34,29.80],[-61.34,33.72],[-59.10,37.51],[-56.63,41.14],[-53.94,44.62],[-51.03,47.92],[-47.92,51.03],[-44.62,53.94],[-41.14,56.63],[-37.51,59.10],[-33.72,61.34],[-29.80,63.34],[-25.77,65.08],[-21.63,66.57],[-17.41,67.80],[-13.12,68.76],[-8.77,69.45],[-4.40,69.86],[0.00,70.00],[4.40,69.86],[8.77,69.45],[13.12,68.76],[17.41,67.80],[21.63,66.57],[25.77,65.08],[29.80,63.34],[33.72,61.34],[37.51,59.10],[41.14,56.63],[44.62,53.94],[47.92,51.03],[51.03,47.92],[53.94,44.62],[56.63,41.14],[59.10,37.51],[61.34,33.72],[63.34,29.80],[65.08,25.77],[66.57,21.63],[67.80,17.41],[68.76,13.12],[69.45,8.77],[69.86,4.40],[70.00,0.00],[69.86,-4.40],[69.45,-8.77],[68.76,-13.12],[67.80,-17.41],[66.57,-21.63],[65.08,-25.77],[63.34,-29.80],[61.34,-33.72],[59.10,-37.51],[56.63,-41.14],[53.94,-44.62],[51.03,-47.92],[47.92,-51.03],[44.62,-53.94],[41.14,-56.63],[37.51,-59.10],[33.72,-61.34],[29.80,-63.34],[25.77,-65.08],[21.63,-66.57],[17.41,-67.80],[13.12,-68.76],[8.77,-69.45],[4.40,-69.86],[0.00,-70.00],[-4.40,-69.86],[-8.77,-69.45],[-13.12,-68.76],[-17.41,-67.80],[-21.63,-66.57],[-25.77,-65.08],[-29.80,-63.34],[-33.72,-61.34],[-37.51,-59.10],[-41.14,-56.63],[-44.62,-53.94],[-47.92,-51.03],[-51.03,-47.92],[-53.94,-44.62],[-56.63,-41.14],[-59.10,-37.51],[-61.34,-33.72],[-63.34,-29.80],[-65.08,-25.77],[-66.57,-21.63],[-67.80,-17.41],[-68.76,-13.12],[-69.45,-8.77],[-69.86,-4.40],[-70,0]
]
],
['mr', 'r6', [
[33,148],
[33,81,'Q'],[33,76,'Q'],[28,71,'Q'],
[9,54,'Q'],[7,52,'Q'],[7,50,'Q'],
[7,38,'Q'],[7,36,'Q'],[9,34,'Q'],
[35,8,'Q'],[37,6,'Q'],[37,4,'Q'],
[37,-16,'Q'],[37,-18,'Q'],[35,-20,'Q'],
[12,-43,'Q'],[9,-46,'Q'],[6,-46,'Q'],
[-8,-46,'Q'],[-11,-46,'Q'],[-14,-49,'Q'],
[-42,-77,'Q'],[-44,-79,'Q'],[-44,-81,'Q'],
[-44,-129]
]
],
['mr', 'r7', [
[-126,119],
[-126,85,'Q'],[-126,80,'Q'],[-120,75,'Q'],
[-61,17,'Q'],[-58,14,'Q'],[-55,14,'Q'],
[22,14,'Q'],[25,14,'Q'],[26,13,'Q'],
[111,-72,'Q'],[114,-75,'Q'],[117,-75,'Q'],
[128,-75,'Q'],[131,-75,'Q'],[134,-78,'Q'],
[141,-85,'Q'],[143,-87,'Q'],[143,-89,'Q'],
[143,-101]
]
],
['mr', 'r8', [
[30,-38],
[55,-38,'Q'],[58,-38,'Q'],[61,-34,'Q'],
[99,4,'Q'],[101,6,'Q'],[103,6,'Q'],
[117,6,'Q'],[119,6,'Q'],[121,4,'Q'],
[155,-30,'Q'],[157,-32,'Q'],[159,-32,'Q'],
[168,-32]
]
],
['mr', 'r9', [
[-38,148],
[-38,75,'Q'],[-38,70,'Q'],[-32,65,'Q'],
[-21,54,'Q'],[-19,52,'Q'],[-19,50,'Q'],
[-19,29,'Q'],[-19,27,'Q'],[-21,25,'Q'],
[-35,11,'Q'],[-37,9,'Q'],[-37,7,'Q'],
[-37,-10,'Q'],[-37,-15,'Q'],[-31,-20,'Q'],
[17,-68,'Q'],[19,-70,'Q'],[19,-72,'Q'],
[19,-80,'Q'],[19,-82,'Q'],[17,-84,'Q'],
[-10,-112,'Q'],[-12,-114,'Q'],[-12,-116,'Q'],
[-12,-153]
]
],
['mr', 'r10', [
[4,96],
[-13,79,'Q'],[-15,77,'Q'],[-15,75,'Q'],
[-15,47,'Q'],[-15,44,'Q'],[-12,41.5,'Q'],
[-6,36,'Q'],[-3,33,'Q'],[0,33,'Q'],
[27,33,'Q'],[30,33,'Q'],[31,32,'Q'],
[50,13,'Q'],[53,10,'Q'],[56,10,'Q'],
[64,10,'Q'],[66,10,'Q'],[66,8,'Q'],
[66,1,'Q'],[66,-2,'Q'],[71,-6,'Q'],
[89,-25,'Q'],[91,-27,'Q'],[91,-29,'Q'],
[91,-160]
]
],
['mr', 'r11', [
[-6,-129],
[28,-129,'Q'],[30,-129,'Q'],[32,-127,'Q'],
[43,-116]
]
],
['mr', 'r12', [
[-9,-156],[3,-168]
]
],
['monorail', 'mn', [
[-38,115],
[-18,135,'Q'],[-16,137,'Q'],[-14,137,'Q'],
[14,137,'Q'],[16,137,'Q'],[18,135,'Q'],
[33,121],[46,121]
]
],
// Railway
['t1', 't1_1', [
[-188,-265],
[-188,0,'Q'],[-188,2,'Q'],[-186,4,'Q'],
[-165,25,'Q'],[-163,27,'Q'],[-161,27,'Q'],
[-108,27,'Q'],[-106,27,'Q'],[-104,29,'Q'],
[-89,42,'Q'],[-87,44,'Q'],[-85,44,'Q'],
[-66,44,'Q'],[-64,44,'Q'],[-62,46,'Q'],
[-52.38,54]
]
],
['t1', 't1_2', [
[-199,-113],
[-199,-95,'Q'],[-199,-93,'Q'],[-197,-91,'Q'],
[-188,-82]
]
],
['t1', 't1_3', [
[-199,-73],
[-199,-33,'Q'],[-199,-31,'Q'],[-197,-29,'Q'],
[-188,-19]
]
],
['mr_1', 't1_4', [
[-201,-265],[-188,-265]
], 'в Ржев', [-201,-265]
],
['mr_1', 't1_5', [
[-188,-275],[-188,-265]
], 'в Смоленск', [-188,-275]
],
['mr_2', 't1_6', [
[-178,-275],[-188,-265]
], 'в Фаянсовую, Калуга', [-178,-275]
],
['t2', 't2_1', [
[-100,-368],[-100,-149]
]
],
['t2', 't2_2', [
[-70,-179],[-100,-149],
[-100,-46,'Q'],[-100,-44,'Q'],[-98,-42,'Q'],
[-92,-35,'Q'],[-90,-33,'Q'],[-88,-33,'Q'],
[-78,-33]
]
],
['t2_ext', 't2_2_ext', [
[-70,-179],[-100,-149],
[-100,-46,'Q'],[-100,-44,'Q'],[-98,-42,'Q'],
[-92,-35,'Q'],[-90,-33,'Q'],[-88,-33,'Q'],
[-78,-33]
]
],
['t2', 't2_3', [
[-70,-368],
[-70,-349,'Q'],[-70,-347,'Q'],[-72,-345,'Q'],
[-100,-316]
]
],
['mr_1', 't2_3', [
[-121,-337],
[-99,-337,'Q'],[-97,-337,'Q'],[-95,-335,'Q'],
[-87.63,-328.8]
], 'в Вязьму', [-121,-337]
],
['mr', 't2_4', [
[-74,-142],
[-74,-132,'Q'],[-74,-130,'Q'],[-76,-128,'Q'],
[-83,-122,'Q'],[-85,-120,'Q'],[-87,-120,'Q'],
[-100,-120]
]
],
['mr_1', 't2_5', [
[-100,-375],[-100,-368]
], 'в Сухиничи', [-100,-375]
],
['mr_2', 't2_6', [
[-70,-375],[-70,-368]
], 'в Алексин, Тулу', [-70,-375]
],
['t3', 't3_1', [
[47,-368],[47,-216]
]
],
['t3', 't3_2', [
[65,-233],[47,-216],
[47,-163,'Q'],[47,-161,'Q'],[45,-159,'Q'],
[9,-122,'Q'],[7,-120,'Q'],[7,-118,'Q'],
[7,-105,'Q'],[7,-103,'Q'],[9,-101,'Q'],
[33,-77,'Q'],[35,-75,'Q'],[35,-73,'Q'],
[35,-64]
]
],
['t3_ext', 't3_2_ext', [
[65,-233],[47,-216],
[47,-163,'Q'],[47,-161,'Q'],[45,-159,'Q'],
[9,-122,'Q'],[7,-120,'Q'],[7,-118,'Q'],
[7,-105,'Q'],[7,-103,'Q'],[9,-101,'Q'],
[33,-77,'Q'],[35,-75,'Q'],[35,-73,'Q'],
[35,-64]
]
],
['mr_1', 't3_3', [
[47,-375],[47,-368]
], 'в Павелец', [47,-375]
],
['mr_1', 't3_4', [
[36,-327],[47,-327]
], 'в Узловую', [36,-327]
],
['t4', 't4_1', [
[-1,-368],
[-1,-204,'Q'],[-1,-202,'Q'],[1,-200,'Q'],
[118,-82,'Q'],[120,-80,'Q'],[120,-78,'Q'],
[120,-65,'Q'],[120,-63,'Q'],[118,-61,'Q'],
[78,-21,'Q'],[76,-19,'Q'],[76,-17,'Q'],
[76,14,'Q'],[76,16,'Q'],[74,18,'Q'],
[68,23,'Q'],[66,25,'Q'],[64,25,'Q'],
[55,25,'Q'],[43,25,'Q'],[43,35,'Q'],
[43,83,'Q'],[43,97,'Q'],[28,97,'Q'],
[28,97,'Q'],[27,97,'Q'],[26,96,'Q'],
[19,90,'Q'],[17,88,'Q'],[15,88,'Q'],
[-39,88,'Q'],[-41,88,'Q'],[-43,86,'Q'],
[-50.38,78,'Q'],[-52.38,76,'Q'],[-52.38,74,'Q'],
[-52.38,54]
]
],
['mr_1', 't4_2', [
[-1,-375],[-1,-368]
], 'в Орёл', [-1,-375]
],
['t5', 't5_1', [
[-197,283],
[-197,143,'Q'],[-197,141,'Q'],[-195,139,'Q'],
[-161,105,'Q'],[-159,103,'Q'],[-157,103,'Q'],
[5,103,'Q'],[7,103,'Q'],[9,101,'Q'],
[28,84]
]
],
['t5', 't5_2', [
[28,97],[13.25,97]
]
],
['mr_1', 't5_3', [
[-197,289],[-197,283]
], 'в Ржев', [-197,289]
],
['t6', 't6_1', [
[-132,283],
[-132,148,'Q'],[-132,146,'Q'],[-130,144,'Q'],
[-118,132,'Q'],[-116,130,'Q'],[-114,130,'Q'],
[9,130,'Q'],[11,130,'Q'],[13,128,'Q'],
[49.875,93.875,'Q'],[51.875,91.875,'Q'],[51.875,89.875,'Q'],
[51.875,56]
]
],
['t6', 't6_2', [
[-107,269],[-132,244]
]
],
['mr_2', 't6_3', [
[-132,289],[-132,283]
], 'в Вышний Волочек, Торжок, Бологое', [-132,289]
],
['t7', 't7_1', [
[-46,283],[-46,180]
]
],
['t7', 't7_2', [
[-61,288],
[-61,267,'Q'],[-61,265,'Q'],[-59,263,'Q'],
[-58,262,'Q'],[-56,260,'Q'],[-54,260,'Q'],
[-46,260]
]
],
['t7', 't7_3', [
[-46,91],[-46,180],[-60,194]
]
],
['t7_ext', 't7_3_ext', [
[-46,91],[-46,180],[-60,194]
]
],
['mr_2', 't7_4', [
[-46,289],[-46,283]
], 'в Калязин, Углич, Сонково', [-46,289]
],
['t8', 't8_1', [
[90,283],
[90,63,'Q'],[90,61,'Q'],[88,59,'Q'],
[78,48.96,'Q'],[76,46.96,'Q'],[74,46.96,'Q'],
[61,46.96]
]
],
['t8', 't8_2', [
[132,213],[90,172]
]
],
['t8', 't8_3', [
[220,70],
[205,70,'Q'],[203,70,'Q'],[201,72,'Q'],
[135,137,'Q'],[133,139,'Q'],[131,139,'Q'],
[109,139],[90,122]
]
],
['t8', 't8_4', [
[109,139],[109,174]
]
],
['mr_2', 't8_5', [
[90,289],[90,283]
], 'в Ростов Великий, Ярославль', [90,289]
],
['t9', 't9_1', [
[220,283],
[220,6,'Q'],[220,4,'Q'],[218,2,'Q'],
[179,-36,'Q'],[177,-38,'Q'],[175,-38,'Q'],
[123,-38,'Q'],[121,-38,'Q'],[119,-36,'Q'],
[84,-2],
[84,5,'Q'],[84,7,'Q'],[82,9,'Q'],
[76,14]
]
],
['t9', 't9_2', [
[174,-5],[174,-38]
]
],
['t9', 't9_3', [
[172,118],[220,70]
]
],
['t9', 't9_4', [
[181,163],
[198,147,'Q'],[200,145,'Q'],[202,145,'Q'],
[220,145]
]
],
['mr_1', 't9_5', [
[220,289],[220,283]
], 'в Ковров, Нижний Новгород', [220,289]
],
['t10', 't10_1', [
[150,-368],
[150,-63,'Q'],[150,-61,'Q'],[148,-59,'Q'],
[111,-22,'Q'],[109,-20,'Q'],[109,-18,'Q'],
[109,23,'Q'],[109,25,'Q'],[107,27,'Q'],
[98,36,'Q'],[96,38,'Q'],[94,38,'Q'],
[51.875,38]
]
],
['t10', 't10_2', [
[217,-314],
[217,-165,'Q'],[217,-163,'Q'],[215,-161,'Q'],
[177,-123,'Q'],[174,-121,'Q'],[172,-121,'Q'],
[150,-121]
]
],
['t10', 't10_3', [
[204,-317],
[204,-269,'Q'],[204,-267,'Q'],[206,-267,'Q'],
[217,-267]
]
],
['t10', 't10_4', [
[150,-323],
[145,-323,'Q'],[143,-323,'Q'],[141,-325,'Q'],
[99,-366,'Q'],[97,-368,'Q'],[95,-368,'Q'],
[47,-368]
]
],
['t10', 't10_5', [
[150,-272],
[135,-272,'Q'],[133,-272,'Q'],[131,-274,'Q'],
[81,-323]
]
],
['t10', 't10_6', [
[150,-359],[142,-367]
]
],
['mr_2', 't10_7', [
[150,-375],[150,-368]
], 'в Кустаревку', [150,-375]
],
['mr_1', 't10_8', [
[138,-371],[142,-367]
], 'в Ряжск, Мичуринск', [138,-371]
],
['mr_2', 't10_9', [
[217,-320],[217,-314]
], 'в Муром', [217,-320]
],
['t11', 't11_1', [
[-188,-122],
[-166,-122,'Q'],[-164,-122,'Q'],[-162,-124,'Q'],
[-139,-146,'Q'],[-137,-148,'Q'],[-137,-150,'Q'],
[-137,-188,'Q'],[-137,-190,'Q'],[-135,-192,'Q'],
[-116,-211,'Q'],[-114,-213,'Q'],[-112,-213,'Q'],
[-73,-213,'Q'],[-71,-213,'Q'],[-69,-215,'Q'],
[-24,-260,'Q'],[-22,-262,'Q'],[-20,-262,'Q'],
[2,-262,'Q'],[4,-262,'Q'],[6,-264,'Q'],
[19,-277,'Q'],[21,-279,'Q'],[23,-279,'Q'],
[91,-279,'Q'],[93,-279,'Q'],[95,-277,'Q'],
[152,-220,'Q'],[154,-218,'Q'],[156,-218,'Q'],
[186,-218]
]
],
['t11', 't11_2', [
[150,-222,'Q'],[150,-227,'Q'],[159,-227,'Q'],
[175,-227,'Q'],[177,-227,'Q'],[179,-225,'Q'],
[186,-218,'Q'],[190,-214,'Q'],[194,-214,'Q'],
[223,-214]
]
],
['t11', 't11_3', [
[210,-214],[217,-220],
[237,-201,'Q'],[239,-199,'Q'],[239,-197,'Q'],
[239,-130,'Q'],[239,-128,'Q'],[237,-126,'Q'],
[219,-108,'Q'],[217,-106,'Q'],[217,-104,'Q'],
[217,-62,'Q'],[217,-60,'Q'],[219,-58,'Q'],
[237,-40,'Q'],[239,-38,'Q'],[239,-36,'Q'],
[239,178,'Q'],[239,180,'Q'],[237,182,'Q'],
[213,206,'Q'],[211,208,'Q'],[209,208,'Q'],
[190,208,'Q'],[188,208,'Q'],[186,210,'Q'],
[134,262],
[102,262,'Q'],[100,262,'Q'],[98,264,'Q'],
[90,272]
]
],
['t11', 't11_4', [
[90,213],
[10,213,'Q'],[8,213,'Q'],[6,215,'Q'],
[-13,234,'Q'],[-15,236,'Q'],[-17,236,'Q'],
[-38,236,'Q'],[-40,236,'Q'],[-42,238,'Q'],
[-46,242]
]
],
['t11', 't11_5', [
[-38,236,'Q'],[-40,236,'Q'],[-42,234,'Q'],
[-46,230]
]
],
['t11', 't11_6', [
[-46,214],
[-78,214,'Q'],[-80,214,'Q'],[-82,212,'Q'],
[-100,194,'Q'],[-102,192,'Q'],[-104,192,'Q'],
[-168,192,'Q'],[-171,192,'Q'],[-174,189,'Q'],
[-189,174],[-205,174],
[-212,166,'Q'],[-214,164,'Q'],[-214,162,'Q'],
[-214,114,'Q'],[-214,112,'Q'],[-212,110,'Q'],
[-188,85,'Q'],[-186,83,'Q'],[-186,81,'Q'],
[-186,56,'Q'],[-186,54,'Q'],[-188,52,'Q'],
[-232,7,'Q'],[-234,5,'Q'],[-234,3,'Q'],
[-234,-99,'Q'],[-234,-101,'Q'],[-232,-103,'Q'],
[-214,-120,'Q'],[-212,-122,'Q'],[-210,-122,'Q'],
[-188,-122]
]
],
['t11', 't11_7', [
[-197,182],[-189,174]
]
],
['t11', 't11_8', [
[47,-296],
[90,-296,'Q'],[92,-296,'Q'],[94,-294,'Q'],
[113,-275,'Q'],[116,-272,'Q'],[116,-268,'Q'],
[116,-256]
]
],
// Metro
['interchange', 'Kievskaya', [
[-71,-39],[-72,-33],[-78,-33],[-72,-33],[-71,-28],
[-71,-28,'Q'],[-66,-28,'Q'],[-62.22,-32,'Q'],
[-62.22,-32,'Q'],[-65,-38,'Q'],[-71,-39,'Q']
]
],
['interchange_d', 'Kievskaya', [
[-71,-39],[-72,-33],[-78,-33],[-72,-33],[-71,-28],
[-71,-28,'Q'],[-66,-28,'Q'],[-62.22,-32,'Q'],
[-62.22,-32,'Q'],[-65,-38,'Q'],[-71,-39,'Q']
]
],
['interchange', 'Krasnopresnenskaya-Barrikadnaya', [
[-61,17],[-67.89,17]
]
],
['interchange_d', 'Krasnopresnenskaya-Barrikadnaya', [
[-61,17],[-67.89,17]
]
],
['interchange', 'Mendeleyevskaya-Novoslobodskaya', [
[-34.1,67],[-34.1,61.12]
]
],
['interchange_d', 'Mendeleyevskaya-Novoslobodskaya', [
[-34.1,67],[-34.1,61.12]
]
],
['interchange', 'Prospekt_Mira', [
[26.88,64.6],[26.88,70]
]
],
['interchange_d', 'Prospekt_Mira', [
[26.88,64.6],[26.88,70]
]
],
['interchange', 'Kurskaya-Chkalobskaya', [
[73.5,24],[67.58,18.15],[65.3,9.56]
]
],
['interchange_d', 'Kurskaya-Chkalobskaya', [
[73.5,24],[67.58,18.15],[65.3,9.56]
]
],
['interchange', 'Taganskaya-Marksistskaya', [
[68.115,-16,'Q'],[71,-19,'Q'],[71,-24,'Q'],
[71,-24,'Q'],[65,-25,'Q'],[61,-22,'Q'],
[61,-22,'Q'],[63,-17,'Q'],[68.115,-16,'Q']
]
],
['interchange_d', 'Taganskaya-Marksistskaya', [
[68.115,-16,'Q'],[71,-19,'Q'],[71,-24,'Q'],
[71,-24,'Q'],[65,-25,'Q'],[61,-22,'Q'],
[61,-22,'Q'],[63,-17,'Q'],[68.115,-16,'Q']
]
],
['interchange', 'Dobryninskaya-Serpukhovskaya', [
[12,-68.94],[12,-63]
]
],
['interchange_d', 'Dobryninskaya-Serpukhovskaya', [
[12,-68.94],[12,-63]
]
],
['interchange', 'Oktyabrskaya', [
[-24,-65.72],[-24,-59]
]
],
['interchange_d', 'Oktyabrskaya', [
[-24,-65.72],[-24,-59]
]
],
['interchange', 'Park_Kultury', [
[-44,-48.15],[-44,-54.42]
]
],
['interchange_d', 'Park_Kultury', [
[-44,-48.15],[-44,-54.42]
]
],
['interchange', 'Kitay-Gorod', [
[37,-5],[41,-2]
]
],
['interchange_d', 'Kitay-Gorod', [
[37,-5],[41,-2]
]
],
['interchange', 'Turgenevskaya-Chistye_Prudy-Sretensky_Bulvar', [
[24,33,'Q'],[28,30,'Q'],[29.732,25,'Q'],
[29.732,25,'Q'],[24,23,'Q'],[18,25,'Q'],
[18,25,'Q'],[19,30,'Q'],[24,33,'Q']
]
],
['interchange_d', 'Turgenevskaya-Chistye_Prudy-Sretensky_Bulvar', [
[24,33,'Q'],[28,30,'Q'],[29.732,25,'Q'],
[29.732,25,'Q'],[24,23,'Q'],[18,25,'Q'],
[18,25,'Q'],[19,30,'Q'],[24,33,'Q']
]
],
['interchange', 'Kuznetsky_Most-Lubyanka', [
[10,14],[14,9.39]
]
],
['interchange_d', 'Kuznetsky_Most-Lubyanka', [
[10,14],[14,9.39]
]
],
['interchange', 'Okhotny_Ryad-Teatralnaya-Ploshcha_Revolyutsi', [
[-6.55,-11],[-1,-11],[4,-16]
]
],
['interchange_d', 'Okhotny_Ryad-Teatralnaya-Ploshcha_Revolyutsi', [
[-6.55,-11],[-1,-11],[4,-16]
]
],
['interchange', 'Biblioteka_Imeni_Lenina-Alexandrovsky_Sad-Arbatskaya-Borovitskaya', [
[-17.64,-22,'Q'],[-15,-27,'Q'],[-18,-33,'Q'],
[-18,-33,'Q'],[-24,-32,'Q'],[-28,-27,'Q'],
[-28,-27],[-24,-22,],[-26,-19],[-24,-22,],[-17.64,-22]
]
],
['interchange_d', 'Biblioteka_Imeni_Lenina-Alexandrovsky_Sad-Arbatskaya-Borovitskaya', [
[-17.64,-22,'Q'],[-15,-27,'Q'],[-18,-33,'Q'],
[-18,-33,'Q'],[-24,-32,'Q'],[-28,-27,'Q'],
[-28,-27],[-24,-22,],[-26,-19],[-24,-22,],[-17.64,-22]
]
],
['interchange', 'Tverskaya-Pushkinskaya-Chekhovskaya', [
[-32,26,'Q'],[-26,28,'Q'],[-20.15,26,'Q'],
[-20.15,26,'Q'],[-20,19,'Q'],[-26,14,'Q'],
[-26,14,'Q'],[-32,19,'Q'],[-32,26,'Q']
]
],
['interchange_d', 'Tverskaya-Pushkinskaya-Chekhovskaya', [
[-32,26,'Q'],[-26,28,'Q'],[-20.15,26,'Q'],
[-20.15,26,'Q'],[-20,19,'Q'],[-26,14,'Q'],
[-26,14,'Q'],[-32,19,'Q'],[-32,26,'Q']
]
],
['interchange', 'Tretyakovskaya-Novokuznetskaya', [
[22,-33,'Q'],[27,-34,'Q'],[30,-38,'Q'],
[30,-38,'Q'],[27,-41,'Q'],[22,-43,'Q'],
[22,-43,'Q'],[20,-38,'Q'],[22,-33,'Q']
]
],
['interchange_d', 'Tretyakovskaya-Novokuznetskaya', [
[22,-33,'Q'],[27,-34,'Q'],[30,-38,'Q'],
[30,-38,'Q'],[27,-41,'Q'],[22,-43,'Q'],
[22,-43,'Q'],[20,-38,'Q'],[22,-33,'Q'] ]
],
['interchange', 'Krasnogvardeyskaya-Zyablikovo', [
[87,-164],[91,-160]
]
],
['interchange_d', 'Krasnogvardeyskaya-Zyablikovo', [
[87,-164],[91,-160]
]
],
['interchange', 'Kuntsevskaya', [
[-158,31],[-151,35]
]
],
['interchange_d', 'Kuntsevskaya', [
[-158,31],[-151,35]
]
],
['interchange', 'Proletarskaya-Krestyanskaya_Zastava', [
[87,-48],[91,-43]
]
],
['interchange_d', 'Proletarskaya-Krestyanskaya_Zastava', [
[87,-48],[91,-43]
]
],
['interchange', 'Rimskaya-Ploshchad_Ilyicha', [
[84,-19.725],[84,-11]
]
],
['interchange_d', 'Rimskaya-Ploshchad_Ilyicha', [
[84,-19.725],[84,-11]
]
],
['interchange', 'Tsvetnoy_Bulvar-Trubnaya', [
[-19,49],[-15,47]
]
],
['interchange_d', 'Tsvetnoy_Bulvar-Trubnaya', [
[-19,49],[-15,47]
]
],
['interchange', 'Sevastopolskaya-Kakhovskaya', [
[-12,-129],[-6,-129]
]
],
['interchange_d', 'Sevastopolskaya-Kakhovskaya', [
[-12,-129],[-6,-129]
]
],
['interchange', 'Kashirskaya', [
[46,-113],[43,-116]
]
],
['interchange_d', 'Kashirskaya', [
[46,-113],[43,-116]
]
],
['interchange', 'Bulvar_Dmitriya_Donskogo-Ulitsa_Starokachalovskaya', [
[-12,-153],[-9,-156]
]
],
['interchange_d', 'Bulvar_Dmitriya_Donskogo-Ulitsa_Starokachalovskaya', [
[-12,-153],[-9,-156]
]
],
['interchange', 'Timiryazevskaya', [
[-38,109],[-38,115]
]
],
['interchange_d', 'Timiryazevskaya', [
[-38,109],[-38,115]
]
],
['interchange', 'Vystavochny_Tsentr-VDNKh', [
[33,115],[33,121]
]
],
['interchange_d', 'Vystavochny_Tsentr-VDNKh', [
[33,115],[33,121]
]
],
// Railway
['interchange', 'Belorusskiy_Vokzal', [
[-52.38,54],[-52.38,46.39]
]
],
['interchange_d', 'Belorusskiy_Vokzal', [
[-52.38,54],[-52.38,46.39]
]
],
['interchange', 'Begovaya', [
[-91,46.49],[-91,40.28]
]
],
['interchange_d', 'Begovaya', [
[-91,46.49],[-91,40.28]
]
],
['interchange', 'Testovskaya', [
[-109,27],[-102,20]
]
],
['interchange_dl', 'Testovskaya', [
[-109,27],[-102,20]
]
],
['interchange', 'Fili', [
[-130,27],[-130,20]
]
],
['interchange_d', 'Fili', [
[-130,27],[-130,20]
]
],
['interchange', 'Kuntsevo_1', [
[-151,27],[-158,31]
]
],
['interchange_dl', 'Kuntsevo_1', [
[-151,27],[-158,31]
]
],
['interchange', 'Kuntsevo_2', [
[-151,27],[-151,35]
]
],
['interchange_d', 'Kuntsevo_2', [
[-151,27],[-151,35]
]
],
['interchange', 'Tsaritsyno', [
[65.5,-142.5],[65.5,-134.95]
]
],
['interchange_d', 'Tsaritsyno', [
[65.5,-142.5],[65.5,-134.95]
]
],
['interchange', 'Tekstilshchiki', [
[114,-74.16],[120,-67]
]
],
['interchange_d', 'Tekstilshchiki', [
[114,-74.16],[120,-67]
]
],
['interchange', 'Moskva_Tovarnaya', [
[84,-27],[84,-19.725]
]
],
['interchange_dl', 'Moskva_Tovarnaya', [
[84,-27],[84,-19.725]
]
],
['interchange', 'Kurskiy_Vokzal_1', [
[76,14],[67.58,18.15]
]
],
['interchange_d', 'Kurskiy_Vokzal_1', [
[76,14],[67.58,18.15]
]
],
['interchange', 'Kurskiy_Vokzal_2', [
[76,14,'Q'],[71.2,10.1,'Q'],[65.3,9.56,'Q']
]
],
['interchange_d', 'Kurskiy_Vokzal_2', [
[76,14,'Q'],[71.2,10.1,'Q'],[65.3,9.56,'Q']
]
],
['interchange', 'Kurskiy_Vokzal_3', [
[76,14,'Q'],[76,20,'Q'],[73.5,24,'Q']
]
],
['interchange_d', 'Kurskiy_Vokzal_3', [
[76,14,'Q'],[76,20,'Q'],[73.5,24,'Q']
]
],
['interchange', 'Komsomolskaya-3_Vokzal', [
[51.875,46.96],[51.875,56],[51.875,46.96],[61,46.96],[51.875,46.96],[51.875,38],[51.875,46.96],[43,46.96],
[43,46.96,'Q'],[44,55,'Q'],[51.875,56,'Q'],
[51.875,56,'Q'],[60,55,'Q'],[61,46.96,'Q'],
[61,46.96,'Q'],[60,39,'Q'],[51.875,38,'Q'],
[51.875,38,'Q'],[44,39,'Q'],[43,46.96,'Q']
]
],
['interchange_d', 'Komsomolskaya-3_Vokzal', [
[51.875,46.96],[51.875,56],[51.875,46.96],[61,46.96],[51.875,46.96],[51.875,38],[51.875,46.96],[43,46.96],
[43,46.96,'Q'],[44,55,'Q'],[51.875,56,'Q'],
[51.875,56,'Q'],[60,55,'Q'],[61,46.96,'Q'],
[61,46.96,'Q'],[60,39,'Q'],[51.875,38,'Q'],
[51.875,38,'Q'],[44,39,'Q'],[43,46.96,'Q']
]
],
['interchange', 'Rzhevskaya', [
[28,97],[33,91]
]
],
['interchange_d', 'Rzhevskaya', [
[28,97],[33,91]
]
],
['interchange', 'Savyolovskaya', [
[-38,88],[-46,91],[-38,96],[-38,88]
]
],
['interchange_d', 'Savyolovskaya', [
[-38,88],[-46,91],[-38,96],[-38,88]
]
],
['interchange', 'Timiryazevskaya_2', [
[-38,109],[-46,109]
]
],
['interchange_d', 'Timiryazevskaya_2', [
[-38,109],[-46,109]
]
],
['interchange', 'Okruzhnaya', [
[-38,122],[-38,130],[-46,138]
]
],
['interchange_dl', 'Okruzhnaya', [
[-38,122],[-38,130],[-46,138]
]
],
['interchange', 'Paveletskiy_Vokzal', [
[35,-64],[35,-56]
]
],
['interchange_d', 'Paveletskiy_Vokzal', [
[35,-64],[35,-56]
]
],
['interchange', 'ZIL', [
[19,-78],[26,-84]
]
],
['interchange_dl', 'ZIL', [
[19,-78],[26,-84]
]
],
['interchange', 'Nizhnie_Kotly', [
[7.35,-94],[12,-98]
]
],
['interchange_d', 'Nizhnie_Kotly', [
[7.35,-94],[12,-98]
]
],
['interchange', 'Kolomenskoe', [
[22,-135.36],[22,-129]
]
],
['interchange_d', 'Kolomenskoe', [
[22,-135.36],[22,-129]
]
],
['interchange', 'Vykhino', [
[150,-101],[143,-101]
]
],
['interchange_d', 'Vykhino', [
[150,-101],[143,-101]
]
],
['interchange', 'Veshnyaki', [
[141,-85],[150,-85]
]
],
['interchange_dl', 'Veshnyaki', [
[141,-85],[150,-85]
]
],
['interchange', 'Chukhlinka', [
[134,-38],[134,-45]
]
],
['interchange_d', 'Chukhlinka', [
[134,-38],[134,-45]
]
],
['interchange', 'Novaya', [
[115,6],[109,1]
]
],
['interchange_dl', 'Novaya', [
[115,6],[109,1]
]
],
['interchange', 'Elektrozavodskaya', [
[92,42.25],[87.7,38]
]
],
['interchange_d', 'Elektrozavodskaya', [
[92,42.25],[87.7,38]
]
],
['interchange', 'Rizhskaya', [
[33,91],[28,84]
]
],
['interchange_d', 'Rizhskaya', [
[33,91],[28,84]
]
],
['interchange', 'Dmitrovskaya', [
[-38,103],[-32,103]
]
],
['interchange_d', 'Dmitrovskaya', [
[-38,103],[-32,103]
]
],
['interchange', 'Leningradskaya', [
[-79,92],[-79,103]
]
],
['interchange_dl', 'Leningradskaya', [
[-79,92],[-79,103]
]
],
['interchange', 'Tushino', [
[-126,103],[-118,103]
]
],
['interchange_d', 'Tushino', [
[-126,103],[-118,103]
], 'Тушино', null, 1
],
['interchange', 'Reutovo', [
[168,-32],[174,-38]
]
],
['interchange_dl', 'Reutovo', [
[168,-32],[174,-38]
]
],
['interchange', 'Novogireevo', [
[159,-32],[159,-38]
]
],
['interchange_dl', 'Novogireevo', [
[159,-32],[159,-38]
]
],
['interchange', 'Serp_I_Molot', [
[84,-11],[84,-2]
]
],
['interchange_d', 'Serp_I_Molot', [
[84,-11],[84,-2]
]
],
['interchange', '141_km', [
[-132,197],[-138,192]
]
],
['interchange_dl', '141_km', [
[-132,197],[-138,192]
]
],
['interchange', '165_km', [
[-205,174],[-197,182]
]
],
['interchange_dl', '165_km', [
[-205,174],[-197,182]
]
]
];
var MSTATIONS = [
// Metro
['s1','Ulitsa_Podbelskogo',[[69,103]],'Улица Подбельского',null,1],
['s1_2','Komsomolskaya',[[51.875,46.96]],'Комсомольская',null,1],
['s1_1','Chistye_Prudy',[[29.732,25]],'Чистые пруды',null,1],
['s1_2','Lubyanka',[[14,9.39]],'Лубянка',null,1],
['s1_3','Okhotny_Ryad',[[-6.55,-11]],'Охотный ряд',null,1],
['s1_2','Biblioteka_Imeni_Lenina',[[-17.64,-22]],'Библиотека имени Ленина',null,1],
['s1_2','Park_Kultury',[[-44,-48.15]],'Парк Культуры',null,1],
['s1_4','Yugo-Zapadnaya',[[-132,-86]],'Юго-Западная',null,1],
//
['s2','Rechnoy_Vokzal',[[-79,119]],'Речной вокзал',null,1],
['s2_1','Voykovskaya',[[-79,92]],'Войковская',null,1],
['s2_1','Belorusskaya',[[-52.38,46.39]],'Белорусская',null,1],
['s2_1','Tverskaya',[[-32,26]],'Тверская',null,1],
['s2_2','Teatralnaya',[[-1,-11]],'Театральная',null,1],
['s2_3','Novokuznetskaya',[[22,-43]],'Новокузнецкая',null,1],
['s2_1','Paveletskaya',[[35,-56]],'Павелецкая',null,1],
['s2_1','Kashirskaya',[[46,-113]],'Каширская',null,1],
['s2_3','Tsaritsyno',[[65.5,-142.5]],'Царицыно',null,1],
['s2_1','Krasnogvardeyskaya',[[87,-164]],'Красногвардейская',null,1],
['s2_4','Alma-Atinskaya',[[96,-173]],'Алма-Атинская',null,1],
//
['s3','Pyatnitskoye_Shosse',[[-158,60]],'Пятницкое шоссе',null,1],
['s3_2','Kuntsevskaya',[[-158,31]],'Кунцевская',null,1],
['s3_2','Kievskaya',[[-71,-39]],'Киевская',null,1],
['s3_3','Arbatskaya',[[-28,-27]],'Арбатская',null,1],
['s3_4','Ploshchad_Revolyutsii',[[4,-16]],'Площадь Революции',null,1],
['s3_1','Kurskaya',[[73.5,24]],'Курская',null,1],
['s3_1','Elektrozavodskaya',[[92,42.25]],'Электрозаводская',null,1],
['s3','Shchyolkovskaya',[[132,63]],'Щёлковская',null,1],
//
['s4','Mezhdunarodnaya',[[-102,20]],'Международная',null,1],
['s4','Kuntsevskaya',[[-151,35]],'Кунцевская',null,1],
['s4_1','Fili',[[-130,20]],'Фили',null,1],
['s4_2','Kievskaya',[[-71,-28]],'Киевская',null,1],
['s4_2','Alexandrovsky_Sad',[[-26,-19]],'Александровский сад',null,1],
//
['s5_1','Kurskaya',[[67.58,18.15]],'Курская',null,1],
['s5_1','Taganskaya',[[68.115,-16]],'Таганская',null,1],
['s5_1','Dobryninskaya',[[12,-68.94]],'Добрынинская',null,1],
['s5_3','Oktyabrskaya',[[-24,-65.72]],'',null,1],
['s5_1','Park_Kultury',[[-44,-54.42]],'',null,1],
['s5','Kievskaya',[[-62.22,-32]],'Киевская',null,1],
['s5_4','Krasnopresnenskaya',[[-67.89,17]],'Краснопресненская',null,1],
['s5_2','Novoslobodskaya',[[-34.1,61.12]],'Новослободская',null,1],
['s5_1','Prospekt_Mira',[[26.88,64.6]],'',null,1],
//
['s6','Medvedkovo',[[33,148]],'Медведково',null,1],
['s6_1','VDNKh',[[33,115]],'ВДНХ',null,1],
['s6_1','Rizhskaya',[[33,91]],'Рижская',null,1],
['s6_2','Prospekt_Mira',[[26.88,70]],'Проспект Мира',null,1],
['s6_2','Turgenevskaya',[[18,25]],'Тургеневская',null,1],
['s6_2','Kitay-Gorod',[[37,-5]],'Китай-город',null,1],
['s6_1','Tretyakovskaya',[[22,-33]],'Третьяковская',null,1],
['s6_5','Oktyabrskaya',[[-24,-59]],'Октябрьская',null,1],
['s6_4','Novoyasenevskaya',[[-44,-129]],'Новоясеневская',null,1],
//
['s7','Planernaya',[[-126,119]],'Планерная',null,1],
['s7_6','Tushinskaya',[[-126,103]],'Тушинская',null,1],
['s7_1','Begovaya',[[-91,46.49]],'Беговая',null,1],
['s7_2','Barrikadnaya',[[-61,17]],'Баррикадная',null,1],
['s7_3','Pushkinskaya',[[-26,14]],'Пушкинская',null,1],
['s7_5','Kuznetsky_Most',[[10,14]],'Кузнецкий мост',null,1],
['s7_1','Kitay-Gorod',[[41,-2]],'',null,1],
['s7_1','Taganskaya',[[61,-22]],'Таганская',null,1],
['s7_1','Proletarskaya',[[87,-48]],'Пролетарская',null,1],
['s7_1','Tekstilshchiki',[[114,-74.16]],'Текстильщики',null,1],
['s7_5','Ryazanskiy_Prospekt',[[141,-85]],'Рязанский проспект',null,1],
['s7_4','Vykhino',[[143,-101]],'Выхино',null,1],
//
['s8_1','Tretyakovskaya',[[30,-38]],'',null,1],
['s8_2','Marksistskaya',[[71,-24]],'Марксистская',null,1],
['s8_3','Ploshchad_Ilicha',[[84,-11]],'Площадь Ильича',null,1],
['s8_1','Aviamotornaya',[[115,6]], 'Авиамоторная',null,1],
['s8_4','Novogireevo',[[159,-32]],'Новогиреево',null,1],
['s8','Novokosino',[[168,-32]],'Новокосино',null,1],
//
['s9','Altufyevo',[[-38,148]],'Алтуфьево',null,1],
['s9_1','Petrovsko-Razumovskaya',[[-38,122]],'Петровско-Разумовская',null,1],
['s9_6','Timiryazevskaya',[[-38,109]],'Тимирязевская',null,1],
['s9_6','Dmitrovskaya',[[-38,103]],'Дмитровская',null,1],
['s9_1','Savyolovskaya',[[-38,96]],'Савёловская',null,1],
['s9_2','Mendeleyevskaya',[[-34.1,67]],'Менделеевская',null,1],
['s9_3','Tsvetnoy_Bulvar',[[-19,49]],'Цветной бульвар',null,1],
['s9_2','Chekhovskaya',[[-20.15,26]],'Чеховская',null,1],
['s9_4','Borovitskaya',[[-18,-33]],'Боровицкая',null,1],
['s9_3','Serpukhovskaya',[[12,-63]],'Серпуховская',null,1],
['s9_3','Tulskaya',[[19,-78]],'Тульская',null,1],
['s9_3','Nagatinskaya',[[7.35,-94]],'Нагатинская',null,1],
['s9_3','Sevastopolskaya',[[-12,-129]],'Севастопольская',null,1],
['s9_5','Bulvar_Dmitriya_Donskogo',[[-12,-153]],'Бульвар Дмитрия Донского',null,1],
//
['s10','Marina_Roshcha',[[4,96]],'Марьина Роща',null,1],
['s10_1','Trubnaya',[[-15,47]],'Трубная',null,1],
['s10_2','Sretensky_Bulvar',[[24,33]],'Сретенский бульвар',null,1],
['s10_3','Chkalovskaya',[[65.3,9.56]],'Чкаловская',null,1],
['s10_1','Rimskaya',[[84,-19.725]],'Римская',null,1],
['s10_2','Krestyanskaya_Zastava',[[91,-43]],'Крестьянская застава',null,1],
['s10_4','Zyablikovo',[[91,-160]],'Зябликово',null,1],
//
['s11_1','Kakhovskaya',[[-6,-129]],'Каховская',null,1],
['s11_2','Varshavskaya',[[22,-129]],'Варшавская',null,1],
['s11_2','Kashirskaya', [[43,-116]],'',null,1],
//
['s12_1','Ulitsa_Starokachalovskaya',[[-9,-156]],'Улица Старокачаловская',null,1],
['s12_2','Buninskaya_Alleya',[[3,-168]],'Бунинская аллея',null,1],
// monorail
['sMono','Timiryazevskaya',[[-38,115]],'',null,1],
['sMono','Ulitsa_Milashenkova',[[-12,137]],'Ул.Милашенкова',null,1],
['sMono_1','Teletsentr',[[0,137]],'Телецентр',null,1],
['sMono_2','Ulitsa_Akademika_Koroleva',[[12,137]],'Ул.Академика Королева',null,1],
['sMono_3','Vystavochny_Tsentr',[[33,121]],'Выставочный Центр',null,1],
['sMono_1','Ulitsa_Sergeya_Eyzenshteyna',[[46,121]],'Ул.С.Эйзенштейна',null,1],
// MKAD
['mkad','ml1',[[-150,49]],'МКАД',[-150,49],1],
['mkad','ml2',[[-139,-49]],'МКАД',[-139,-49],1],
['mkad','ml3',[[113,-121]],'МКАД',[113,-121],1],
['mkad','ml4',[[197,27]],'МКАД',[197,27],1],
['mkad','ml5',[[-6, 158]],'МКАД',[-6, 158],1]
];
var RSTATIONS = [
['t1',[
['a1','Begovaya',[[-91,40.28]],'Беговая',null,1],
['a1_1','Testovskaya',[[-109,27]],'Тестовская',null,1],
['a1_1','Fili',[[-130,27]],'Фили',null,1],
['a1_2','Kuntsevo-1',[[-151,27]],'Кунцево-1',null,1],
['a1_3','Rabochiy_Poselok',[[-188,-19]],'Рабочий поселок',null,1],
['a1_5','Romashkovo',[[-199,-49]],'Ромашково',null,1],
['a1_5','Razdory',[[-199,-54]],'Раздоры',null,1],
['a1_5','Barvikha',[[-199,-59]],'Барвиха',null,1],
['a1_5','Ilinskoe',[[-199,-64]],'Ильинское',null,1],
['a1','Usovo',[[-199,-73]],'Усово',null,1],
['a1_6','Setun',[[-188,-30]],'Сетунь',null,1],
['a1_6','Nemchinovka',[[-188,-34]],'Немчиновка',null,1],
['a1_6','Trekhgorka',[[-188,-38]],'Трёхгорка',null,1],
['a1_6','Bakovka',[[-188,-42]],'Баковка',null,1],
['a1_6','Odintsovo',[[-188,-46]],'Одинцово',null,1],
['a1_6','Otradnoe',[[-188,-50]],'Отрадное',null,1],
['a1_6','Pionerskaya',[[-188,-54]],'Пионерская',null,1],
['a1_6','Perkhushkovo',[[-188,-58]],'Перхушково',null,1],
['a1_6','Zdravnitsa',[[-188,-62]],'Здравница',null,1],
['a1_6','Zhavoronki',[[-188,-66]],'Жаворонки',null,1],
['a1_6','Dachnoe',[[-188,-70]],'Дачное',null,1],
['a1_6','Malye_Vyazemy',[[-188,-74]],'Малые Вязёмы',null,1],
['a1_3','Golitsino',[[-188,-82]],'Голицыно',null,1],
['a1_5','Zakharovo',[[-199,-97]],'Захарово',null,1],
['a1_5','Khlyupino',[[-199,-102]],'Хлюпино',null,1],
['a1_5','Skorotovo',[[-199,-107]],'Скоротово',null,1],
['a1','Zvenigorod',[[-199,-113]],'Звенигород',null,1],
['a1_6','Sushkinskaya',[[-188,-95]],'Сушкинская',null,1],
['a1_6','Petelino',[[-188,-100]],'Петелино',null,1],
['a1_6','Chastsovskaya',[[-188,-105]],'Часцовская',null,1],
['a1_6','Portnovskaya',[[-188,-110]],'Портновская',null,1],
['a1_4','Kubinka-1',[[-188,-122]],'Кубинка-1',null,1],
['a1_5','Chapaevka',[[-188,-135]],'Чапаевка',null,1],
['a1_5','Polushkino',[[-188,-139]],'Полушкино',null,1],
['a1_5','Sanatornaya',[[-188,-143]],'Санаторная',null,1],
['a1_5','Tuchkovo',[[-188,-147]],'Тучково',null,1],
['a1_5','Teatralnaya',[[-188,-151]],'Театральная',null,1],
['a1_5','Sadovaya',[[-188,-155]],'Садовая',null,1],
['a1_5','Dorokhovo',[[-188,-159]],'Дорохово',null,1],
['a1_5','Partizanskaya',[[-188,-163]],'Партизанская',null,1],
['a1_5','Shalikovo',[[-188,-167]],'Шаликово',null,1],
['a1_5','Kukarinskaya',[[-188,-171]],'Кукаринская',null,1],
['a1_5','109_km',[[-188,-175]],'109 км',null,1],
['a1_5','Mozhaysk',[[-188,-179]],'Можайск',null,1],
['a1_5','Borodino',[[-188,-183]],'Бородино',null,1],
['a1_5','Koloch',[[-188,-187]],'Колочь',null,1],
['a1_5','Uvarovka',[[-188,-191]],'Уваровка',null,1],
['a1_5','144_km',[[-188,-195]],'144 км',null,1],
['a1_5','147_km',[[-188,-199]],'147 км',null,1],
['a1_5','Drovnino',[[-188,-203]],'Дровнино',null,1],
['a1_5','Batyushkovo',[[-188,-207]],'Батюшково',null,1],
['a1_5','Kolesniki',[[-188,-211]],'Колесники',null,1],
['a1_5','Gagarin',[[-188,-215]],'Гагарин',null,1],
['a1_5','Vasilisino',[[-188,-219]],'Василисино',null,1],
['a1_5','Sergo-Ivanovskaya',[[-188,-223]],'Серго-Ивановская',null,1],
['a1_5','205_km',[[-188,-227]],'205 км',null,1],
['a1_5','Tumanovo',[[-188,-231]],'Туманово',null,1],
['a1_5','215_km',[[-188,-235]],'215 км',null,1],
['a1_5','218_km',[[-188,-239]],'218 км',null,1],
['a1_5','Meshcherskaya',[[-188,-243]],'Мещёрская',null,1],
['a1_5','Podelki',[[-188,-247]],'Подъёлки',null,1],
['a1_5','Komyagino',[[-188,-251]],'Комягино',null,1],
['a1_5','Zubarevka',[[-188,-255]],'Зубаревка',null,1],
['a1_3','Vyazma',[[-188,-265]],'Вязьма',null,1]
],'Белорусское'],
['t2',[
['a2','Kievskiy_Vokzal',[[-78,-33]],'Киевский вокзал',null,1],
['a2_5','Msk.Sortirovochnaya',[[-100,-58]],'Мск.Сортировочная',null,1],
['a2_5','Matveevskaya',[[-100,-104]],'Матвеевская',null,1],
['a2_5','Ochakovo',[[-100,-109]],'Очаково',null,1],
['a2_5','Skolkovo',[[-100,-114]],'Сколково',null,1],
['a2_1','Solnechnaya',[[-100,-120]],'Солнечная',null,1],
['a2_6','Peredelkino',[[-100,-129]],'Переделкино',null,1],
['a2_6','Michyurinets',[[-100,-134]],'Мичуринец',null,1],
['a2_6','Vnukovo',[[-100,-139]],'Внуково',null,1],
['mr1','Novoperedelkino',[[-74,-142]],'Новопеределкино',null,1],
['a2_1','Lesnoy_Gorodok',[[-100,-149]],'Лесной городок',null,1],
['a2_6','Tolstopaltsevo',[[-100,-159]],'Толстопальцево',null,1],
['a2_6','Kokoshkino',[[-100,-164]],'Кокошкино',null,1],
['a2_6','Kreshkino',[[-100,-169]],'Крёшкино',null,1],
['a2_6','Pobeda',[[-100,-174]],'Победа',null,1],
['a2_6','Aprelevka',[[-100,-179]],'Апрелевка',null,1],
['a2_6','Dachnaya',[[-100,-184]],'Дачная',null,1],
['a2_6','Alabino',[[-100,-189]],'Алабино',null,1],
['a2_6','Selyatino',[[-100,-194]],'Селятино',null,1],
['a2_6','Rassudovo',[[-100,-199]],'Рассудово',null,1],
['a2_6','Ozhigovo',[[-100,-204]],'Ожигово',null,1],
['a2_2','Airport_Vnukovo',[[-70,-179]],'Аэропорт Внуково',null,1],
['a2_4','Bekasovo-1',[[-100,-213]],'Бекасово-1',null,1],
['a2_5','Zosimova Pustyn',[[-100,-239]],'Зосимова Пустынь',null,1],
['a2_5','Nara',[[-100,-244]],'Нара',null,1],
['a2_5','Latyshskaya',[[-100,-249]],'Латышская',null,1],
['a2_5','Bashkino',[[-100,-254]],'Башкино',null,1],
['a2_5','Vorsino',[[-100,-259]],'Ворсино',null,1],
['a2_5','Balabanovo',[[-100,-264]],'Балабаново',null,1],
['a2_5','Obninskoe',[[-100,-269]],'Обнинское',null,1],
['a2_5','Shemyakino',[[-100,-274]],'Шемякино',null,1],
['a2_5','Maloyaroslavets',[[-100,-279]],'Малоярославец',null,1],
['a2_5','Erdenevo',[[-100,-284]],'Ерденево',null,1],
['a2_5','140_km',[[-100,-289]],'140 км',null,1],
['a2_5','Sukhodrev',[[-100,-294]],'Суходрев',null,1],
['a2_5','Rodinka',[[-100,-299]],'Родинка',null,1],
['a2_5','Slyadnevo',[[-100,-304]],'Сляднево',null,1],
['a2_5','167_km',[[-100,-309]],'167 км',null,1],
['a2_3','Tikhonova_Pustyn',[[-100,-316]],'Тихонова пустынь',null,1],
['a2_3','Muratovka',[[-87.63,-328.8]],'Муратовка',null,1],
['a2_5','Kaluga-1',[[-70,-368]],'Калуга-1',null,1],
['a2_5','Azarovo',[[-78,-338.79]],'Азарово',null,1],
['a2_5','Sadovaya',[[-82,-334.64]],'Садовая',null,1],
['a2_6','Kaluga-1',[[-100,-368]],'Калуга-2',null,1],
['a2_6','Gorenskaya',[[-100,-362]],'Горенская',null,1]
], 'Киевское'],
['t3',[
['a3','Uzunovo',[[47,-368]],'Узуново',null,1],
['a3_4','152_km',[[47,-364]],'152 км',null,1],
['a3_4','Korovino',[[47,-360]],'Коровино',null,1],
['a3_4','146_km',[[47,-356]],'146 км',null,1],
['a3_4','Bogatishchevo',[[47,-352]],'Богатищево',null,1],
['a3_4','137_km',[[47,-348]],'137 км',null,1],
['a3_4','Topkanovo',[[47,-344]],'Топканово',null,1],
['a3_4','131_km',[[47,-340]],'131 км',null,1],
['a3_4','Purlovo',[[47,-336]],'Пурлово',null,1],
['a3_4','121_km',[[47,-332]],'121 км',null,1],
['a3_1','Ozherele',[[47,-327]],'Ожерелье',null,1],
['a3_4','Tesna',[[47,-322]],'Тесна',null,1],
['a3_4','Kashira',[[47,-318]],'Кашира',null,1],
['a3_4','Belopesotskiy',[[47,-314]],'Белопесоцкий',null,1],
['a3_4','Akri',[[47,-310]],'Акри',null,1],
['a3_4','Stupino',[[47,-306]],'Ступино',null,1],
['a3_4','Sienka',[[47,-302]],'Ситенка',null,1],
['a3','Zhilevo',[[47,-296]],'Жилево',null,1],
['a3_5','85_km',[[47,-290]],'85 км',null,1],
['a3_5','Shugarovo',[[47,-285]],'Шугарово',null,1],
['a3_2','Mikhnevo',[[47,-279]],'Михнево',null,1],
['a3_5','Privalovo',[[47,-269]],'Привалово',null,1],
['a3_5','Velyaminovo',[[47,-264]],'Вельяминово',null,1],
['a3_5','Barybino',[[47,-259]],'Барыбино',null,1],
['a3_5','52_km',[[47,-254]],'52 км',null,1],
['a3_5','Belye_Stolby',[[47,-249]],'Белые Столбы',null,1],
['a3_5','Vostryakovo',[[47,-244]],'Востряково',null,1],
['a3_5','Vzletnaya',[[47,-239]],'Взлетная',null,1],
['a3_1','Domodedovo',[[47,-216]],'Домодедово',null,1],
['a3_5','Aviatsionnaya',[[53.35,-222]],'Авиационная',null,1],
['a3_5','Kosmos',[[58.65,-227]],'Космос',null,1],
['a3_3','Airport_Domodedovo',[[65,-233]],'Аэропорт Домодедово',null,1],
['a3_5','32_km',[[47,-210]],'32 км',null,1],
['a3_5','Leninskaya',[[47,-205]],'Ленинская',null,1],
['a3_5','Kalinina',[[47,-200]],'Калинина',null,1],
['a3_5','Rastorguevo',[[47,-195]],'Расторгуево',null,1],
['a3_5','Bulatnikovo',[[47,-190]],'Булатниково',null,1],
['a3_5','Biryulevo_Pass',[[47,-185]],'Бирюлёво Пасс.',null,1],
['a3_5','Biryulevo_Tov',[[47,-180]],'Бирюлёво Тов.',null,1],
['a3_5','Chertanovo',[[47,-175]],'Чертаново',null,1],
['a3','Kolomenskoe',[[22,-135.36]],'Коломенское',null,1],
['a3_1','Nizhnie_Kotly',[[12,-98]],'Нижние Котлы',null,1],
['a3_1','ZIL',[[26,-84]],'ЗИЛ',null,1],
['a3_5','Moskva_Tov',[[32,-78]],'Москва Тов.',null,1],
['a3_1','Paveletskiy_Vokzal',[[35,-64]],'Павелецкий вокзал',null,1]
],'Павелецкое'],
['t4',[
['a4_7','Tula-1',[[-1,-368]],'Тула-1',null,1],
['a4_7','191_km',[[-1,-364]],'191 км',null,1],
['a4_7','Khomyakovo',[[-1,-360]],'Хомяково',null,1],
['a4_7','Baydiki',[[-1,-356]],'Байдики',null,1],
['a4_7','Revyakino',[[-1,-352]],'Ревякино',null,1],
['a4_7','Baranovo',[[-1,-348]],'Бараново',null,1],
['a4_7','Shemetovo',[[-1,-344]],'Шеметово',null,1],
['a4_7','Yasnogorsk',[[-1,-340]],'Ясногорск',null,1],
['a4_7','153_km',[[-1,-336]],'153 км',null,1],
['a4_7','Shulginp',[[-1,-332]],'Шульгино',null,1],
['a4_7','Pakhomovo',[[-1,-328]],'Пахомово',null,1],
['a4_7','132_km',[[-1,-324]],'132 км',null,1],
['a4_7','Tarusskaya',[[-1,-320]],'Тарусская',null,1],
['a4_7','Romanovskie_Dachi',[[-1,-316]],'Романовские Дачи',null,1],
['a4_7','Priokskaya',[[-1,-312]],'Приокская',null,1],
['a4_7','107_km',[[-1,-308]],'107 км',null,1],
['a4_7','Oka',[[-1,-304]],'Ока',null,1],
['a4_7','Serpukhov',[[-1,-300]],'Серпухов',null,1],
['a4_7','Avangard',[[-1,-296]],'Авангард',null,1],
['a4_7','92_km',[[-1,-292]],'92 км',null,1],
['a4_7','Sharapova_Okhota',[[-1,-288]],'Шарапова Охота',null,1],
['a4_7','Luch',[[-1,-284]],'Луч',null,1],
['a4_7','Chekhov',[[-1,-280]],'Чехов',null,1],
['a4_7','Chepelevo',[[-1,-276]],'Чепелёво',null,1],
['a4_7','66_km',[[-1,-272]],'66 км',null,1],
['a4_1','Stolbovaya',[[-1,-262]],'Столбовая',null,1],
['a4_8','Kolkhoznaya',[[-1,-255]],'Колхозная',null,1],
['a4_8','Lvovskaya',[[-1,-251]],'Львовская',null,1],
['a4_8','Grivno',[[-1,-247]],'Гривно',null,1],
['a4_8','Vesennyaya',[[-1,-243]],'Весенняя',null,1],
['a4_8','Kutuzovskaya',[[-1,-239]],'Кутузовская',null,1],
['a4_8','Podolsk',[[-1,-235]],'Подольск',null,1],
['a4_8','Silikatnaya',[[-1,-231]],'Силикатная',null,1],
['a4_8','Shcherbinka',[[-1,-227]],'Щербинка',null,1],
['a4_8','Butovo',[[-1,-223]],'Бутово',null,1],
['a4_8','Bitsa',[[-1,-219]],'Битца',null,1],
['a4_8','Krasniy_Stroitel',[[-1,-215]],'Красный Строитель',null,1],
['a4_8','Pokrovskaya',[[-1,-211]],'Покровская',null,1],
['a4_2','Tsaritsino',[[65.5,-134.95]],'Царицыно',null,1],
['a4_7','Moskvoreche',[[77,-123.35]],'Москворечье',null,1],
['a4_7','Pererva',[[81,-119.32]],'Перерва',null,1],
['a4_7','Depo',[[85,-115.28]],'Депо',null,1],
['a4_7','Lyublino',[[89,-111.25]],'Люблино',null,1],
['a4_2','Tekstilshchiki',[[120,-67]],'Текстильщики',null,1],
['a4_8','Kalitniki',[[103,-46]],'Калитники',null,1],
['a4_3','Moskva_Tovarnaya',[[84,-27]],'Москва Тов.',null,1],
['a4_4','Kurskiy_Vokzal',[[76,14]],'Курский вокзал',null,1],
['a4','Kalanchevskaya',[[43,46.96]],'Каланчевская',null,1],
['a4_5','Rzhevskaya',[[28,97]],'Ржевская',null,1],
['a4_6','Savyolovskaya',[[-38,88]],'Савёловская',null,1],
['a4','Belorusskiy_Vokzal',[[-52.38,54]],'Белорусский вокзал',null,1]
],'Курское'],
['t5',[
['a5_4','Shakhovskaya',[[-197,283]],'Шаховская',null,1],
['a5_4','149_km',[[-197,279]],'149 км',null,1],
['a5_4','Bukholovo',[[-197,275]],'Бухолово',null,1],
['a5_4','141_km',[[-197,271]],'141 км',null,1],
['a5_4','Blagoveshchenskoe',[[-197,267]],'Благовещенское',null,1],
['a5_4','133_km',[[-197,263]],'133 км',null,1],
['a5_4','Volokolamsk',[[-197,259]],'Волоколамск',null,1],
['a5_4','Dubosekovo',[[-197,255]],'Дубосеково',null,1],
['a5_4','Matrenino',[[-197,251]],'Матрёнино',null,1],
['a5_4','Chismena',[[-197,247]],'Чисмена',null,1],
['a5_5','Lesodolgorukovo',[[-197,243]],'Лесодолгоруково',null,1],
['a5_5','91_km',[[-197,239]],'91 км',null,1],
['a5_5','Ustinovka',[[-197,235]],'Устиновка',null,1],
['a5_5','Novopetrovskaya',[[-197,231]],'Новопетровская',null,1],
['a5_5','Rumyantsevo',[[-197,227]],'Румянцево',null,1],
['a5_5','Kursakovskaya',[[-197,223]],'Курсаковская',null,1],
['a5_5','Yadroshino',[[-197,219]],'Ядрошино',null,1],
['a5_5','73_km',[[-197,215]],'73 км',null,1],
['a5_5','Kholshcheviki',[[-197,211]],'Холщевики',null,1],
['a5_5','Chekhovskaya',[[-197,207]],'Чеховская',null,1],
['a5_5','Novoierusalimskaya',[[-197,203]],'Новоиерусалимская',null,1],
['a5_5','Istra',[[-197,199]],'Истра',null,1],
['a5_5','Troitskaya',[[-197,195]],'Троицкая',null,1],
['a5','Manikhino-1',[[-197,182]],'Манихино-1',null,1],
['a5_5','50_km',[[-197,153]],'50 км',null,1],
['a5_5','Snegiri',[[-197,148]],'Снегири',null,1],
['a5_5','Miitovskaya',[[-197,143]],'Миитовская',null,1],
['a5_5','Dedovsk',[[-194,138]],'Дедовск',null,1],
['a5_5','Malinovka',[[-189,133]],'Малиновка',null,1],
['a5_5','Nakhabino',[[-184,128]],'Нахабино',null,1],
['a5_5','Anikeevka',[[-179,123]],'Аникеевка',null,1],
['a5_5','Opalikha',[[-175,119]],'Опалиха',null,1],
['a5_5','Krasnogorskaya',[[-170,114]],'Красногорская',null,1],
['a5_5','Pavshino',[[-165,109]],'Павшино',null,1],
['a5_6','Trikotaznaya',[[-149,103]],'Трикотажная',null,1],
['a5_1','Tushino',[[-118,103]],'Тушино',null,1],
['a5_7','Pokrovskoe-Streshnevo',[[-100,103]],'Покровское-Стрешнево',null,1],
['a5','Leningradskaya',[[-79,103]],'Ленинградская',null,1],
['a5_2','Dmitrovskaya',[[-32,103]],'Дмитровская',null,1],
['a5_3','Rizhskiy_Vokzal',[[28,84]],'Рижский вокзал',null,1]
],'Рижское'],
['t6',[
['a6_4','Tver',[[-132,283]],'Тверь',null,1],
['a6_4','Lazurnaya',[[-132,279]],'Лазурная',null,1],
['a6_4','Chupriyznovka',[[-132,275]],'Чуприяновка',null,1],
['a6_4','Kuzminka',[[-132,271]],'Кузьминка',null,1],
['a6_4','Mezhevo',[[-132,267]],'Межево',null,1],
['a6_4','Redkino',[[-132,263]],'Редкино',null,1],
['a6_4','Moskovskoe_More',[[-132,259]],'Московское Море',null,1],
['a6_4','Zavidovo',[[-132,255]],'Завидово',null,1],
['a6_4','Chernichnaya',[[-132,251]],'Черничная',null,1],
['a6_1','Konakovo_GRES',[[-107,269]],'Конаково ГРЭС',null,1],
['a6_5','Donkhovka',[[-114,262]],'Донховка',null,1],
['a6_5','Konakovskiy_Mokh',[[-120,256]],'Конаковский Мох',null,1],
['a6_5','Puteprovodnaya',[[-126,250]],'Путепроводная',null,1],
['a6_2','Reshetnikovo',[[-132,244]],'Решетниково',null,1],
['a6_5','Yamuga',[[-132,238]],'Ямуга',null,1],
['a6_5','Klin',[[-132,234]],'Клин',null,1],
['a6_5','Streglovo',[[-132,230]],'Стреглово',null,1],
['a6_5','Frolovskoe',[[-132,226]],'Фроловское',null,1],
['a6_5','Pokrovka',[[-132,222]],'Покровка',null,1],
['a6_5','Golovkovo',[[-132,218]],'Головково',null,1],
['a6_5','Senezh',[[-132,214]],'Сенеж',null,1],
['a6_5','Podsolnechnaya',[[-132,210]],'Подсолнечная',null,1],
['a6_5','Berezki-Dachnye',[[-132,206]],'Берёзки Дачные',null,1],
['a6_5','Povarovo-1',[[-132,202]],'Поварово-1',null,1],
['a6_5','Radishchevo',[[-132,182]],'Радищево',null,1],
['a6_5','Alabushevo',[[-132,178]],'Алабушево',null,1],
['a6_5','Kryukovo',[[-132,174]],'Крюково',null,1],
['a6_5','Malino',[[-132,170]],'Малино',null,1],
['a6_5','Firsanovka',[[-132,166]],'Фирсановка',null,1],
['a6_5','Skhodnya',[[-132,162]],'Сходня',null,1],
['a6_5','Podrezkovo',[[-132,158]],'Подрезково',null,1],
['a6_5','Novopodrezkovo',[[-132,154]],'Новоподрезково',null,1],
['a6_5','Planernaya',[[-132,150]],'Планерная',null,1],
['a6_5','Khimki',[[-130,144]],'Химки',null,1],
['a6_5','Levoberezhe',[[-126.5,140.5]],'Левобережье',null,1],
['a6_5','Khovrino',[[-123,137]],'Ховрино',null,1],
['a6_5','Mosselmash',[[-119,133]],'Моссельмаш',null,1],
['a6_6','NATI',[[-74,130]],'НАТИ',null,1],
['a6_7','Ostankino',[[1,130]],'Останкино',null,1],
['a6','Povarovka',[[-132,197]],'Поваровка',null,1],
['a6_3','Petrovsko-Razumovskoe',[[-38,130]],'Петровско-Разумовская',null,1],
['a6','Rizhskaya',[[39,103.95]],'Рижская',null,1],
['a6_1','Leningradskiy_Vokzal',[[51.875,56]],'Ленинградский вокзал',null,1]
],'Ленинградское'],
['t7',[
['a7','Dubna',[[-61,288]],'Дубна',null,1],
['a7_3','Bolshaya_Volga',[[-61,281]],'Большая Волга',null,1],
['a7_3','Karmanovo',[[-61,277]],'Карманово',null,1],
['a7_3','119_km',[[-61,273]],'119 км',null,1],
['a7_3','Meldino',[[-61,269]],'Мелдино',null,1],
['a7_3','Tempy',[[-59.85,264]],'Темпы',null,1],
['a7_3','Zaprudnaya',[[-56.75,261]],'Запрудная',null,1],
['a7_4','Sorevnovanie',[[-53,260]],'Соревнование',null,1],
['a7_5','Savelovo',[[-46,283]],'Савёлово',null,1],
['a7_5','124_km',[[-46,279]],'124 км',null,1],
['a7_5','Lebzino',[[-46,275]],'Лебзино',null,1],
['a7_5','Taldom',[[-46,271]],'Талдом',null,1],
['a7_5','Vlasovo',[[-46,267]],'Власово',null,1],
['a7_5','94_km',[[-46,263]],'94 км',null,1],
['a7_1','Verbilki',[[-46,260]],'Вербилки',null,1],
['a7_5','Orudevo',[[-46,256]],'Орудьево',null,1],
['a7_5','75_km',[[-46,252]],'75 км',null,1],
['a7_5','Kanalstroy',[[-46,248]],'Каналстрой',null,1],
['a7','Dmitrov',[[-46,242]],'Дмитров',null,1],
['a7','Yakhroma',[[-46,230]],'Яхрома',null,1],
['a7_5','Turist',[[-46,224]],'Турист',null,1],
['a7_5','Morozki',[[-46,220]],'Морозки',null,1],
['a7_1','Iksha',[[-46,214]],'Икша',null,1],
['a7_5','Trudovaya',[[-46,208]],'Трудовая',null,1],
['a7_5','Katuar',[[-46,204]],'Катуар',null,1],
['a7_5','Nekrasovskaya',[[-46,200]],'Некрасовская',null,1],
['a7_5','Lugovaya',[[-46,196]],'Луговая',null,1],
['a7_5','Depo',[[-46,192]],'Депо',null,1],
['a7_5','Lobnya',[[-46,188]],'Лобня',null,1],
['a7_1','Sheremetevskaya',[[-46,180]],'Шереметьевская',null,1],
['a7_6','Khlebnikovo',[[-46,172]],'Хлебниково',null,1],
['a7_6','Vodniki',[[-46,168]],'Водники',null,1],
['a7_6','Dolgoprudnaya',[[-46,164]],'Долгопрудная',null,1],
['a7_6','Novodachnaya',[[-46,160]],'Новодачная',null,1],
['a7_6','Mark',[[-46,156]],'Марк',null,1],
['a7_6','Lianozovo',[[-46,152]],'Лианозово',null,1],
['a7_6','Beskudnikovo',[[-46,148]],'Бескудниково',null,1],
['a7_6','Degunino',[[-46,144]],'Дегунино',null,1],
['a7_2','Airport_Sheremetevo',[[-60,194]],'Аэропорт Шереметьево',null,1],
['a7','Okruzhnaya',[[-46,138]],'Окружная',null,1],
['a7','Timiryazevskaya',[[-46,109]],'Тимирязевская',null,1],
['a7','Savelovskiy_Vokzal',[[-46,91]],'Савёловский вокзал',null,1]
],'Савёловское'],
['t8',[
['a8_6','Balakirevo',[[90,283]],'Балакирево',null,1],
['a8_2','Alexandrov-1',[[90,272]],'Александров-1',null,1],
['a8_6','Strunino',[[90,261]],'Струнино',null,1],
['a8_6','Arsaki',[[90,256]],'Арсаки',null,1],
['a8_6','90_km',[[90,251]],'90 км',null,1],
['a8_6','Buzhaninovo',[[90,246]],'Бужаниново',null,1],
['a8_6','83_km',[[90,241]],'83 км',null,1],
['a8_3','Post_81_km',[[90,213]],'Пост 81 км',null,1],
['a8_6','76_km',[[90,206]],'76 км',null,1],
['a8_6','Sergiev_Posad',[[90,202]],'Сергиев Посад',null,1],
['a8_6','Semkhoz',[[90,198]],'Семхоз',null,1],
['a8_6','Khotkovo',[[90,194]],'Хотково',null,1],
['a8_6','Arbamtsevo',[[90,190]],'Абрамцево',null,1],
['a8_6','Radonezh',[[90,186]],'Радонеж',null,1],
['a8_6','Kalistovo',[[90,182]],'Калистово',null,1],
['a8_6','Ashukinskaya',[[90,178]],'Ашукинская',null,1],
['a8_2','Sofrino',[[90,172]],'Софрино',null,1],
['a8_6','43_km',[[90,166]],'43 км',null,1],
['a8_6','Zelenogradskaya',[[90,162]],'Зеленоградская',null,1],
['a8_6','Pravda',[[90,158]],'Правда',null,1],
['a8_6','Zavety_Ilicha',[[90,154]],'Заветы Ильича',null,1],
['a8_6','Pushkino',[[90,150]],'Пушкино',null,1],
['a8_6','Mamontovskaya',[[90,146]],'Мамонтовская',null,1],
['a8_6','Klyazma',[[90,142]],'Клязьма',null,1],
['a8_6','Tarasovskaya',[[90,138]],'Тарасовская',null,1],
['a8_6','Chelyuskinskaya',[[90,134]],'Челюскинская',null,1],
['a8_6','Stroitel',[[90,130]],'Строитель',null,1],
['a8_2','Mytishi',[[90,122]],'Мытищи',null,1],
['a8_7','Tayninskaya',[[90,114]],'Тайнинская',null,1],
['a8_7','Perlovskaya',[[90,109]],'Перловская',null,1],
['a8_7','Los',[[90,104]],'Лось',null,1],
['a8_7','Losinoostrovskaya',[[90,99]],'Лосиноостровкая',null,1],
['a8_7','Severyanin',[[90,94]],'Северянин',null,1],
['a8_7','Yauza',[[90,89]],'Яуза',null,1],
['a8_7','Malenkovskaya',[[90,84]],'Маленковская',null,1],
['a8_7','Moskva-3',[[90,79]],'Москва-3',null,1],
['a8_4','Krasnoarmeysk',[[132,213]],'Красноармейск',null,1],
['a8_7','Putilovo',[[124.83,206]],'Путилово',null,1],
['a8_7','Fedorovskoe',[[119.7,201]],'Федоровское',null,1],
['a8_7','Rakhmaninovo',[[114.58,196]],'Рахманиново',null,1],
['a8_7','Poselok_Dalniy',[[109.46,191]],'Поселок Дальний',null,1],
['a8_3','Fryazino_Pass',[[109,174]],'Фрязино Пасс.',null,1],
['a8_7','Fryazino_Tov',[[109,167]],'Фрязино Тов.',null,1],
['a8_7','Detskaya',[[109,163]],'Детская',null,1],
['a8_7','Ivanteevka',[[109,159]],'Ивантеевка',null,1],
['a8_7','Ivanteevka-2',[[109,155]],'Ивантеевка-2',null,1],
['a8_7','Zeleniy_Bor',[[109,151]],'Зелёный Бор',null,1],
['a8_7','Fabrika_1_Maya',[[109,147]],'Фабрика 1 Мая',null,1],
['a8_5','Bolshevo',[[109,139]],'Болшево',null,1],
['a8_7','Podlipki_Dachnye',[[98.94,130]],'Подлипки Дачные',null,1],
['a8_7','Valentinovka',[[136.02,136]],'Валентиновка',null,1],
['a8_7','Zagoryanskaya',[[141.1,131]],'Загорянская',null,1],
['a8_7','Sokolovskaya',[[146.17,126]],'Соколовская',null,1],
['a8_6','Voronok',[[151.25,121]],'Воронок',null,1],
['a8_6','Shchelkovo',[[156.32,116]],'Щёлково',null,1],
['a8_6','Gagarinskaya',[[161.4,111]],'Гагаринская',null,1],
['a8_6','Chkalovskaya',[[166.48,106]],'Чкаловская',null,1],
['a8_6','Bakhchivandzhi',[[171.55,101]],'Бахчиванджи',null,1],
['a8_6','Tsiolkovskaya',[[176.63,96]],'Циолковская',null,1],
['a8_6','Oseevskaya',[[181.71,91]],'Осеевская',null,1],
['a8_6','Monino',[[186.79,86]],'Монино',null,1],
['a8_6','Kashino',[[191.86,81]],'Кашино',null,1],
['a8_6','Kolontaevo',[[196.93,76]],'Колонтаево',null,1],
['a8_6','Lesnaya',[[201,72]],'Лесная',null,1],
['a8','Yaroslavskiy_Vokzal',[[61,46.96]],'Ярославский вокзал',null,1]
],'Ярославское'],
['t9',[
['a9_7','Vladimir',[[220,283]],'Владимир',null,1],
['a9_7','Yurevets',[[220,279]],'Юрьевец',null,1],
['a9_7','Kolosha',[[220,275]],'Колоша',null,1],
['a9_7','170_km',[[220,271]],'170 км',null,1],
['a9_7','Undol',[[220,267]],'Ундол',null,1],
['a9_7','Sushnevo',[[220,263]],'Cушнево',null,1],
['a9_7','Boldino',[[220,259]],'Болдино',null,1],
['a9_7','Kosterevo',[[220,254]],'Костерёво',null,1],
['a9_7','Petushki',[[220,250]],'Петушки',null,1],
['a9_7','Leonovo',[[220,246]],'Леоново',null,1],
['a9_7','Omutishchi',[[220,242]],'Омутищи',null,1],
['a9_7','113_km',[[220,238]],'113 км',null,1],
['a9_7','Pokrov',[[220,234]],'Покров',null,1],
['a9_7','Glubokovo',[[220,229]],'Глубоково',null,1],
['a9_7','Usad',[[220,225]],'Усад',null,1],
['a9_7','Voynovo',[[220,221]],'Войново',null,1],
['a9_7','Krutoe',[[220,217]],'Крутое',null,1],
['a9','Orekhovo-Zuevo',[[220,199]],'Орехово-Зуево',null,1],
['a9_7','87_km',[[220,187]],'87 км',null,1],
['a9_7','Kabanovo',[[220,182]],'Кабаново',null,1],
['a9_7','Drezna',[[220,177]],'Дрезна',null,1],
['a9_7','Nazarevo',[[220,172]],'Назарьево',null,1],
['a9','Elektrogorsk',[[181,163]],'Электрогорск',null,1],
['a9_7','14_km',[[187.38,157]],'14 км',null,1],
['a9_7','Kovrigino',[[192.7,152]],'Ковригино',null,1],
['a9_7','Lenskaya',[[198,147]],'Ленская',null,1],
['a9_1','Pavlovskiy Posad',[[220,145]],'Павловский Посад',null,1],
['a9_7','Vokhna',[[220,134]],'Вохна',null,1],
['a9_7','Kazanskoe',[[220,129]],'Казанское',null,1],
['a9_2','Zakharovo',[[172,118]],'Захарово',null,1],
['a9_8','Noginsk',[[177,113]],'Ногинск',null,1],
['a9_8','Mashinostroitel',[[182,108]],'Машиностроитель',null,1],
['a9_8','Elektrostal',[[187,103]],'Электросталь',null,1],
['a9_8','Metallurg',[[192,98]],'Металлург',null,1],
['a9_1','Fryazevo',[[220,70]],'Фрязево',null,1],
['a9_7','Esino',[[220,60]],'Есино',null,1],
['a9_7','Khrapunovo',[[220,54]],'Храпуново',null,1],
['a9_7','43_km',[[220,48]],'43 км',null,1],
['a9_7','Elektrougli',[[220,42]],'Электроугли',null,1],
['a9_7','33_km',[[220,36]],'33 км',null,1],
['a9_7','Kupanva',[[220,30]],'Купавна',null,1],
['a9_7','Zarya',[[220,24]],'Заря',null,1],
['a9_7','Chernoe',[[220,18]],'Чёрное',null,1],
['a9_7','Zheleznodorozhnaya',[[216.97,1]],'Железнодорожная',null,1],
['a9_8','Kuchino',[[203.6,-12]],'Кучино',null,1],
['a9_8','Saltykovskaya',[[198.5,-17]],'Салтыковская',null,1],
['a9_8','Nikolskoe',[[193.35,-22]],'Никольское',null,1],
['a9_2','Balashikha',[[174,-5]],'Балашиха',null,1],
['a9_8','Gorenki',[[174,-17]],'Горенки',null,1],
['a9_8','Stroyka',[[174,-12]],'Стройка',null,1],
['a9_3','Reutovo',[[174,-38]],'Реутово',null,1],
['a9_4','Novogireevo',[[159,-38]],'Новогиреево',null,1],
['a9_9','Kuskovo',[[148,-38]],'Кусково',null,1],
['a9_5','Chukhlinka',[[134,-38]],'Чухлинка',null,1],
['a9_7','Karacharovo',[[114.88,-32]],'Карачарово',null,1],
['a9_6','Serp_I_Molot',[[84,-2]],'Серп и молот',null,1],
['a9_10','Kurskiy_Vokzal',[[76,14]],'',null,1]
],'Горьковское'],
['t10',[
['a10_3','Ryazanovka',[[204,-317]],'Рязановка',null,1],
['a10_5','47_km_2',[[204,-312]],'47 км',null,1],
['a10_5','Sazonovo',[[204,-307]],'Сазоново',null,1],
['a10_5','Barmino',[[204,-302]],'Бармино',null,1],
['a10_5','29_km',[[204,-297]],'29 км',null,1],
['a10_5','Pozhoga',[[204,-292]],'Пожога',null,1],
['a10_5','Osanovo',[[204,-287]],'Осаново',null,1],
['a10_4','Vekovka',[[217,-314]],'Вековка',null,1],
['a10_4','Nechaevskaya',[[217,-309]],'Нечаевская',null,1],
['a10_4','Miltsevo',[[217,-304]],'Мильцево',null,1],
['a10_4','Torfprodukt',[[217,-300]],'Торфпродукт',null,1],
['a10_4','Ilichev',[[217,-296]],'Ильичев',null,1],
['a10_4','Tasin',[[217,-292]],'Тасин',null,1],
['a10_4','Struya',[[217,-288]],'Струя',null,1],
['a10_4','Cherusti',[[217,-284]],'Черусти',null,1],
['a10_4','Voymezhniy',[[217,-280]],'Воймёжный',null,1],
['a10_4','Tugolese',[[217,-275]],'Туголесье',null,1],
['a10_2','Krivandino',[[217,-267]],'Кривандино',null,1],
['a10_4','Botino',[[217,-260]],'Ботино',null,1],
['a10_4','Shatura',[[217,-255]],'Шатура',null,1],
['a10_4','Shaturtorf',[[217,-250]],'Шатурторф',null,1],
['a10_4','Zaputnaya',[[217,-245]],'Запутная',null,1],
['a10_4','Zapolitsy',[[217,-240]],'Заполицы',null,1],
['a10_4','Avsyunino',[[217,-235]],'Авсюнино',null,1],
['a10_4','95_km',[[217,-230]],'95 км',null,1],
['a10_4','90_km',[[217,-225]],'90 км',null,1],
['a10_2','Kurovskaya',[[217,-220]],'Куровская',null,1],
['a10_5','Podosinki',[[217,-205]],'Подосинки',null,1],
['a10_5','Antsiferovo',[[217,-200]],'Анцифирово',null,1],
['a10_5','73_km',[[217,-195]],'73_km',null,1],
['a10_5','Shevlyagino',[[217,-190]],'Шевлягино',null,1],
['a10_5','Kuzyaevo',[[217,-185]],'Кузяево',null,1],
['a10_5','Ignatevo',[[217,-180]],'Игнатьево',null,1],
['a10_5','Gzhel',[[217,-175]],'Гжель',null,1],
['a10_5','55_km',[[217,-170]],'55 км',null,1],
['a10_5','Grigorovo',[[213,-159]],'Григорово',null,1],
['a10_5','52_km',[[209,-155]],'52 км',null,1],
['a10_5','49_km',[[205,-151]],'49 км',null,1],
['a10_5','Donino',[[201,-147]],'Донино',null,1],
['a10_5','41_km',[[197,-143]],'41 км',null,1],
['a10_5','Khripan',[[193,-139]],'Хрипань',null,1],
['a10_5','Vyalki',[[189,-135]],'Вялки',null,1],
['a10_5','Rodniki',[[185,-131]],'Родники',null,1],
['a10_5','Ovrazhki',[[181,-127]],'Коренёво',null,1],
['a10_7','Korenevo',[[162,-121]],'Люберцы-2',null,1],
['a10_5','Ryazan-2',[[142,-367]],'Рязань-2',null,1],
['a10_4','Ryazan-1',[[150,-368]],'Рязань-1',null,1],
['a10_4','Lagerniy',[[150,-364]],'Лагерный',null,1],
['a10_2','Dyagilevo',[[150,-359]],'Дягилево',null,1],
['a10_4','Nedostoevo',[[150,-351]],'Недостоево',null,1],
['a10_4','188_km',[[150,-347]],'188 км',null,1],
['a10_4','187_km',[[150,-343]],'187 км',null,1],
['a10_4','Zhylye_Doma',[[150,-339]],'Жилые Дома',null,1],
['a10_4','Depo',[[150,-335]],'Депо',null,1],
['a10_4','Khodynino',[[150,-331]],'Ходинино',null,1],
['a10_2','Rybnoe',[[150,-323]],'Рыбное',null,1],
['a10_4','179_km',[[150,-318]],'179 км',null,1],
['a10_4','Istodniki',[[150,-314]],'Истодники',null,1],
['a10_4','Divovo',[[150,-310]],'Дивово',null,1],
['a10_4','Siemi',[[150,-306]],'Сиеми',null,1],
['a10_4','Alpatevo',[[150,-302]],'Алпатьево',null,1],
['a10_4','Fruktovaya',[[150,-298]],'Фруктовая',null,1],
['a10_4','Podlipki',[[150,-294]],'Подлипки',null,1],
['a10_4','142_km',[[150,-290]],'142 км',null,1],
['a10_4','Lukhovitsy',[[150,-286]],'Луховицы',null,1],
['a10_4','Chernaya',[[150,-282]],'Черная',null,1],
['a10_4','Shchurovo',[[150,-278]],'Щурово',null,1],
['a10_2','Golutvin',[[150,-272]],'Голутвин',null,1],
['a10_4','Kolomna',[[150,-267]],'Коломна',null,1],
['a10_4','113_km',[[150,-263]],'113 км',null,1],
['a10_4','Khoroshovo',[[150,-259]],'Хорошово',null,1],
['a10_4','Konev_Bor',[[150,-255]],'Конев Бор',null,1],
['a10_4','Peski',[[150,-251]],'Пески',null,1],
['a10_4','Tsemgigant',[[150,-247]],'Цемгигант',null,1],
['a10_4','Moskvoretskaya',[[150,-243]],'Москворецкая',null,1],
['a10_4','Shifernaya',[[150,-239]],'Шиферная',null,1],
['a10_3','Voskresensk',[[150,-222]],'Воскресенск',null,1],
['a10_5','88_km',[[150,-217.2]],'88 км',null,1],
['a10_5','Trofimovo',[[150,-213.4]],'Трофимово',null,1],
['a10_5','Konobeevo',[[150,-209.6]],'Конобеево',null,1],
['a10_5','Vinogradovo',[[150,-205.8]],'Виноградово',null,1],
['a10_5','Zolotovo',[[150,-202]],'Золотово',null,1],
['a10_5','Faustovo',[[150,-198.2]],'Фаустово',null,1],
['a10_5','Beloozerskaya',[[150,-194.4]],'Белоозёрская',null,1],
['a10_5','63_km',[[150,-190.6]],'63 км',null,1],
['a10_5','Raduga',[[150,-186.8]],'Радуга',null,1],
['a10_5','Bronnitsy',[[150,-183]],'Бронницы',null,1],
['a10_5','Zagornovo',[[150,-179.2]],'Загорново',null,1],
['a10_5','Sovkhoz',[[150,-175.4]],'Совхоз',null,1],
['a10_5','47_km',[[150,-171.6]],'47 км',null,1],
['a10_5','Ramenskoe',[[150,-167.8]],'Раменское',null,1],
['a10_5','Fabrichnaya',[[150,-164]],'Фабричная',null,1],
['a10_5','42_km',[[150,-160.2]],'42 км',null,1],
['a10_5','Kratovo',[[150,-156.4]],'Кратово',null,1],
['a10_5','Otdykh',[[150,-152.6]],'Отдых',null,1],
['a10_5','Ilinskaya',[[150,-148.8]],'Ильинская',null,1],
['a10_5','Bykovo',[[150,-145]],'Быково',null,1],
['a10_5','Udelnaya',[[150,-141.2]],'Удельная',null,1],
['a10_5','Malakhovka',[[150,-137.4]],'Малаховка',null,1],
['a10_5','Kraskovo',[[150,-133.6]],'Красково',null,1],
['a10_5','Tomilino',[[150,-129.8]],'Томилино',null,1],
['a10_5','Panki',[[150,-126]],'Панки',null,1],
['a10_5','Ukhtomskaya',[[150,-113]],'Ухтомская',null,1],
['a10_5','Kosino',[[150,-108]],'Косино',null,1],
['a10_3','Lyubertsy-1',[[150,-121]],'Люберцы-1',null,1],
['a10_5','Panki',[[150,-126]],'Панки',null,1],
['a10_2','Vykhino',[[150,-101]],'Выхино',null,1],
['a10_2','Veshnyaki',[[150,-85]],'Вешняки',null,1],
['a10_4','Plyushchevo',[[150,-75]],'Плющево',null,1],
['a10','Perovo',[[134,-45]],'Перово',null,1],
['a10_4','Frezer',[[113,-24]],'Фрезер',null,1],
['a10_1','Novaya',[[109,1]],'Новая',null,1],
['a10_4','Sortirovochnaya',[[109,17]],'Сортировочная',null,1],
['a10_1','Elektrozavodskaya',[[87.7,38]],'Электрозаводская',null,1],
['a10_1','Kazanskiy_Vokzal',[[51.875,38]],'Казанский вокзал',null,1],
['a10_6','7_km',[[54,-368]],'7 км',null,1],
['a10_7','Klemovo',[[62,-368]],'Клёмово',null,1],
['a10_6','12_km',[[70,-368]],'12 км',null,1],
['a10_7','Loshatovka',[[78,-368]],'Лошатовка',null,1],
['a10_6','18_km',[[86,-368]],'18 км',null,1],
['a10_5','22_km',[[103,-362.09]],'22 км',null,1],
['a10_5','24_km',[[106.5,-358.68]],'24 км',null,1],
['a10_5','Zhokovo',[[110,-355.26]],'Жоково',null,1],
['a10_5','28_km',[[113.5,-351.85]],'28 км',null,1],
['a10_5','Vereykino',[[117,-348.44]],'Верейкино',null,1],
['a10_5','35_km',[[120.5,-345.03]],'35 км',null,1],
['a10_5','Makeevo_Msk',[[124,-341.62]],'Макеeво-Моск.',null,1],
['a10_5','47_km_1',[[127.5,-338.18]],'47 км',null,1],
['a10_5','Latygory',[[131,-334.75]],'Латыгоры',null,1],
['a10_5','53_km',[[134.5,-331.35]],'53 км',null,1],
['a10_5','59_km',[[138,-327.92]],'59 км',null,1],
['a10_5','Zhitovo',[[141,-325]],'Житово',null,1],
['a10_8','Valishchevo',[[145,-323]],'Валищево',null,1],
['a10_1','Ozery',[[81,-323]],'Озёры',null,1],
['a10_4','38_km',[[85,-319.08]],'38 км',null,1],
['a10_4','30_km',[[89,-315.15]],'30 км',null,1],
['a10_4','Danilovskaya',[[93,-311.23]],'Даниловская',null,1],
['a10_4','Kudryavtsevo',[[97,-307.32]],'Кудрявцево',null,1],
['a10_4','Karasevo',[[101,-303.4]],'Карасёво',null,1],
['a10_4','18_km',[[105,-299.48]],'18 км',null,1],
['a10_4','Semenovskiy',[[109,-295.56]],'Семёновский',null,1],
['a10_4','Lystsovskaya',[[113,-291.64]],'Лысцовская',null,1],
['a10_4','Sychevo',[[117,-287.72]],'Сычёво',null,1],
['a10_4','6_km',[[121,-283.8]],'6 км',null,1],
['a10_4','Bachmanovo',[[125,-279.88]],'Бачманово',null,1]
],'Казанское'],
['t11',[
['a11_4','Lyutik',[[121,-251]],'Лютик',null,1],
['a11_4','Myakinino',[[124.5,-247.5]],'Мякинино',null,1],
['a11_4','Shubatovo',[[128,-244]],'Шубатово',null,1],
['a11_4','Lesnye_Dary',[[131.5,-240.5]],'Лесные Дары',null,1],
['a11_4','Shkin',[[135,-237]],'Шкинь',null,1],
['a11_4','Osenka',[[138.5,-233.5]],'Осёнка',null,1],
['a11_4','Nepetsino',[[142,-230]],'Непецино',null,1],
['a11_4','Ratmirovo',[[145.5,-226.5]],'Ратмирово',null,1],
['a11_7','Khorlovo',[[166,-227]],'Хорлово',null,1],
['a11_5','Rudnikovskaya',[[178,-225.85]],'Рудниковская',null,1],
['a11_5','Egorevsk',[[181,-223]],'Егорьевск',null,1],
['a11_5','32_km',[[184,-220]],'32 км',null,1],
['a11_6','88_km',[[159,-218]],'88 км',null,1],
['a11_7','Lopatino',[[168,-218]],'Лопатино',null,1],
['a11_6','Berendino',[[177,-218]],'Берендино',null,1],
['a11_7','Ilinskiy_Pogost',[[199,-214]],'Ильинский Пг',null,1],
['a11_6','Nerskaya',[[206,-214]],'Нерская',null,1],
['a11_4','Davydovo',[[239,-142]],'Давыдово',null,1],
['a11_4','Dulevo',[[239,-137]],'Дулёво',null,1],
['a11_4','122_km',[[217,-99]],'122 км',null,1],
['a11_4','Tsentralniy_B-P',[[217,-94]],'Центральный блок-пост',null,1],
['a11_4','Depo_Orekhovo',[[217,-89]],'Депо Орехово',null,1],
['a11_4','Severniy',[[217,-84]],'Северный',null,1],
['a11_5','185_km',[[179,217]],'185 км',null,1],
['a11_5','Potochino',[[175,221]],'Поточино',null,1],
['a11_5','178_km',[[171,225]],'178 км',null,1],
['a11_5','173_km',[[167,229]],'173 км',null,1],
['a11_5','Vetchi',[[163,233]],'Ветчи',null,1],
['a11_5','168_km',[[159,237]],'168 км',null,1],
['a11_5','Sanino',[[155,241]],'Санино',null,1],
['a11_5','158_km',[[151,245]],'158 км',null,1],
['a11_5','Ileykino',[[147,249]],'Илейкино',null,1],
['a11_5','Kirzhach',[[143,253]],'Киржач',null,1],
['a11_5','138_km',[[139,257]],'138 км',null,1],
['a11_1','Belkovo',[[134,262]],'Белково',null,1],
['a11_7','126_km',[[124,262]],'126 км',null,1],
['a11_6','Karabanovo',[[114,262]],'Карабаново',null,1],
['a11_7','Aleksandrov-2',[[104,262]],'Александров-2',null,1],
['a11_6','Naugolnaya',[[72,213]],'Наугольная',null,1],
['a11_6','40_km',[[52,213]],'40 км',null,1],
['a11_7','Bubyakovo',[[40,213]],'Бубяково',null,1],
['a11_6','47_km',[[30,213]],'47 км',null,1],
['a11_7','Zheltikovo',[[18,213]],'Желтиково',null,1],
['a11_5','62_km',[[6,215]],'62 км',null,1],
['a11_5','Kostino',[[2.5,218.5]],'Костино',null,1],
['a11_5','69_km',[[-1,222]],'69 км',null,1],
['a11_5','71_km',[[-5,226]],'71 км',null,1],
['a11_5','74_km',[[-9,230]],'74 км',null,1],
['a11_5','Drachevo',[[-13,234]],'Драчёво',null,1],
['a11_7','80_km',[[-26,236]],'80 км',null,1],
['a11_1','Ivantsevo',[[-35,236]],'Иванцево',null,1],
['a11_6','109_km',[[-72,214]],'109 км',null,1],
['a11_5','Belly_Rast',[[-83,211]],'Белый Раст',null,1],
['a11_5','116_km',[[-87,207]],'116 км',null,1],
['a11_5','120_km',[[-91,203]],'120 км',null,1],
['a11_5','Bukharovo',[[-95,199]],'Бухарово',null,1],
['a11_5','128_km',[[-99,195]],'128 км',null,1],
['a11_7','Povarovo-2',[[-114,192]],'Поварово-2',null,1],
['a11','142_km',[[-138,192]],'142 км',null,1],
['a11_6','Povarovo-3',[[-158,192]],'Поварово-3',null,1],
['a11_5','Depo',[[-174,189]],'Депо',null,1],
['a11_5','Zhilino',[[-178,185]],'Жилино',null,1],
['a11_5','155_km',[[-182,181]],'155 км',null,1],
['a11_5','159_km',[[-186,177]],'159 км',null,1],
['a11_2','Manikhino-2',[[-189,174]],'Манихино-2',null,1],
['a11_3','165_km',[[-205,174]],'165 км',null,1],
['a11_4','Lukino',[[-214,140]],'Лукино',null,1],
['a11_4','174_km',[[-214,133]],'174 км',null,1],
['a11_4','177_km',[[-214,126]],'177 км',null,1],
['a11_4','183_km',[[-214,119]],'183 км',null,1],
['a11_4','Dyudkovo',[[-186,75]],'Дюдьково',null,1],
['a11_4','190_km',[[-186,68]],'190 км',null,1],
['a11_4','192_km',[[-186,61]],'192 км',null,1],
['a11_5','Yastrebki',[[-234,-15]],'Ястребки',null,1],
['a11_5','199_km',[[-234,-21]],'199 км',null,1],
['a11_5','Kubinka-2',[[-234,-27]],'Кубинка-2',null,1],
['a11_4','211_km',[[-157,-128.78]],'211 км',null,1],
['a11_4','214_km',[[-152,-133.56]],'214 км',null,1],
['a11_4','Akulovo',[[-147,-138.35]],'Акулово',null,1],
['a11_4','221_km',[[-142,-143.13]],'221 км',null,1],
['a11_4','Pozhitkovo',[[-126,-201]],'Пожитково',null,1],
['a11_6','Poselok_Kievskiy',[[-87,-213]],'Пос.Киевский',null,1],
['a11_3','Yaganovo',[[116,-256]],'Яганово',null,1],
['a11_4','341_km',[[105,-267]],'341 км',null,1],
['a11_4','Malino',[[101,-271]],'Малино',null,1],
['a11_6','332_km',[[78,-279]],'332 км',null,1],
['a11_7','328_km',[[66,-279]],'328 км',null,1],
['a11_4','Kolychevo',[[103,-285]],'Колычево',null,1],
['a11_4','Shmatovo',[[99,-289]],'Шматово',null,1],
['a11_7','Usady_Okr',[[33,-279]],'Усады Окр.',null,1],
['a11_5','312_km',[[18,-276]],'312 км',null,1],
['a11_5','309_km',[[14,-272]],'309 км',null,1],
['a11_5','Povadino',[[10,-268]],'Повадино',null,1],
['a11_5','Detkovo',[[6,-264]],'Детково',null,1],
['a11_5','283_km',[[-26,-258]],'283 км',null,1],
['a11_5','Sandarovo',[[-29.5,-254.5]],'Сандарово',null,1],
['a11_5','Vyatkino',[[-33,-251]],'Вяткино',null,1],
['a11_5','274_km',[[-36.5,-247.5]],'274 км',null,1],
['a11_5','Chernetskoe',[[-40,-244]],'Чернецкое',null,1],
['a11_5','Novogromovo',[[-43.5,-240.5]],'Новогромово',null,1],
['a11_5','Kresty',[[-47,-237]],'Кресты',null,1],
['a11_5','252_km',[[-50.5,-233.5]],'252 км',null,1],
['a11_5','250_km',[[-54,-230]],'250 км',null,1],
['a11_5','Machikhino',[[-57.5,-226.5]],'Мачихино',null,1],
['a11_5','241_km',[[-61,-223]],'241 км',null,1],
['a11_5','240_km',[[-64.5,-219.5]],'240 км',null,1],
['a11_5','Bekasovo_Tsentr',[[-68,-216]],'Бекасово Центр.',null,1],
['a11_8','Bekasovo_Sort',[[-75,-213]],'Бекасово Сорт.',null,1]
],'БМО']
];
// -----------------------------------
var dw = new dbCarta({
id: "cont-mosrails",
height: 600,
viewportx: 300,
viewporty: 400,
scalebg: 'rgba(100,200,100,0.2)'
});
dw.style.backgroundColor = 'rgb(240,245,251)';
dw.style.border = '1px dashed lightgreen';
// define new layers
var route = function(o){ return dw.extend({cls: 'Line', width: 5, anchor: ['start', 'middle'], labelscale: 1}, o||{}) },
route_d = function(o){ return route(dw.extend({width: 1, fg: 'white', dash: [4,2]}, o||{})) },
interchange = function(o){ return route(dw.extend({fg: 'black', join: 'round', cap: 'round', width: 6}, o||{})) },
interchange_d = function(o) { return interchange(dw.extend({fg: 'white', width: 5}, o||{})) },
station = function(o){ return dw.extend({cls: 'Dot', bg: 'white', size: 3, width: 5, labelscale: 1}, o||{}) },
inst = function(o){ return station(dw.extend({fg: '#a5a6aa', labelcolor: o['labelcolor']}, o)) },
inst_l = function(o){ return inst(dw.extend({bg: o['labelcolor'], fg: o['labelcolor']}, o)) },
rst = function(o){ return station(dw.extend({cls: 'Rect', size: 8, width: 4, join: 'round', labelcolor: 'black'}, o)) },
rst_d = function(o){ return rst(dw.extend({size: 3}, o)) },
rst_l = function(o){ return rst(dw.extend({labelcolor: o['fg']}, o)) },
ost = function(o){ return rst(dw.extend({size: 3, width: 1, fg: 'white'}, o)) };
// metro lines
dw.extend(dw.mopt, {
"mr": route({fg: "#a5a6aa"}),
"r1": route({fg: "#f92b40"}),
"r2": route({fg: "#3e8249"}),
"r3": route({fg: "#0055ac"}),
"r4": route({fg: "#0293e4"}),
"r5": route({fg: "#904736"}),
"r6": route({fg: "#f37e17"}),
"r7": route({fg: "#8b539e"}),
"r8": route({fg: "#fcc932"}),
"r9": route({fg: "#838287"}),
"r10": route({fg: "#9ec167"}),
"r11": route({fg: "#81cec8"}),
"r12": route({fg: "#000000"})
});
// rail lines
dw.extend(dw.mopt, {
"t1": route({fg: "#f6422b"}),
"t2": route({fg: "#005a96"}),
"t3": route({fg: "#8fc442"}),
"t4": route({fg: "#29c0d3"}),
"t5": route({fg: "#9f678e"}),
"t6": route({fg: "#702c8f"}),
"t7": route({fg: "#f8733b"}),
"t8": route({fg: "#1b8cce"}),
"t9": route({fg: "#fdcd45"}),
"t10": route({fg: "#14a256"}),
"t11": route({fg: "#eb479d"}),
"monorail": route({fg: "#2C87C5", width: 2, labelcolor: "#2C87C5", anchor: ['start', 'bottom']})
});
// roads
dw.extend(dw.mopt, {
"mkad": route({cls: "Polygon", bg: "white", fg: "rgb(180,180,180)", width: 1, anchor: ['center', 'middle']})
});
// lines ext
dw.extend(dw.mopt, {
"mr_1": route({fg: dw.mopt["mr"].fg, labelcolor: dw.mopt["mr"].fg, anchor: ['end', 'middle']}),
"mr_2": route({fg: dw.mopt["mr"].fg, labelcolor: dw.mopt["mr"].fg, anchor: ['start', 'middle']}),
"t2_ext": route_d(),
"t3_ext": route_d(),
"t7_ext": route_d()
});
// interchanges
dw.extend(dw.mopt, {
"interchange": interchange(),
"interchange_d": interchange_d(),
"interchange_dl": interchange_d({dash: [1,5]})
});
// metro stations
dw.extend(dw.mopt, {
"s1": inst_l({labelcolor: dw.mopt["r1"].fg, anchor: ['center', 'bottom']}),
"s1_1": inst({labelcolor: dw.mopt["r1"].fg, anchor: ['start', 'top']}),
"s1_2": inst({labelcolor: dw.mopt["r1"].fg, anchor: ['start', 'top']}),
"s1_3": inst({labelcolor: dw.mopt["r1"].fg, anchor: ['end', 'bottom']}),
"s1_4": inst_l({labelcolor: dw.mopt["r1"].fg, anchor: ['center', 'top']}),
"s2": inst_l({labelcolor: dw.mopt["r2"].fg, anchor: ['end', 'middle']}),
"s2_1": inst({labelcolor: dw.mopt["r2"].fg, anchor: ['end', 'middle']}),
"s2_2": inst({labelcolor: dw.mopt["r2"].fg}),
"s2_3": inst({labelcolor: dw.mopt["r2"].fg, anchor: ['center', 'top']}),
"s2_4": inst_l({labelcolor: dw.mopt["r2"].fg, anchor: ['end', 'top']}),
"s3": inst_l({labelcolor: dw.mopt["r3"].fg}),
"s3_1": inst({labelcolor: dw.mopt["r3"].fg}),
"s3_2": inst({labelcolor: dw.mopt["r3"].fg, anchor: ['end', 'top']}),
"s3_3": inst({labelcolor: dw.mopt["r3"].fg, anchor: ['end', 'bottom']}),
"s3_4": inst({labelcolor: dw.mopt["r3"].fg, anchor: ['start', 'top']}),
"s4": inst_l({labelcolor: dw.mopt["r4"].fg, anchor: ['start', 'bottom']}),
"s4_1": inst({labelcolor: dw.mopt["r4"].fg}),
"s4_2": inst({labelcolor: dw.mopt["r4"].fg, anchor: ['end', 'bottom']}),
"s5": inst({labelcolor: dw.mopt["r5"].fg}),
"s5_1": inst({labelcolor: dw.mopt["r5"].fg, anchor: ['end', 'bottom']}),
"s5_2": inst({labelcolor: dw.mopt["r5"].fg, anchor: ['start', 'top']}),
"s5_3": inst({labelcolor: dw.mopt["r5"].fg, anchor: ['start', 'bottom']}),
"s5_4": inst({labelcolor: dw.mopt["r5"].fg, anchor: ['end', 'middle']}),
"s6": inst_l({labelcolor: dw.mopt["r6"].fg, anchor: ['center', 'bottom']}),
"s6_1": inst({labelcolor: dw.mopt["r6"].fg}),
"s6_2": inst({labelcolor: dw.mopt["r6"].fg, anchor: ['end', 'bottom']}),
"s6_3": inst({labelcolor: dw.mopt["r6"].fg, anchor: ['center', 'top']}),
"s6_4": inst_l({labelcolor: dw.mopt["r6"].fg, anchor: ['center', 'top']}),
"s6_5": inst({labelcolor: dw.mopt["r6"].fg, anchor: ['start', 'middle']}),
"s7": inst_l({labelcolor: dw.mopt["r7"].fg}),
"s7_1": inst({labelcolor: dw.mopt["r7"].fg, anchor: ['end', 'middle']}),
"s7_2": inst({labelcolor: dw.mopt["r7"].fg, anchor: ['start', 'middle']}),
"s7_3": inst({labelcolor: dw.mopt["r7"].fg, anchor: ['center', 'top']}),
"s7_4": inst_l({labelcolor: dw.mopt["r7"].fg, anchor: ['end', 'top']}),
"s7_5": inst({labelcolor: dw.mopt["r7"].fg, anchor: ['end', 'bottom']}),
"s7_6": inst({labelcolor: dw.mopt["r7"].fg, anchor: ['end', 'top']}),
"s8": inst_l({labelcolor: dw.mopt["r8"].fg, anchor: ['center', 'bottom']}),
"s8_1": inst({labelcolor: dw.mopt["r8"].fg, anchor: ['start', 'bottom']}),
"s8_2": inst({labelcolor: dw.mopt["r8"].fg, anchor: ['center', 'top']}),
"s8_3": inst({labelcolor: dw.mopt["r8"].fg, anchor: ['start', 'top']}),
"s8_4": inst({labelcolor: dw.mopt["r8"].fg, anchor: ['end', 'bottom']}),
"s9": inst_l({labelcolor: dw.mopt["r9"].fg, anchor: ['center', 'bottom']}),
"s9_1": inst({labelcolor: dw.mopt["r9"].fg, anchor: ['start', 'middle']}),
"s9_2": inst({labelcolor: dw.mopt["r9"].fg, anchor: ['center', 'bottom']}),
"s9_3": inst({labelcolor: dw.mopt["r9"].fg, anchor: ['end', 'middle']}),
"s9_4": inst({labelcolor: dw.mopt["r9"].fg, anchor: ['center', 'top']}),
"s9_5": inst_l({labelcolor: dw.mopt["r9"].fg, anchor: ['end', 'middle']}),
"s9_6": inst({labelcolor: dw.mopt["r9"].fg, anchor: ['start', 'bottom']}),
"s10": inst_l({labelcolor: dw.mopt["r10"].fg, anchor: ['end', 'middle']}),
"s10_1": inst({labelcolor: dw.mopt["r10"].fg}),
"s10_2": inst({labelcolor: dw.mopt["r10"].fg, anchor: ['center', 'bottom']}),
"s10_3": inst({labelcolor: dw.mopt["r10"].fg, anchor: ['end', 'top']}),
"s10_4": inst_l({labelcolor: dw.mopt["r10"].fg}),
"s11_1": inst({labelcolor: dw.mopt["r11"].fg, anchor: ['start', 'bottom']}),
"s11_2": inst({labelcolor: dw.mopt["r11"].fg, anchor: ['center', 'bottom']}),
"s12_1": inst({labelcolor: dw.mopt["r12"].fg}),
"s12_2": inst({labelcolor: dw.mopt["r12"].fg, anchor: ['end', 'top']}),
"sMono": station({fg: dw.mopt["monorail"].fg, width: 2, anchor: ['end', 'bottom']}),
"sMono_1": station({fg: dw.mopt["monorail"].fg, width: 2, anchor: ['center', 'bottom']}),
"sMono_2": station({fg: dw.mopt["monorail"].fg, width: 2, anchor: ['start', 'bottom']}),
"sMono_3": station({fg: dw.mopt["monorail"].fg, width: 2, anchor: ['end', 'top']})
});
// rail stations
dw.extend(dw.mopt, {
"mr1": rst({fg: dw.mopt["mr"].fg, anchor: ['center', 'top']}),
"a1": rst({fg: dw.mopt["t1"].fg, anchor: ['end', 'middle']}),
"a1_1": rst({fg: dw.mopt["t1"].fg, anchor: ['center', 'bottom']}),
"a1_2": rst({fg: dw.mopt["t1"].fg, anchor: ['center', 'top']}),
"a1_3": rst({fg: dw.mopt["t1"].fg}),
"a1_4": rst({fg: dw.mopt["t1"].fg, anchor: ['start', 'bottom']}),
"a1_5": ost({anchor: ['end', 'middle']}),
"a1_6": ost({anchor: ['start', 'middle']}),
"a2": rst({fg: dw.mopt["t2"].fg, anchor: ['end', 'bottom']}),
"a2_1": rst({fg: dw.mopt["t2"].fg, anchor: ['end', 'middle']}),
"a2_2": rst_l({fg: dw.mopt["t2"].fg, anchor: ['start', 'middle']}),
"a2_3": rst({fg: dw.mopt["t2"].fg, anchor: ['start', 'middle']}),
"a2_4": rst({fg: dw.mopt["t2"].fg, anchor: ['end', 'top']}),
"a2_5": ost({anchor: ['start', 'middle']}),
"a2_6": ost({anchor: ['end', 'middle']}),
"a3": rst({fg: dw.mopt["t3"].fg, anchor: ['end', 'middle']}),
"a3_1": rst({fg: dw.mopt["t3"].fg, anchor: ['start', 'middle']}),
"a3_2": rst({fg: dw.mopt["t3"].fg, anchor: ['center', 'bottom']}),
"a3_3": rst_l({fg: dw.mopt["t3"].fg, anchor: ['start', 'middle']}),
"a3_4": ost({anchor: ['end', 'middle']}),
"a3_5": ost({anchor: ['start', 'middle']}),
"a4": rst({fg: dw.mopt["t4"].fg, anchor: ['end', 'middle']}),
"a4_1": rst({fg: dw.mopt["t4"].fg, anchor: ['end', 'top']}),
"a4_2": rst({fg: dw.mopt["t4"].fg, anchor: ['center', 'bottom']}),
"a4_3": rst({fg: dw.mopt["t4"].fg}),
"a4_4": rst({fg: dw.mopt["t4"].fg}),
"a4_5": rst({fg: dw.mopt["t4"].fg, anchor: ['end', 'bottom']}),
"a4_6": rst({fg: dw.mopt["t4"].fg, anchor: ['start', 'top']}),
"a4_7": ost({anchor: ['end', 'middle']}),
"a4_8": ost({anchor: ['start', 'middle']}),
"a5": rst({fg: dw.mopt["t5"].fg, anchor: ['end', 'bottom']}),
"a5_1": rst({fg: dw.mopt["t5"].fg, anchor: ['center', 'bottom']}),
"a5_2": rst({fg: dw.mopt["t5"].fg, anchor: ['start', 'top']}),
"a5_3": rst({fg: dw.mopt["t5"].fg, anchor: ['end', 'top']}),
"a5_4": ost({anchor: ['end', 'middle']}),
"a5_5": ost({anchor: ['start', 'middle']}),
"a5_6": ost({anchor: ['center', 'bottom']}),
"a5_7": ost({anchor: ['center', 'top']}),
"a6": rst({fg: dw.mopt["t6"].fg, anchor: ['start', 'middle']}),
"a6_1": rst({fg: dw.mopt["t6"].fg, anchor: ['center', 'bottom']}),
"a6_2": rst({fg: dw.mopt["t6"].fg, anchor: ['start', 'middle']}),
"a6_3": rst({fg: dw.mopt["t6"].fg, anchor: ['end', 'top']}),
"a6_4": ost({anchor: ['end', 'middle']}),
"a6_5": ost({anchor: ['start', 'middle']}),
"a6_6": ost({anchor: ['center', 'bottom']}),
"a6_7": ost({anchor: ['center', 'top']}),
"a7": rst({fg: dw.mopt["t7"].fg, anchor: ['end', 'middle']}),
"a7_1": rst({fg: dw.mopt["t7"].fg, anchor: ['start', 'middle']}),
"a7_2": rst_l({fg: dw.mopt["t7"].fg, anchor: ['end', 'top']}),
"a7_3": ost({anchor: ['end', 'middle']}),
"a7_4": ost({anchor: ['end', 'top']}),
"a7_5": ost({anchor: ['start', 'middle']}),
"a7_6": ost({anchor: ['end', 'middle']}),
"a8": rst({fg: dw.mopt["t8"].fg, anchor: ['start', 'bottom']}),
"a8_2": rst({fg: dw.mopt["t8"].fg, anchor: ['end', 'middle']}),
"a8_3": rst({fg: dw.mopt["t8"].fg, anchor: ['start', 'middle']}),
"a8_4": rst({fg: dw.mopt["t8"].fg, anchor: ['center', 'bottom']}),
"a8_5": rst({fg: dw.mopt["t8"].fg, anchor: ['start', 'top']}),
"a8_6": ost({anchor: ['end', 'middle']}),
"a8_7": ost({anchor: ['start', 'middle']}),
"a9": rst({fg: dw.mopt["t9"].fg, anchor: ['end', 'middle']}),
"a9_1": rst({fg: dw.mopt["t9"].fg, anchor: ['end', 'top']}),
"a9_2": rst({fg: dw.mopt["t9"].fg, anchor: ['start', 'middle']}),
"a9_3": rst({fg: dw.mopt["t9"].fg, anchor: ['start', 'top']}),
"a9_4": rst({fg: dw.mopt["t9"].fg, anchor: ['center', 'top']}),
"a9_5": rst({fg: dw.mopt["t9"].fg, anchor: ['center', 'bottom']}),
"a9_6": rst({fg: dw.mopt["t9"].fg, anchor: ['start', 'middle']}),
"a9_7": ost({anchor: ['end', 'middle']}),
"a9_8": ost({anchor: ['start', 'middle']}),
"a9_9": ost({anchor: ['center', 'bottom']}),
"a9_10": rst_d({fg: dw.mopt["t9"].fg}),
"a10": rst({fg: dw.mopt["t10"].fg, anchor: ['end', 'top']}),
"a10_1": rst({fg: dw.mopt["t10"].fg, anchor: ['start', 'top']}),
"a10_2": rst({fg: dw.mopt["t10"].fg, anchor: ['start', 'middle']}),
"a10_3": rst({fg: dw.mopt["t10"].fg, anchor: ['end', 'middle']}),
"a10_4": ost({anchor: ['start', 'middle']}),
"a10_5": ost({anchor: ['end', 'middle']}),
"a10_6": ost({anchor: ['center', 'top']}),
"a10_7": ost({anchor: ['center', 'bottom']}),
"a10_8": ost({anchor: ['end', 'bottom']}),
"a11": rst({fg: dw.mopt["t11"].fg, anchor: ['center', 'top']}),
"a11_1": rst({fg: dw.mopt["t11"].fg, anchor: ['center', 'bottom']}),
"a11_2": rst({fg: dw.mopt["t11"].fg, anchor: ['start', 'top']}),
"a11_3": rst({fg: dw.mopt["t11"].fg, anchor: ['end', 'middle']}),
"a11_3": rst({fg: dw.mopt["t11"].fg, anchor: ['end', 'middle']}),
"a11_4": ost({anchor: ['end', 'middle']}),
"a11_5": ost({anchor: ['start', 'middle']}),
"a11_6": ost({anchor: ['center', 'bottom']}),
"a11_7": ost({anchor: ['center', 'top']}),
"a11_8": ost({anchor: ['start', 'bottom']})
});
dw.loadCarta(RLINES);
dw.loadCarta(MSTATIONS);
for(var i in RSTATIONS)
dw.loadCarta(RSTATIONS[i][1]);
var centerofpts = dw.toPoints([-50,190]);
dw.centerCarta(centerofpts[0], centerofpts[1]);
dw.scaleCarta(1.4);
dw.draw();
// station list
var findstation = function(ev){
var stationlist = ev.target,
opt = stationlist.options[stationlist.selectedIndex];
if (opt.value) {
var centerofpts = dw.mflood[opt.value]['pts'];
dw.centerCarta(centerofpts[0][0] + dw.m.offset[0], centerofpts[0][1] + dw.m.offset[1]);
dw.draw();
drawcrosshair();
}
};
var drawcrosshair = function(){
var ctx = dw.getContext('2d');
ctx.save();
ctx.setTransform(1, 0, 0, 1, 0, 0);
ctx.beginPath();
ctx.moveTo(dw.width/2.0, 0);
ctx.lineTo(dw.width/2.0, dw.height);
ctx.moveTo(0, dw.height/2.0);
ctx.lineTo(dw.width, dw.height/2.0);
ctx.lineWidth = 15;
ctx.strokeStyle = 'rgba(100,100,200,0.2)';
ctx.stroke();
ctx.restore();
}
var fillstation = function(ev){
var stationlist = ev.target;
if (stationlist.length < RSTATIONS.length){
for(var i in RSTATIONS) {
var mlist = RSTATIONS[i];
// line caption
var el = document.createElement("option");
el.disabled = 'true';
el.style.fontStyle = 'italic';
el.style.color = 'white';
el.style.backgroundColor = dw.mopt[mlist[0]].fg;
el.appendChild(document.createTextNode(mlist[2]));
stationlist.appendChild(el);
// sort list
mlist[1].sort(function(a,b){return (a[3]>b[3]) ? 1 : -1});
for (var i in mlist[1]) {
if (!mlist[1][i][3]) continue;
var el = document.createElement("option");
el.value = mlist[1][i][0] + "_" + mlist[1][i][1];
el.appendChild(document.createTextNode(mlist[1][i][3]));
stationlist.appendChild(el);
}
}
}
}
var stationlist = document.getElementById('mosrails-stationlist');
stationlist.onmousedown = fillstation;
stationlist.onchange = findstation;
});
</script>egaxegaxhttp://www.blogger.com/profile/04132504793385756437noreply@blogger.com0tag:blogger.com,1999:blog-1305589175977110288.post-73683017139455250442013-12-04T11:16:00.001-08:002014-04-06T12:51:21.801-07:00Карта метро Москвы<div id="cont-mosmetro">
Карта Московского Метро 2013 с выбором станций. Переделена с <a href="http://upload.wikimedia.org/wikipedia/commons/f/f3/Moscow_metro_map_ru_sb.svg">SVG-карты</a> на Wikipedia. Загружается намного быстрее оригинала. Пунктирные линии строящихся станций отображаются только в Firefox (поддержка метода setDashLine в Canvas). Подробности в статье на Хабре "<a href="http://habrahabr.ru/post/193778">Карта Московского Метро на Canvas</a>".
<br/>
Перемещайтесь по карте тасканием мышью или по списку станций <select id="mosmetro-stationlist""><option value="">Выберите...</option></select>.<br />
Смотрите также полную версию на <a href="http://dbcartajs.appspot.com/mosmetro.html">сайте проекта</a>.
<br/>
</div>
<script type="text/javascript">
// mosmetro.html func
allmaps.push(function() {
/* List with coords of Moscow Metro lines and stations
[[ftype, ftag, coords, label, centerof, ismap],...]
Three points with coords and 'Q' literal implements to bezierCurveTo (...) method. */
var MLINES = [
['moskva_canal', 'mc', [
[-110,29],
[-113,32,'Q'],[-115,35,'Q'],[-115,39,'Q'],
[-115,60,'Q'],[-115,64,'Q'],[-113,67,'Q'],
[-99,80,'Q'],[-97,83,'Q'],[-97,86,'Q'],
[-97,152]
], 'Канал имени Москвы', [-97,111]
],
['strogino_lake_exit', 'sle', [
[-138,65],
[-130,71,'Q'],[-127,74,'Q'],[-124,74,'Q'],
[-119,74,'Q'],[-117,74,'Q'],[-117,71.5,'Q'],
[-117,71.5,'Q'],[-117,68.5,'Q'],[-119,68.5,'Q'],
[-131,68.5],
[-138,65]
]
],
['vodootvodny_canal', 'vc', [
[-30,-40],
[-27,-40,'Q'],[-24,-40,'Q'],[-21,-38,'Q'],
[-13,-30,'Q'],[-9,-27,'Q'],[-7,-27,'Q'],
[18,-27,'Q'],[24,-27,'Q'],[27,-31,'Q'],
[55,-59]
]
],
['yauza_river', 'yr', [
[31,-27],
[65,-27,'Q'],[77,-27,'Q'],[77,-15,'Q'],
[77,30,'Q'],[77,34,'Q'],[80,34,'Q'],
[80,34,'Q'],[83,34,'Q'],[83,38,'Q'],
[83,71,'Q'],[83,76,'Q'],[79,80,'Q'],
[59,99,'Q'],[55,103,'Q'],[50,103,'Q'],
[42,103,'Q'],[32,103,'Q'],[32,113,'Q'],
[32,114,'Q'],[32,121,'Q'],[39,127,'Q'],
[63,147]
], 'Яуза', [59,99]
],
['Nagatino_Kozhukhovo', 'nk', [
[58,-88],[66,-81]
]
],
['Nagatino_poyma', 'np', [
[66.8,-80.3,'Q'],[69,-78,'Q'],[71.5,-78,'Q'],
[72.5,-78,'Q'],[74.7,-78,'Q'],[77,-80,'Q'],
[83,-86,'Q'],[85,-88,'Q'],[85,-96,'Q']
]
],
['grebnoy_canal', 'gc', [
[-138,51],[-127,53],[-122,53],[-132,51],[-138,51]
]
],
['moskva_river', 'mr', [
[-232,78],
[-119,78,'Q'],[-110,78,'Q'],[-110,71.5,'Q'],
[-110,71.5,'Q'],[-110,65,'Q'],[-119,65,'Q'],
[-135,65,'Q'],[-144,65,'Q'],[-144,61,'Q'],
[-144,61,'Q'],[-144,57,'Q'],[-135,57,'Q'],
[-116,57,'Q'],[-113,57,'Q'],[-113,52,'Q'],
[-113,52,'Q'],[-113,47,'Q'],[-116,47,'Q'],
[-144,47,'Q'],[-150,47,'Q'],[-150,39.5,'Q'],
[-150,39.5,'Q'],[-150,32,'Q'],[-144,32,'Q'],
[-119,32,'Q'],[-114,32,'Q'],[-110,28,'Q'],
[-92,10,'Q'],[-88,6,'Q'],[-82,6,'Q'],
[-67,6,'Q'],[-59,6,'Q'],[-59,-2,'Q'],
[-59,-31,'Q'],[-59,-38,'Q'],[-63,-41,'Q'],
[-73,-50,'Q'],[-86,-62,'Q'],[-75,-70,'Q'],
[-75,-70,'Q'],[-67,-76,'Q'],[-58,-67,'Q'],
[-14,-24,'Q'],[-10,-20,'Q'],[-5,-20,'Q'],
[19,-20,'Q'],[25,-20,'Q'],[28,-24,'Q'],
[52,-47,'Q'],[55,-51,'Q'],[55,-57,'Q'],
[55,-85,'Q'],[55,-89,'Q'],[65,-89,'Q'],
[79,-89,'Q'],[85,-89,'Q'],[85,-95,'Q'],
[85,-111,'Q'],[85,-117,'Q'],[80,-120.5,'Q'],
[80,-120.5,'Q'],[74,-124,'Q'],[74,-130,'Q'],
[74,-131,'Q'],[74,-141,'Q'],[84,-141,'Q'],
[102,-141,'Q'],[106,-141,'Q'],[111,-147,'Q'],
[233,-272]
], 'Москва-река', [111,-147]
],
//
['sheremetyevo_express_line', 'sheremetyevo_express', [
[-51,55],
[-23,83,'Q'],[-20,86,'Q'],[-20,90,'Q'],
[-20,149,'Q'],[-20,153,'Q'],[-23,153,'Q'],
[-29,153]
], 'Шереметьево', [-29,153]
],
['sheremetyevo_express_line_d', 'sheremetyevo_express', [
[-51,55],
[-23,83,'Q'],[-20,86,'Q'],[-20,90,'Q'],
[-20,149,'Q'],[-20,153,'Q'],[-23,153,'Q'],
[-29,153]
], 'Белорусский', [-51,55]
],
['vnukovo_express_line','vnukovo_express', [
[-75,-20],
[-94,-20,'Q'],[-99,-20,'Q'],[-103,-25,'Q'],
[-132,-65],
[-163,-96,'Q'],[-166,-99,'Q'],[-166,-102,'Q'],
[-166,-119,'Q'],[-166,-121,'Q'],[-163,-121,'Q'],
[-160,-121]
], 'Внуково', [-160,-121]
],
['vnukovo_express_line_d','vnukovo_express', [
[-75,-20],
[-94,-20,'Q'],[-99,-20,'Q'],[-103,-25,'Q'],
[-132,-65],
[-163,-96,'Q'],[-166,-99,'Q'],[-166,-102,'Q'],
[-166,-119,'Q'],[-166,-121,'Q'],[-163,-121,'Q'],
[-160,-121]
], 'Киевский', [-75,-20]
],
['domodedovo_express_line', 'domodedovo_express', [
[51,-61],[51,-179]
], 'Павелецкий', [51,-61]
],
['domodedovo_express_line_d', 'domodedovo_express', [
[51,-61],[51,-179]
], 'Домодедово', [51,-179]
],
//
['r1', 'r1', [
[102,85],
[38,21,'Q'],[36,19,'Q'],[34,19,'Q'],
[20,19,'Q'],[17,19,'Q'],[14,17,'Q'],
[-100,-97]
]
],
['r1_ext', 'r1', [
[-100,-97],[-123,-121]
]
],
['r2','r2', [
[-92,107,'Q'],[-92,103,'Q'],[-90,100,'Q'],
[-34,45,'Q'],[-31,42,'Q'],[-31,38,'Q'],
[-31,31,'Q'],[-31,27,'Q'],[-29,24,'Q'],
[20,-25,'Q'],[23,-27,'Q'],[23,-31,'Q'],
[23,-33,'Q'],[23,-37,'Q'],[26,-39,'Q'],
[65,-78,'Q'],[68,-81,'Q'],[68,-85,'Q'],
[68,-143,'Q'],[68,-146,'Q'],[70,-149,'Q'],
[79,-158],
[95,-158]
]
],
['r2_ext', 'r2', [
[-92,122],[-92,107],
]
],
['r3', 'r3', [
[-159,98],
[-159,18,'Q'],[-159,15,'Q'],[-157,12,'Q'],
[-130,-14,'Q'],[-127,-16,'Q'],[-124,-16,'Q'],
[-36,-16,'Q'],[-33,-16,'Q'],[-30,-14,'Q'],
[-30,-14,'Q'],[-26,-11,'Q'],[-24,-11,'Q'],
[53,-11,'Q'],[56,-11,'Q'],[59,-9,'Q'],
[122,54]
]
],
['r4', 'r4_1', [
[-159,34],
[-131,6,'Q'],[-128,3,'Q'],[-124,3,'Q'],
[-104,3,'Q'],[-101,3,'Q'],[-97,0,'Q'],
[-93,-3,'Q'],[-89,-6,'Q'],[-87,-6,'Q'],
[-71,-6,'Q'],[-68,-2,'Q'],[-64,-2,'Q'],
[-26,-2,'Q'],[-23,-2,'Q'],[-20,-5,'Q'],
[-19,-6]
]
],
['r4', 'r4_2', [
[-71,-6,'Q'],[-77,-6,'Q'],[-77,-1,'Q'],
[-77,23]
]
],
['r5', 'r5', [
[-70,0],[-69.86,4.40],[-69.45,8.77],[-68.76,13.12],[-67.80,17.41],[-66.57,21.63],[-65.08,25.77],[-63.34,29.80],[-61.34,33.72],[-59.10,37.51],[-56.63,41.14],[-53.94,44.62],[-51.03,47.92],[-47.92,51.03],[-44.62,53.94],[-41.14,56.63],[-37.51,59.10],[-33.72,61.34],[-29.80,63.34],[-25.77,65.08],[-21.63,66.57],[-17.41,67.80],[-13.12,68.76],[-8.77,69.45],[-4.40,69.86],[0.00,70.00],[4.40,69.86],[8.77,69.45],[13.12,68.76],[17.41,67.80],[21.63,66.57],[25.77,65.08],[29.80,63.34],[33.72,61.34],[37.51,59.10],[41.14,56.63],[44.62,53.94],[47.92,51.03],[51.03,47.92],[53.94,44.62],[56.63,41.14],[59.10,37.51],[61.34,33.72],[63.34,29.80],[65.08,25.77],[66.57,21.63],[67.80,17.41],[68.76,13.12],[69.45,8.77],[69.86,4.40],[70.00,0.00],[69.86,-4.40],[69.45,-8.77],[68.76,-13.12],[67.80,-17.41],[66.57,-21.63],[65.08,-25.77],[63.34,-29.80],[61.34,-33.72],[59.10,-37.51],[56.63,-41.14],[53.94,-44.62],[51.03,-47.92],[47.92,-51.03],[44.62,-53.94],[41.14,-56.63],[37.51,-59.10],[33.72,-61.34],[29.80,-63.34],[25.77,-65.08],[21.63,-66.57],[17.41,-67.80],[13.12,-68.76],[8.77,-69.45],[4.40,-69.86],[0.00,-70.00],[-4.40,-69.86],[-8.77,-69.45],[-13.12,-68.76],[-17.41,-67.80],[-21.63,-66.57],[-25.77,-65.08],[-29.80,-63.34],[-33.72,-61.34],[-37.51,-59.10],[-41.14,-56.63],[-44.62,-53.94],[-47.92,-51.03],[-51.03,-47.92],[-53.94,-44.62],[-56.63,-41.14],[-59.10,-37.51],[-61.34,-33.72],[-63.34,-29.80],[-65.08,-25.77],[-66.57,-21.63],[-67.80,-17.41],[-68.76,-13.12],[-69.45,-8.77],[-69.86,-4.40],[-70,0]
], 'Radial'
],
['r6', 'r6', [
[36,129],
[36,38,'Q'],[36,35,'Q'],[34,32,'Q'],
[34,32,'Q'],[31,28,'Q'],[31,26,'Q'],
[31,-22,'Q'],[31,-26,'Q'],[28,-29,'Q'],
[-41,-99,'Q'],[-44,-102,'Q'],[-44,-106,'Q'],
[-44,-149]
]
],
['r6_ext', 'r6', [
[36,129],[36,145]
]
],
['r7', 'r7', [
[-105,99],
[-105,79,'Q'],[-105,76,'Q'],[-103,73,'Q'],
[-60,31,'Q'],[-58,29,'Q'],[-55,29,'Q'],
[0,29,'Q'],[3,29,'Q'],[5,27,'Q'],
[26,6,'Q'],[28,4,'Q'],[28,0,'Q'],
[28,-10,'Q'],[28,-14,'Q'],[31,-16,'Q'],
[92,-77,'Q'],[94.5,-80,'Q'],[98,-80,'Q'],
[151,-80,'Q'],[155,-80,'Q'],[158,-84,'Q'],
[158,-84,'Q'],[160,-87,'Q'],[160,-90,'Q'],
[160,-90,'Q'],[160,-93,'Q'],[157,-96,'Q'],
[136,-117]
]
],
['r7_ext', 'r7', [
[136,-117,'Q'],[133,-120,'Q'],[133,-124,'Q'],
[133,-126]
]
],
['r8', 'r8', [
[18,-39],[90,-39],[133,3]
]
],
['r8_ext', 'r8', [
[18.15,-39],
[-21,-39,'Q'],[-24,-39,'Q'],[-27,-37,'Q'],
[-74,8,'Q'],[-77,11,'Q'],[-80,11,'Q'],
[-106,11,'Q'],[-109,11,'Q'],[-112,8,'Q'],
[-117,3,'Q'],[-120,0,'Q'],[-120,-3,'Q'],
[-120,-59,'Q'],[-120,-63,'Q'],[-123,-65,'Q'],
[-162,-105]
]
],
['r9', 'r9', [
[0,146],
[0,137,'Q'],[0,134,'Q'],[-2,131,'Q'],
[-26,107,'Q'],[-29,104,'Q'],[-29,101,'Q'],
[-29,76,'Q'],[-29,73,'Q'],[-26,70,'Q'],
[-5,48,'Q'],[-4,47,'Q'],[-4,46,'Q'],
[-4,41,'Q'],[-4,40,'Q'],[-5,39,'Q'],
[-18,25.06,'Q'],[-19,24,'Q'],[-19,21,'Q'],
[-19,-19,'Q'],[-19,-22,'Q'],[-16,-25,'Q'],
[16,-58,'Q'],[19,-61,'Q'],[19,-64,'Q'],
[19,-127,'Q'],[19,-130,'Q'],[16,-133,'Q'],
[-13,-164]
]
],
['r10', 'r10', [
[1,87,'Q'],[4,85,'Q'],[4,81,'Q'],
[4,45,'Q'],[4,41,'Q'],[7,38,'Q'],
[82,-36,'Q'],[84,-38,'Q'],[84,-42,'Q'],
[84,-72,'Q'],[84,-74.5,'Q'],[87,-78,'Q'],
[105,-96,'Q'],[108,-99,'Q'],[108,-103,'Q'],
[108,-106,'Q'],[108,-109,'Q'],[105,-112,'Q'],
[87,-130,'Q'],[84,-133,'Q'],[84,-137,'Q'],
[84,-163]
]
],
['r10_ext', 'r10', [
[1,87],
[-22,112,'Q'],[-24,114,'Q'],[-24,118,'Q'],
[-24,146]
]
],
['r11', 'r11', [
[26,-116],[68,-116]
]
],
['r12', 'r12', [
[-13,-164],
[-21,-173,'Q'],[-22,-174,'Q'],[-24,-174,'Q'],
[-87,-174]
]
],
['r12_ext', 'r12_1', [
[-87,-174],[-150,-174]
]
],
['r12', 'r12_2', [
[-38,-149],[-16.56,-168]
]
],
['rTPK', 'rTPK_1', [
[-84,11],
[-83,12,'Q'],[-80,14,'Q'],[-80,18,'Q'],
[-80,44],
[-44,80,'Q'],[-42,82,'Q'],[-38,82,'Q'],
[57,82,'Q'],[60,82,'Q'],[63,80,'Q'],
[77,65,'Q'],[80,62,'Q'],[80,59,'Q'],
[80,19,'Q'],[80,15,'Q'],[83,13,'Q'],
[101,-4,'Q'],[103,-7,'Q'],[103,-11,'Q'],
[103,-24,'Q'],[103,-27,'Q'],[106,-30,'Q'],
[124,-48,'Q'],[124,-52,'Q'],[124,-55,'Q'],
[76,-113,'Q'],[74,-116,'Q'],[70,-116,'Q'],
[68,-116]
]
],
['rTPK', 'rTPK_2', [
[-80,44],
[-82,42,'Q'],[-84,40,'Q'],[-88,40,'Q'],
[-143,40,'Q'],[-147,40,'Q'],[-149,37,'Q'],
[-164,23,'Q'],[-166,20,'Q'],[-166,16,'Q'],
[-166,-1,'Q'],[-166,-5,'Q'],[-164,-7,'Q'],
[-58,-113,'Q'],[-55,-116,'Q'],[-52,-116,'Q'],
[26,-116]
]
],
['rKOZH', 'rKOZH', [
[106,-30],
[135,-59,'Q'],[137,-61,'Q'],[137,-65,'Q'],
[137,-82,'Q'],[137,-85,'Q'],[140,-88,'Q'],
[162,-112,'Q'],[165,-114,'Q'],[165,-118,'Q'],
[165,-138]
]
],
['monorail', 'mn', [
[-26,101],[43,101]
], 'M1', [-26,101]
],
//
['interchange', 'Kievskaya', [
[-72,-16],[-72,-6],[-69.09,-11],[-72,-16]
]
],
['interchange_d', 'Kievskaya', [
[-72,-16],[-72,-6],[-69.09,-11],[-72,-16]
]
],
['interchange', 'Rossyskaya-Kutuzovsky_Prospekt', [
[-69.38,9.24],[-69.38,3.63]
]
],
['interchange_d', 'Rossyskaya-Kutuzovsky_Prospekt', [
[-69.38,9.24],[-69.38,3.63]
]
],
['interchange', 'Krasnopresnenskaya-Barrikadnaya', [
[-65.57,24.41],[-60.34,31.34]
]
],
['interchange_d', 'Krasnopresnenskaya-Barrikadnaya', [
[-65.57,24.41],[-60.34,31.34]
]
],
['interchange', 'Belorusskaya', [
[-47,51.84],[-47,57.78]
]
],
['interchange_d', 'Belorusskaya', [
[-47,51.84],[-47,57.78]
]
],
['interchange', 'Mendeleyevskaya-Novoslobodskaya', [
[-25,65.36],[-25,68.95]
]
],
['interchange_d', 'Mendeleyevskaya-Novoslobodskaya', [
[-25,65.36],[-25,68.95]
]
],
['interchange', 'Dostoyevskaya-Suvorovskaya', [
[4,69.88],[4,75]
]
],
['interchange_d', 'Dostoyevskaya-Suvorovskaya', [
[4,69.88],[4,75]
]
],
['interchange', 'Prospekt_Mira', [
[31,62.73],[36,65]
]
],
['interchange_d', 'Prospekt_Mira', [
[31,62.73],[36,65]
]
],
['interchange', 'Komsomolskaya', [
[55.19,43],[60,43]
]
],
['interchange_d', 'Komsomolskaya', [
[55.19,43],[60,43]
]
],
['interchange', 'Kurskaya-Chkalobskaya', [
[69.03,-11.43],[62.27,-5.73],[62.27,-16.53],[69.03,-11.43]
]
],
['interchange_d', 'Kurskaya-Chkalobskaya', [
[69.03,-11.43],[62.27,-5.73],[62.27,-16.53],[69.03,-11.43]
]
],
['interchange', 'Taganskaya-Marksistskaya', [
[60,-35.9],[60,-45],[64,-39],[60,-35.9]
]
],
['interchange_d', 'Taganskaya-Marksistskaya', [
[60,-35.9],[60,-45],[64,-39],[60,-35.9]
]
],
['interchange', 'Paveletskaya', [
[39.13,-58],[45,-58]
]
],
['interchange_d', 'Paveletskaya', [
[39.13,-58],[45,-58]
]
],
['interchange', 'Dobryninskaya-Serpukhovskaya', [
[19,-67.33],[19,-71]
]
],
['interchange_d', 'Dobryninskaya-Serpukhovskaya', [
[19,-67.33],[19,-71]
]
],
['interchange', 'Oktyabrskaya', [
[-11.46,-69.03],[-7.92,-65.45]
]
],
['interchange_d', 'Oktyabrskaya', [
[-11.46,-69.03],[-7.92,-65.45]
]
],
['interchange', 'Park_Kultury', [
[-53,-45.68],[-53,-50]
]
],
['interchange_d', 'Park_Kultury', [
[-53,-45.68],[-53,-50]
]
],
['interchange', 'Sokolniki', [
[76.37,59.36],[76.37,65.67]
]
],
['interchange_d', 'Sokolniki', [
[76.37,59.36],[76.37,65.67]
]
],
['interchange', 'Turgenevskaya-Chistye_Prudy-Sretensky_Bulvar', [
[31,24],[34,19],[31,14.32],[31,24]
]
],
['interchange_d', 'Turgenevskaya-Chistye_Prudy-Sretensky_Bulvar', [
[31,24],[34,19],[31,14.32],[31,24]
]
],
['interchange', 'Kuznetsky_Most-Lubyanka', [
[11.5,20.5],[11.5,14.5]
]
],
['interchange_d', 'Kuznetsky_Most-Lubyanka', [
[11.5,20.5],[11.5,14.5]
]
],
['interchange', 'Okhotny_Ryad-Teatralnaya-Ploshcha_Pevolyutsi', [
[-4,-1],[1,-6],[6,-11]
]
],
['interchange_d', 'Okhotny_Ryad-Teatralnaya-Ploshcha_Pevolyutsi', [
[-4,-1],[1,-6],[6,-11]
]
],
['interchange', 'Biblioteka_Imeni_Lenina-Arbatskaya-Alexandrovsky_Sad-Borovitskaya', [
[-14,-11],[-19,-6],[-24,-11],[-14,-11],[-19,-16],[-24,-11]
]
],
['interchange_d', 'Biblioteka_Imeni_Lenina-Arbatskaya-Alexandrovsky_Sad-Borovitskaya', [
[-14,-11],[-19,-6],[-24,-11],[-14,-11],[-19,-16],[-24,-11]
]
],
['interchange', 'Kropotkinskaya-Volkhonka', [
[-29.83,-26.83],[-29.83,-34.29]
]
],
['interchange_d', 'Kropotkinskaya-Volkhonka', [
[-29.83,-26.83],[-29.83,-34.29]
]
],
['interchange', 'Prospekt_Vernadskogo', [
[-91.05,-88.05],[-91.05,-79.95]
]
],
['interchange_d', 'Prospekt_Vernadskogo', [
[-91.05,-88.05],[-91.05,-79.95]
]
],
['interchange', 'Dinamo-Petrovsky_Park', [
[-56.7,67.3],[-51.85,72.15]
]
],
['interchange_d', 'Dinamo-Petrovsky_Park', [
[-56.7,67.3],[-51.85,72.15]
]
],
['interchange', 'Tverskaya-Pushkinskaya-Chekhovskaya', [
[-29,24],[-18.55,24],[-23,29],[-29,24]
]
],
['interchange_d', 'Tverskaya-Pushkinskaya-Chekhovskaya', [
[-29,24],[-18.55,24],[-23,29],[-29,24]
]
],
['interchange', 'Tretyakovskaya-Novokuznetskaya', [
[23.10,-33.98],[18.14,-39]
]
],
['interchange_d', 'Tretyakovskaya-Novokuznetskaya', [
[23.10,-33.98],[18.14,-39]
]
],
['interchange', 'Krasnogvardeyskaya-Zyablikovo', [
[79,-158],[84,-163]
]
],
['interchange_d', 'Krasnogvardeyskaya-Zyablikovo', [
[79,-158],[84,-163]
]
],
['interchange', 'Kuntsevskaya', [
[-159,34],[-152.2,34]
]
],
['interchange_d', 'Kuntsevskaya', [
[-159,34],[-152.2,34]
]
],
['interchange', 'Smolenskaya-Plyushchikha', [
[-40,-16],[-40,-24.55]
]
],
['interchange_d', 'Smolenskaya-Plyushchikha', [
[-40,-16],[-40,-24.55]
]
],
['interchange', 'Elektrozavodskaya', [
[80,12],[80,19]
]
],
['interchange_d', 'Elektrozavodskaya', [
[80,12],[80,19]
]
],
['interchange', 'Vystavochnaya-Delovoy_Tsentr', [
[-77,11],[-84,11]
]
],
['interchange_d', 'Vystavochnaya-Delovoy_Tsentr', [
[-77,11],[-84,11]
]
],
['interchange', 'Rizhskaya', [
[36,77],[41,82]
]
],
['interchange_d', 'Rizhskaya', [
[36,77],[41,82]
]
],
['interchange', 'Kaluzhskaya', [
[-44,-111],[-50,-116]
]
],
['interchange_d', 'Kaluzhskaya', [
[-44,-111],[-50,-116]
]
],
['interchange', 'Novoyasenevskaya-Bittsevsky_Park', [
[-44,-149],[-38,-149]
]
],
['interchange_d', 'Novoyasenevskaya-Bittsevsky_Park', [
[-44,-149],[-38,-149]
]
],
['interchange', 'Polezhaevskaya-Khoroshyobskaya', [
[-80,50.54],[-80,44]
]
],
['interchange_d', 'Polezhaevskaya-Khoroshyobskaya', [
[-80,50.54],[-80,44]
]
],
['interchange', 'Proletarskaya-Krestyanskaya_Zastava', [
[80,-65],[84,-59.83]
]
],
['interchange_d', 'Proletarskaya-Krestyanskaya_Zastava', [
[80,-65],[84,-59.83]
]
],
['interchange', 'Tekstilshchiki', [
[103.31,-80],[106.62,-76]
]
],
['interchange_d', 'Tekstilshchiki', [
[103.31,-80],[106.62,-76]
]
],
['interchange', 'Lermontovsky_Prospekt-Kosino', [
[147,-106],[156.5,-106]
]
],
['interchange_d', 'Lermontovsky_Prospekt-Kosino', [
[147,-106],[156.5,-106]
]
],
['interchange', 'Michurinsky_Prospekt', [
[-120,-58],[-113,-58]
]
],
['interchange_d', 'Michurinsky_Prospekt', [
[-120,-58],[-113,-58]
]
],
['interchange', 'Rimskaya-Ploshchad_Ilyicha', [
[84,-44.92],[90,-39]
]
],
['interchange_d', 'Rimskaya-Ploshchad_Ilyicha', [
[84,-44.92],[90,-39]
]
],
['interchange', 'Aviamotornaya', [
[99.22,-30],[106,-30]
]
],
['interchange_d', 'Aviamotornaya', [
[99.22,-30],[106,-30]
]
],
['interchange', 'Savyolovskaya-Nizhnyaya_Maslovka', [
[-29,82],[-36,82]
]
],
['interchange_d', 'Savyolovskaya-Nizhnyaya_Maslovka', [
[-29,82],[-36,82]
]
],
['interchange', 'Tsvetnoy_Bulvar-Trubnaya', [
[-4,43.5],[4.17,43.5]
]
],
['interchange_d', 'Tsvetnoy_Bulvar-Trubnaya', [
[-4,43.5],[4.17,43.5]
]
],
['interchange', 'Sevastopolskaya-Kakhovskaya', [
[19,-116],[26,-116]
]
],
['interchange_d', 'Sevastopolskaya-Kakhovskaya', [
[19,-116],[26,-116]
]
],
['interchange', 'Bulvar_Dmitriya_Donskogo-Ulitsa_Starokachalovskaya', [
[-13,-164],[-16.56,-168]
]
],
['interchange_d', 'Bulvar_Dmitriya_Donskogo-Ulitsa_Starokachalovskaya', [
[-13,-164],[-16.56,-168]
]
],
['interchange', 'Marina_Roshcha', [
[1,87],[6,82]
]
],
['interchange_d', 'Marina_Roshcha', [
[1,87],[6,82]
]
],
['interchange', 'Pechatniki-Yozhnoportovaya', [
[96.83,-87.83],[93,-92.46]
]
],
['interchange_d', 'Pechatniki-Yozhnoportovaya', [
[96.83,-87.83],[93,-92.46]
]
],
//
['.Latitude', 'legend_border', [
[-170,-185],[150,-185],[150,-220],[-170,-220],[-170,-185]
]
],
['r1', 'r1_legend', [
[-160,-190],[-140,-190]
], 'Сокольническая линия (красная)', [-140,-190]
],
['r2', 'r2_legend', [
[-160,-194],[-140,-194]
], 'Замоскворецкая линия (зелёная)', [-140,-194]
],
['r3', 'r3_legend', [
[-160,-198],[-140,-198]
], 'Арбатско-Покровская линия (синяя)', [-140,-198]
],
['r4', 'r4_legend', [
[-160,-202],[-140,-202]
], 'Филёвская линия (голубая)', [-140,-202]
],
['rTPK', 'rTPK_legend', [
[-160,-210],[-140,-210]
], 'Третий пересадочный контур', [-140,-210]
],
['r5', 'r5_legend', [
[-60,-190],[-40,-190]
], 'Кольцевая линия (коричневая)', [-40,-190]
],
['r6', 'r6_legend', [
[-60,-194],[-40,-194]
], 'Калужско-Рижская линия (оранжевая)', [-40,-194]
],
['r7', 'r7_legend', [
[-60,-198],[-40,-198]
], 'Таганско-Краснопресненская линия (фиолетовая)', [-40,-198]
],
['r8', 'r8_legend', [
[-60,-202],[-40,-202]
], 'Калининская линия (жёлтая)', [-40,-202]
],
['r8_ext', 'r7_legend', [
[-60,-206],[-40,-206]
], 'Калининско-Солнцевская линия', [-40,-206]
],
['rKOZH', 'rKOZH_legend', [
[-60,-210],[-40,-210]
], 'Кожуховская линия', [-40,-210]
],
['r9', 'r9_legend', [
[60,-190],[40,-190]
], 'Серпуховско-Тимирязевская линия (серая)', [60,-190]
],
['r10', 'r10_legend', [
[60,-194],[40,-194]
], 'Люблинско-Дмитровская линия (салатовая)', [60,-194]
],
['r11', 'r11_legend', [
[60,-198],[40,-198]
], 'Каховская линия (бирюзовая)', [60,-198]
],
['r12', 'r12_legend', [
[60,-202],[40,-202]
], 'Бутовская линия (серо-голубая)', [60,-202]
],
['monorail_legend', 'mn_legend', [
[60,-210],[40,-210]
], 'Московский монорельс', [60,-210]
]
];
var MSTATIONS = [
['s1','Ulitsa_Podbelskogo',[[102,85]],'Улица Подбельского',null,1],
['s1','Cherkizovskaya',[[94.16,77.15]],'Черкизовская',null,1],
['s1','Preobrazhenskaya_Ploshchad',[[86.31,69.31]],'Преображенская площадь',null,1],
['s1_1','Sokolniki',[[76.37,59.36]],'Сокольники',null,1],
['s1','Krasnoselskaya',[[68.52,51.52]],'Красносельская',null,1],
['s1_1','Komsomolskaya',[[60,43]],'Комсомольская',null,1],
['s1','Krasniye_Vorota',[[48.89,31.89]],'Красные ворота',null,1],
['s1_1','Chistye_Prudy',[[34,19]],'Чистые пруды',null,1],
['s1_2','Lubyanka',[[11.5,14.5]],'Лубянка',null,1],
['s1_1','Okhotny_Ryad',[[-4,-1]],'Охотный ряд',null,1],
['s1_4','Biblioteka_Imeni_Lenina',[[-14,-11]],'Библиотека имени Ленина',null,1],
['s1_1','Kropotkinskaya',[[-29.83,-26.83]],'Кропоткинская'],
['s1_2','Park_Kultury',[[-53,-50]],'Парк Культуры',null,1],
['s1','Frunzenskaya',[[-60.96,-57.96]],'Фрунзенская',null,1],
['s1','Sportivnaya',[[-68.81,-65.81]],'Спортивная',null,1],
['s1','Vorobyovy_Gory',[[-76.66,-73.66]],'Воробьёвы горы',null,1],
['s1','Universitet',[[-84.51,-81.51]],'Университет',null,1],
['s1_3','Prospekt_Vernadskogo',[[-91.05,-88.05]],'Проспект Вернадского',null,1],
['s1','Yugo-Zapadnaya',[[-100.2,-97.2]],'Юго-Западная',null,1],
['s1','Troparyovo',[[-108.05,-105.4]],'Тропарёво',null,1],
['s1','Rumyantsevo',[[-115.9,-113.59]],'Румянцево',null,1],
['s1','Salaryevo',[[-123,-121]],'Саларьево',null,1],
//
['s2','Ulitsa_Dybenko',[[-92,122]],'Улица Дыбенко',null,1],
['s2','Belomorskaya',[[-92,114]],'Беломорская',null,1],
['s2','Rechnoy_Vokzal',[[-92,107]],'Речной вокзал',null,1],
['s2','Vodny_Stadion',[[-86,96.07]],'Водный стадион',null,1],
['s2','Voykovskaya',[[-78,88.21]],'Войковская',null,1],
['s2','Sokol',[[-70,80.36]],'Сокол',null,1],
['s2_4','Aeroport',[[-64,74.46]],'Аэропорт',null,1],
['s2_2','Dinamo',[[-56.7,67.3]],'Динамо',null,1],
['s2','Belorusskaya',[[-47,57.78]],null,1],
['s2','Mayakovskaya',[[-31,38]],'Маяковская',null,1],
['s2_2','Tverskaya',[[-29,24]],'Тверская',null,1],
['s2_1','Teatralnaya',[[1,-6]],'Театральная',null,1],
['s2_2','Novokuznetskaya',[[23.10,-33.98]],'Новокузнецкая',null,1],
['s2_3','Paveletskaya',[[45,-58]],'Павелецкая',null,1],
['s2_4','Avtozavodskaya',[[62,-75]],'Автозаводская',null,1],
['s2_4','Tekhnopark',[[68,-86]],'Технопарк',null,1],
['s2_4','Kolomenskaya',[[68,-95.93]],'Коломенская',null,1],
['s2_5','Kashirskaya',[[68,-116]],'Каширская',null,1],
['s2_4','Kantemirovskaya',[[68,-128.64]],'Кантемировская',null,1],
['s2_4','Tsaritsyno',[[68,-136.49]],'Царицыно',null,1],
['s2_4','Orekhovo',[[68,-144.34]],'Орехово',null,1],
['s2_4','Domodedovskaya',[[72,-151]],'Домодедовская',null,1],
['s2_2','Krasnogvardeyskaya',[[79,-158]],'Красногвардейская',null,1],
['s2_6','Alma-Atinskaya',[[95,-158]],'Алма-Атинская',null,1],
//
['s3','Pyatnitskoye_Shosse',[[-159,98]],'Пятницкое шоссе',null,1],
['s3','Mitino',[[-159,90]],'Митино',null,1],
['s3','Volokolamskaya',[[-159,82]],'Волоколамская',null,1],
['s3','Myakinino',[[-159,74]],'Мякинино',null,1],
['s3','Strogino',[[-159,66]],'Строгино',null,1],
['s3','Krylatskoye',[[-159,58]],'Крылатское',null,1],
['s3','Molodyozhnaya',[[-159,50]],'Молодёжная',null,1],
['s3_5','Kuntsevskaya',[[-159,34]],'',null,1],
['s3_2','Slavyansky_Bulvar',[[-141.54,-2.89]],'Славянский бульвар',null,1],
['s3_5','Park_Pobedy',[[-120,-16]],'Парк Победы',null,1],
['s3_3','Kievskaya',[[-72,-16]],'Киевская',null,1],
['s3_3','Smolenskaya',[[-40,-16]],'Смоленская',null,1],
['s3_3','Arbatskaya',[[-24,-11]],'Арбатская',null,1],
['s3_4','Ploshchad_Revolyutsii',[[6,-11]],'Площадь Революции',null,1],
//['s3','Khmelnitskaya',[[36.1,-11]],'Хмельницкая',null,1],
['s3_6','Kurskaya',[[62.27,-5.73]],'Курская',null,1],
['s3','Baumanskaya',[[74,6]],'Бауманская',null,1],
['s3_6','Elektrozavodskaya',[[80,12]],'Электрозаводская',null,1],
['s3','Semyonovskaya',[[90.6,22.6]],'Семёновская',null,1],
['s3','Partizanskaya',[[98.45,30.45]],'Партизанская',null,1],
['s3','Izmaylovskaya',[[106.3,38.3]],'Измайловская',null,1],
['s3','Pervomayskaya',[[114.15,46.15]],'Первомайская',null,1],
['s3','Shchyolkovskaya',[[122,54]],'Щёлковская',null,1],
//
['s4_1','Mezhdunarodnaya',[[-77,23]],'Международная',null,1],
['s4_4','Vystavochnaya',[[-77,11]],'Выставочная',null,1],
['s4_5','Kuntsevskaya',[[-159,34]],'',null,1],
['s4','Pionerskaya',[[-152.01,27.01]],'Пионерская',null,1],
['s4','Filyovsky_Park',[[-144.94,19.94]],'Филёвский парк',null,1],
['s4','Bagrationovskaya',[[-137.88,12.88]],'Багратионовская',null,1],
['s4','Fili',[[-131.08,6.08]],'Фили',null,1],
['s4_1','Kutuzovskaya',[[-97.59,0.43]],'Кутузовская',null,1],
['s4_1','Studencheskaya',[[-87.12,-6]],'Студенческая',null,1],
['s4_2','Kievskaya',[[-72,-6]],'',null,1],
['s4_6','Smolenskaya',[[-52.85,-2]],'Смоленская-2',null,1],
['s4_3','Arbatskaya',[[-32.7,-2]],'Арбатская-2',null,1],
['s4_2','Alexandrovsky_Sad',[[-19,-6]],'Александровский сад',null,1],
//
['s5','Komsomolskaya',[[55.19,43]],'',null,1],
['s5','Kurskaya',[[69.03,-11.43]],'Курская',null,1],
['s5','Taganskaya',[[60,-35.98]],'Таганская',null,1],
['s5','Paveletskaya',[[39.13,-58]],'',null,1],
['s5','Dobryninskaya',[[19,-67.33]],'Добрынинская',null,1],
['s5','Oktyabrskaya',[[-11.46,-69.03]],'',null,1],
['s5_1','Park_Kultury',[[-53,-45.68]],'',null,1],
['s5','Kievskaya',[[-69.09,-11]],'',null,1],
['s5','Rossyskaya',[[-69.38,9.24]],'Российская',null,1],
['s5_2','Krasnopresnenskaya',[[-65.57,24.41]],'Краснопресненская',null,1],
['s5_2','Belorusskaya',[[-47,51.84]],'Белорусская',null,1],
['s5_2','Novoslobodskaya',[[-25,65.36]],'Новослободская',null,1],
['s5','Suvorovskaya',[[4,69.88]],'Суворовская',null,1],
['s5','Prospekt_Mira',[[31,62.73]], '',null,1],
//
['s6','Mytishchi',[[36,145]],'Мытищи',null,1],
['s6','Chelobityevo',[[36,137]],'Челобитьево',null,1],
['s6','Medvedkovo',[[36,129]],'Медведково',null,1],
['s6','Babushkinskaya',[[36,121]],'Бабушкинская',null,1],
['s6','Sviblovo',[[36,113]],'Свиблово',null,1],
['s6','Botanichesky_Sad',[[36,106]],'Ботанический сад',null,1],
['s6','VDNKh',[[36,98]],'ВДНХ',null,1],
['s6','Alexeyevskaya',[[36,90]],'Алексеевская',null,1],
['s6_2','Rizhskaya',[[36,77]],'Рижская',null,1],
['s6_2','Prospekt_Mira',[[36,65]],'Проспект Мира',null,1],
['s6_1','Sukharevskaya',[[36,49]],'Сухаревская',null,1],
['s6_2','Turgenevskaya',[[31,24]],'Тургеневская',null,1],
['s6_2','Kitay-Gorod',[[31,-16]],'Китай-город',null,1],
['s6_4','Tretyakovskaya',[[18.14,-39]],'Третьяковская',null,1],
['s6_3','Oktyabrskaya',[[-7.92,-65.45]],'Октябрьская',null,1],
['s6','Shabolovskaya',[[-15.34,-72.97]],'Шаболовская',null,1],
['s6','Leninsky_Prospekt',[[-21.19,-78.9]],'Ленинский проспект',null,1],
['s6','Akademicheskaya',[[-29.04,-86.87]],'Академическая',null,1],
['s6','Profsoyuznaya',[[-36.89,-94.83]],'Профсоюзная',null,1],
['s6','Noviye_Cheryomushki',[[-43.04,-102]],'Новые Черёмушки',null,1],
['s6_2','Kaluzhskaya',[[-44,-111]],'Калужская',null,1],
['s6','Belyayevo',[[-44,-119]],'Беляево',null,1],
['s6','Konkovo',[[-44,-127]],'Коньково',null,1],
['s6','Tyoplyi_Stan',[[-44,-135]],'Тёплый Стан',null,1],
['s6','Yasenevo',[[-44,-143]],'Ясенево',null,1],
['s6_5','Novoyasenevskaya',[[-44,-149]],'Новоясеневская',null,1],
//
['s7','Planernaya',[[-105,99]],'Планерная',null,1],
['s7','Skhodnenskaya',[[-105,91]],'Сходненская',null,1],
['s7','Tushinskaya',[[-105,84]],'Тушинская',null,1],
['s7','Spartak',[[-104.44,76]],'Спартак',null,1],
['s7','Shchukinskaya',[[-97.01,67.15]],'Щукинская',null,1],
['s7','Oktyabrskoye_Pole',[[-89.16,59.48]],'Октябрьское поле',null,1],
['s7_1','Polezhaevskaya',[[-80,50.54]],'Полежаевская',null,1],
['s7_4','Begovaya',[[-72.15,42.87]],'Беговая',null,1],
['s7_4','Ulitsa_1905_Goda',[[-65.61,36.48]],'Улица 1905 года',null,1],
['s7_2','Barrikadnaya',[[-60.34,31.34]],'Баррикадная',null,1],
['s7_2','Pushkinskaya',[[-23,29]],'Пушкинская',null,1],
['s7_1','Kuznetsky_Most',[[11.5,20.5]],'Кузнецкий мост',null,1],
['s7_5','Kitay-Gorod',[[31,-16]],'',null,1],
['s7_2','Taganskaya',[[60,-45]],'',null,1],
['s7_6','Proletarskaya',[[80,-65]],'Пролетарская',null,1],
['s7_4','Volgogradsky_Prospekt',[[92,-77]],'Волгоградский проспект',null,1],
['s7_3','Tekstilshchiki',[[103.31,-80]],'Текстильщики',null,1],
['s7_7','Kuzminki',[[126,-80]],'Кузьминки',null,1],
['s7_4','Ryazanskiy_Prospekt',[[142,-80]],'Рязанский проспект',null,1],
['s7','Vykhino',[[160,-90]],'Выхино',null,1],
['s7_1','Lermontovsky_Prospekt',[[147,-106]],'Лермонтовский проспект',null,1],
['s7','Zhulebino',[[136,-117]],'Жулебино',null,1],
['s7','Kotelniki',[[133,-126]],'Котельники',null,1],
//
['s8','Rasskazovka',[[-162,-105]],'Рассказовка',null,1],
['s8','Novoperedelkino',[[-154.62,-97.43]],'Новопеределкино',null,1],
['s8','Borovskoye_Shosse',[[-146.77,-89.38]],'Боровское шоссе',null,1],
['s8','Solntsevo',[[-138.92,-81.33]],'Солнцево',null,1],
['s8','Teryoshkovo',[[-131.08,-73.28]],'Терёшково',null,1],
['s8','Ochakovo',[[-124.53,-66.57]],'Очаково',null,1],
['s8_2','Michurinsky_Prospekt',[[-120,-58]], '',null,1],
['s8','Ramenki',[[-120,-44]],'Раменки',null,1],
['s8','Lomonosobsky_Prospekt',[[-120,-35]],'Ломоносовский проспект',null,1],
['s8','Minskaya',[[-120,-25]],'Минская',null,1],
['s8_6','Park_Pobedy',[[-120,-16]],'',null,1],
['s8_5','Delovoy_Tsentr',[[-84,11]],'Деловой центр',null,1],
['s8_1','Kutuzovsky_Prospekt',[[-69.38,3.63]],'Кутузовский проспект',null,1],
['s8_4','Plyushchikha',[[-40,-24.55]],'Плющиха',null,1],
['s8_1','Volkhonka',[[-29.83,-34.29]],'Волхонка',null,1],
['s8_6','Tretyakovskaya',[[18.14,-39]],'',null,1],
['s8_2','Marksistskaya',[[64,-39]],'Марксистская',null,1],
['s8_1','Ploshchad_Ilicha',[[90,-39]],'Площадь Ильича',null,1],
['s8_1','Aviamotornaya',[[99.22,-30]], '',null,1],
['s8','Shosse_Entuziastov',[[109,-20.45]],'Шоссе Энтузиастов',null,1],
['s8','Perovo',[[117,-12.64]],'Перово',null,1],
['s8','Novogireevo',[[125,-4.82]],'Новогиреево',null,1],
['s8','Novokosino',[[133,3]],'Новокосино',null,1],
//
['s9','Altufyevo',[[0,146]],'Алтуфьево',null,1],
['s9','Bibirevo',[[0,137]],'Бибирево',null,1],
['s9','Otradnoye',[[-3,130]],'Отрадное',null,1],
['s9','Vladykino',[[-11,122]],'Владыкино',null,1],
['s9_2','Petrovsko-Razumovskaya',[[-21.52,111.48]],'Петровско-Разумовская',null,1],
['s9_4','Timiryazevskaya',[[-29,101]],'Тимирязевская',null,1],
['s9','Dmitrovskaya',[[-29,91]],'Дмитровская',null,1],
['s9_3','Savyolovskaya',[[-29,82]],'Савёловская',null,1],
['s9_5','Mendeleyevskaya',[[-25,68.95]],'Менделеевская',null,1],
['s9_1','Tsvetnoy_Bulvar',[[-4,43.5]],'Цветной бульвар',null,1],
['s9_2','Chekhovskaya',[[-18.55,24]],'Чеховская',null,1],
['s9_2','Borovitskaya',[[-19,-16]],'Боровицкая',null,1],
['s9_4','Polyanka',[[6,-47.69]],'Полянка',null,1],
['s9_2','Serpukhovskaya',[[19,-71]],'Серпуховская',null,1],
['s9','Tulskaya',[[19,-83]],'Тульская',null,1],
['s9','Nagatinskaya',[[19,-91]],'Нагатинская',null,1],
['s9','Nagornaya',[[19,-99]],'Нагорная',null,1],
['s9','Nakhimovsky_Prospekt',[[19,-107]],'Нахимовский проспект',null,1],
['s9_6','Sevastopolskaya',[[19,-116]],'Севастопольская',null,1],
['s9','Chertanovskaya',[[19,-125]],'Чертановская',null,1],
['s9','Yuzhnaya',[[16,-133]],'Южная',null,1],
['s9','Prazhskaya',[[10,-139.41]],'Пражская',null,1],
['s9','Ulitsa_Akademika_Yangelya',[[2,-147.97]],'Улица Академика Янгеля',null,1],
['s9','Annino',[[-5,-155.45]],'Аннино',null,1],
['s9_2','Bulvar_Dmitriya_Donskogo',[[-13,-164]],'Бульвар Дмитрия Донского',null,1],
//
['s10','Dmitrovskoye_Shosse',[[-24,146]],'Дмитровское шоссе',null,1],
['s10','Ulitsa_800_Letiya_Moskvy',[[-24,139]],'Улица 800-летия Москвы',null,1],
['s10','Seligerskaya',[[-24,132]],'Селигерская',null,1],
['s10','Verkhniye_Likhobory',[[-24,125]],'Верхние Лихоборы',null,1],
['s10','Okruzhnaya',[[-24,118]],'Окружная',null,1],
['s10_4','Petrovsko-Razumovskaya',[[-21.52,111.48]],'',null,1],
['s10_1','Fonvizinskaya',[[-13.87,103.16]],'Фонвизинская',null,1],
['s10_1','Butyrskaya',[[-6.02,94.63]],'Бутырская',null,1],
['s10_2','Marina_Roshcha',[[1,87]],'Марьина Роща',null,1],
['s10_2','Dostoyevskaya',[[4,75]],'Достоевская',null,1],
['s10_2','Trubnaya',[[4.17,43.5]],'Трубная',null,1],
['s10_2','Sretensky_Bulvar',[[31,14.32]],'Сретенский бульвар',null,1],
['s10_2','Chkalovskaya',[[62.27,-16.53]],'Чкаловская',null,1],
['s10_2','Rimskaya',[[84,-44.92]],'Римская',null,1],
['s10_2','Krestyanskaya_Zastava',[[84,-59.83]],'Крестьянская застава',null,1],
['s10','Dubrovka',[[84,-72]],'Дубровка',null,1],
['s10','Kozhukhovskaya',[[92,-83]],'Кожуховская',null,1],
['s10_2','Pechatniki',[[96.83,-87.83]],'Печатники',null,1],
['s10','Volzhskaya',[[108,-106]],'Волжская',null,1],
['s10','Lyublino',[[99,-118]],'Люблино',null,1],
['s10_1','Bratislavskaya',[[91,-126]],'Братиславская',null,1],
['s10_1','Marino',[[84,-137]],'Марьино',null,1],
['s10_1','Borisovo',[[84,-145]],'Борисово',null,1],
['s10_1','Shipilovskaya',[[84,-153]],'Шипиловская',null,1],
['s10_3','Zyablikovo',[[84,-163]],'Зябликово',null,1],
//
['s11_1','Kakhovskaya',[[26,-116]],'Каховская',null,1],
['s11','Varshavskaya',[[46,-116]],'Варшавская',null,1],
['s11_2','Kashirskaya', [[68,-116]],'',null,1],
//
['s12_4','Bittsevsky_Park',[[-38,-149]],'Битцевский парк',null,1],
['s12_3','Lesoparkovaya',[[-27.21,-158.56]],'Лесопарковая',null,1],
['s12_5','Ulitsa_Starokachalovskaya',[[-16.56,-168]],'Улица Старокачаловская',null,1],
['s12_2','Ulitsa_Skobelevskaya',[[-26,-174]],'Улица Скобелевская',null,1],
['s12_1','Bulvar_Admirala_Ushakova',[[-45,-174]],'Бульвар Адмирала Ушакова',null,1],
['s12','Ulitsa_Gorchakova',[[-66,-174]],'Улица Горчакова',null,1],
['s12_1','Buninskaya_Alleya',[[-87,-174]],'Бунинская аллея',null,1],
['s12','Potapovo',[[-108,-174]],'Потапово',null,1],
['s12_1','Chechyorsky_Proezd',[[-129,-174]],'Чечёрский проезд',null,1],
['s12','Novokuryanovo',[[-150,-174]],'Новокурьяново',null,1],
//
['sTPK_3','Kuntsevskaya',[[-152.2,34]],'Кунцевская',null,1],
['sTPK_4','Terekhovo',[[-137,40]],'Терехово',null,1],
['sTPK_6','Mnyovniki',[[-121,40]],'Н.Мнёвники',null,1],
['sTPK','Narodnoye_Opolcheniye',[[-105,40]],'Улица Н.Ополчения',null,1],
['sTPK_5','Delovoy_Tsentr',[[-84,11]],'',null,1],
['sTPK_2','Shelepikha',[[-80,28]],'Шелепиха',null,1],
['sTPK_4','Khoroshyobskaya',[[-80,44]],'Хорошёвская',null,1],
['sTPK_2','Khodynskoye_Pole',[[-67.5,56.5]],'Ходынское Поле',null,1],
['sTPK_3','Petrovsky_Park',[[-51.85,72.15]],'Петровский Парк',null,1],
['sTPK_4','Nizhnyaya_Maslovka',[[-36,82]],'Н.Масловка',null,1],
['sTPK_3','Marina_Roshcha',[[6,82]],'',null,1],
['sTPK_4','Rizhskaya',[[41,82]],'',null,1],
['sTPK_4','Sokolniki',[[76.37,65.67]],'',null,1],
['sTPK_4','Elektrozavodskaya',[[80,19]],'',null,1],
['sTPK_7','Lefortovo',[[98.63,-1.76]],'Лефортово',null,1],
['sTPK_3','Aviamotornaya',[[106,-30]],'Авиамоторная',null,1],
['sTPK_3','Nizhegorodskaya_Ulitsa',[[122.18,-46.18]],'Нижегородская улица',null,1],
['sTPK_3','Tekstilshchiki',[[106.62,-76]],'',null,1],
['sTPK','Yozhnoportovaya',[[93,-92.46]],'Южнопортовая',null,1],
['sTPK','Nagatinsky_Zaton',[[81.63,-106.2]],'Нагатинский затон',null,1],
['sTPK','Zyuzino',[[-12,-116]],'Зюзино',null,1],
['sTPK_3','Kaluzhskaya',[[-50,-116]],'',null,1],
['sTPK_1','Ulitsa_Hovatorov',[[-69.85,-101.15]],'Улица Новаторов',null,1],
['sTPK_3','Prospekt_Vernadskogo',[[-91.05,-79.95]],'',null,1],
['sTPK_3','Michurinsky_Prospekt',[[-113,-58]],'Мичуринский проспект',null,1],
['sTPK_2','Aminyevskoye_Shosse',[[-135.26,-35.74]],'Аминьевское шоссе',null,1],
['sTPK_2','Davydkovo',[[-145.73,-25.27]],'Давыдково',null,1],
//
['sKOZH_3','Aviamotornaya',[[106,-30]],'',null,1],
['sKOZH_3','Nizhegorodskaya_Ulitsa',[[122.18,-46.18]],'',null,1],
['sKOZH','Okskaya_Ulitsa',[[132.65,-56.65]],'Окская улица',null,1],
['sKOZH','Stakhanobskaya_Ulitsa',[[137,-66]],'Стахановская улица',null,1],
['sKOZH_1','Ferganskaya_Ulitsa',[[143.11,-91.39]],'Ферганская улица',null,1],
['sKOZH_2','Kosino',[[156.5,-106]],'Косино',null,1],
['sKOZH_1','Saltykovskaya_Ulitsa',[[165,-123]],'Салтыковская улица',null,1],
['sKOZH_1','Kosino-Ukhtomskaya',[[165,-131]],'Косино-Ухтомская',null,1],
['sKOZH_1','Nekrasovka',[[165,-138]],'Некрасовка',null,1],
//
['sMono','Timiryazevskaya',[[-26,101]],'',null,1],
['sMono','Ulitsa_Milashenkova',[[-13,101]],'',null,1],
['sMono','Teletsentr',[[1,101]],'',null,1],
['sMono','Ulitsa_Akademika_Koroleva',[[17,101]],'',null,1],
['sMono','Vystavochny_Tsentr',[[33,101]],'',null,1],
['sMono_1','Ulitsa_Sergeya_Eyzenshteyna',[[43,101]],'',null,1]
];
// -------------------------------------------
var dw = new dbCarta({
id: "cont-mosmetro",
height: 600,
viewportx: 220,
viewporty: 220,
scalebg: 'rgba(100,200,100,0.2)'
});
dw.style.backgroundColor = "white";
dw.style.border = '1px dashed lightgray';
// define new layers
var route = function(o){ return dw.extend({cls: "Line", width: 5, anchor: ['start', 'middle'], labelscale: 1}, o||{}) },
route_d = function(o){ return route(dw.extend({dash: [2,4]}, o||{})) },
interchange = function(o){ return route(dw.extend({fg: "#000000", join: 'round', cap: 'round', width: 8}, o||{})) },
interchange_d = function(o) { return interchange(dw.extend({fg: "#FFFFFF", width: 7}, o||{})) },
river = function(o){ return route(dw.extend({fg: "#E2FCFC", join: 'round', cap: 'round', labelcolor: '#5555FF', labelscale: 0}, o||{})) },
aeroexpress = function(o){ return route(dw.extend({fg: "#DDDDDD"}, o||{})) },
aeroexpress_d = function(o){ return route(dw.extend({fg: "#FFFFFF", width: 4, dash: [10,10]}, o||{})) },
station = function(o){ return dw.extend({cls: "Dot", bg: "white", size: 2, width: 5, labelscale: 1}, o||{}) },
inst = function(o){ return station(dw.extend({size: 3, labelcolor: o['fg'], bg: o['fg']}, o)) },
inst_d = function(o){ return inst(dw.extend({size: 2, width: 1}, o||{})) };
// lines
dw.extend(dw.mopt, {
"r1": route({fg: "#ED1B35"}),
"r2": route({fg: "#44B85C"}),
"r3": route({fg: "#0078BF"}),
"r4": route({fg: "#19C1F3"}),
"r5": route({fg: "#894E35"}),
"r6": route({fg: "#F58631"}),
"r7": route({fg: "#8E479C"}),
"r8": route({fg: "#FFCB31"}),
"r9": route({fg: "#A1A2A3"}),
"r10": route({fg: "#B3D445"}),
"r11": route({fg: "#79CDCD"}),
"r12": route({fg: "#ACBFE1"}),
"rTPK": route_d({fg: "#554D26"}),
"rKOZH": route_d({fg: "#DE62BE"})
});
// lines ext
dw.extend(dw.mopt, {
"r1_ext": route_d({fg: dw.mopt["r1"].fg}),
"r2_ext": route_d({fg: dw.mopt["r2"].fg}),
"r6_ext": route_d({fg: dw.mopt["r6"].fg}),
"r7_ext": route_d({fg: dw.mopt["r7"].fg}),
"r8_ext": route_d({fg: dw.mopt["r8"].fg}),
"r10_ext": route_d({fg: dw.mopt["r10"].fg}),
"r12_ext": route_d({fg: dw.mopt["r12"].fg})
});
// interchanges
dw.extend(dw.mopt, {
"interchange": interchange(),
"interchange_d": interchange_d()
});
// rivers
dw.extend(dw.mopt, {
"moskva_canal": river({width: 5, rotate: -90}),
"strogino_lake_exit": river({cls: 'Polygon', bg: river().fg, width: 5}),
"vodootvodny_canal": river({width: 5}),
"yauza_river": river({width: 5, rotate: 45, anchor: ['start', 'top']}),
"Nagatino_Kozhukhovo": river({width: 5}),
"Nagatino_poyma": river({width: 6}),
"grebnoy_canal": river({width: 3}),
"moskva_river": river({width: 15, rotate: 45, anchor: ['start', 'top']})
});
// rails
dw.extend(dw.mopt, {
"monorail": route({fg: "#2C87C5", width: 2, labelcolor: "#2C87C5", anchor: ['start', 'bottom']}),
"monorail_legend": route({fg: "#2C87C5", width: 2}),
"sheremetyevo_express_line": aeroexpress({anchor: ['end', 'middle']}),
"sheremetyevo_express_line_d": aeroexpress_d({anchor: ['end', 'top']}),
"vnukovo_express_line": aeroexpress({anchor: ['start', 'middle']}),
"vnukovo_express_line_d": aeroexpress_d({anchor: ['center', 'top']}),
"domodedovo_express_line": aeroexpress({anchor: ['start', 'middle']}),
"domodedovo_express_line_d": aeroexpress_d()
});
// stations
dw.extend(dw.mopt, {
"s1": station({fg: dw.mopt["r1"].fg, anchor: ['start', 'middle']}),
"s1_1": inst({fg: dw.mopt["r1"].fg, anchor: ['start', 'middle']}),
"s1_2": inst({fg: dw.mopt["r1"].fg, anchor: ['end', 'middle']}),
"s1_3": inst({fg: dw.mopt["r1"].fg, anchor: ['end', 'bottom']}),
"s1_4": inst({fg: dw.mopt["r1"].fg, anchor: ['start', 'top']}),
"s2": station({fg: dw.mopt["r2"].fg}),
"s2_1": inst({fg: dw.mopt["r2"].fg}),
"s2_2": inst({fg: dw.mopt["r2"].fg, anchor: ['end', 'middle']}),
"s2_3": inst({fg: dw.mopt["r2"].fg, anchor: ['start', 'bottom']}),
"s2_4": station({fg: dw.mopt["r2"].fg, anchor: ['end', 'middle']}),
"s2_5": inst({fg: dw.mopt["r2"].fg, anchor: ['end', 'top']}),
"s2_6": station({fg: dw.mopt["r2"].fg, anchor: ['start', 'top']}),
"s3": station({fg: dw.mopt["r3"].fg, anchor: ['start', 'middle']}),
"s3_1": station({fg: dw.mopt["r3"].fg, anchor: ['end', 'middle']}),
"s3_2": station({fg: dw.mopt["r3"].fg, anchor: ['end', 'top']}),
"s3_3": inst({fg: dw.mopt["r3"].fg, anchor: ['end', 'bottom']}),
"s3_4": inst({fg: dw.mopt["r3"].fg, anchor: ['start', 'bottom']}),
"s3_5": inst({fg: dw.mopt["r3"].fg, anchor: ['end', 'top']}),
"s3_6": inst({fg: dw.mopt["r3"].fg, anchor: ['start', 'middle']}),
"s3_6": inst({fg: dw.mopt["r3"].fg, anchor: ['end', 'middle']}),
"s4": station({fg: dw.mopt["r4"].fg}),
"s4_1": station({fg: dw.mopt["r4"].fg, anchor: ['end', 'top']}),
"s4_2": inst({fg: dw.mopt["r4"].fg, anchor: ['end', 'middle']}),
"s4_3": station({fg: dw.mopt["r4"].fg, anchor: ['start', 'bottom']}),
"s4_4": inst({fg: dw.mopt["r4"].fg, anchor: ['end', 'top']}),
"s4_5": inst_d({fg: dw.mopt["r4"].fg}),
"s4_6": station({fg: dw.mopt["r4"].fg, anchor: ['center', 'bottom']}),
"s5": inst({fg: dw.mopt["r5"].fg}),
"s5_1": inst({fg: dw.mopt["r5"].fg, anchor: ['end', 'bottom']}),
"s5_2": inst({fg: dw.mopt["r5"].fg, anchor: ['start', 'top']}),
"s6": station({fg: dw.mopt["r6"].fg, anchor: ['start', 'middle']}),
"s6_1": station({fg: dw.mopt["r6"].fg, anchor: ['end', 'middle']}),
"s6_2": inst({fg: dw.mopt["r6"].fg, anchor: ['start', 'middle']}),
"s6_3": inst({fg: dw.mopt["r6"].fg, anchor: ['end', 'bottom']}),
"s6_4": inst({fg: dw.mopt["r6"].fg, anchor: ['start', 'top']}),
"s6_5": inst({fg: dw.mopt["r6"].fg, anchor: ['end', 'middle']}),
"s7": station({fg: dw.mopt["r7"].fg, anchor: ['end', 'middle']}),
"s7_1": inst({fg: dw.mopt["r7"].fg, anchor: ['end', 'middle']}),
"s7_2": inst({fg: dw.mopt["r7"].fg, anchor: ['start', 'bottom']}),
"s7_3": inst({fg: dw.mopt["r7"].fg, anchor: ['start', 'top']}),
"s7_4": station({fg: dw.mopt["r7"].fg, anchor: ['start', 'bottom']}),
"s7_5": inst_d({fg: dw.mopt["r7"].fg}),
"s7_6": inst({fg: dw.mopt["r7"].fg, anchor: ['start', 'middle']}),
"s7_7": station({fg: dw.mopt["r7"].fg, anchor: ['center', 'bottom']}),
"s8": station({fg: dw.mopt["r8"].fg, anchor: ['start', 'middle']}),
"s8_1": inst({fg: dw.mopt["r8"].fg}),
"s8_2": inst({fg: dw.mopt["r8"].fg, anchor: ['start', 'top']}),
"s8_4": inst({fg: dw.mopt["r8"].fg, anchor: ['end', 'top']}),
"s8_5": inst({fg: dw.mopt["r8"].fg, anchor: ['end', 'bottom']}),
"s8_6": inst_d({fg: dw.mopt["r8"].fg}),
"s9": station({fg: dw.mopt["r9"].fg, anchor: ['start', 'middle']}),
"s9_1": inst({fg: dw.mopt["r9"].fg, anchor: ['end', 'middle']}),
"s9_2": inst({fg: dw.mopt["r9"].fg, anchor: ['start', 'middle']}),
"s9_3": inst({fg: dw.mopt["r9"].fg, anchor: ['start', 'top']}),
"s9_4": station({fg: dw.mopt["r9"].fg, anchor: ['end', 'middle']}),
"s9_5": inst({fg: dw.mopt["r9"].fg, anchor: ['start', 'bottom']}),
"s9_6": inst({fg: dw.mopt["r9"].fg, anchor: ['end', 'bottom']}),
"s10": station({fg: dw.mopt["r10"].fg, anchor: ['end', 'middle']}),
"s10_1": station({fg: dw.mopt["r10"].fg, anchor: ['start', 'middle']}),
"s10_2": inst({fg: dw.mopt["r10"].fg, anchor: ['start', 'middle']}),
"s10_3": inst({fg: dw.mopt["r10"].fg, anchor: ['end', 'top']}),
"s10_4": inst_d({fg: dw.mopt["r10"].fg}),
"s11": station({fg: dw.mopt["r11"].fg, anchor: ['center', 'bottom']}),
"s11_1": inst({fg: dw.mopt["r11"].fg, anchor: ['start', 'top']}),
"s11_2": inst_d({fg: dw.mopt["r11"].fg}),
"s12": station({fg: dw.mopt["r12"].fg, anchor: ['center', 'bottom']}),
"s12_1": station({fg: dw.mopt["r12"].fg, anchor: ['center', 'top']}),
"s12_2": station({fg: dw.mopt["r12"].fg, anchor: ['start', 'top']}),
"s12_3": station({fg: dw.mopt["r12"].fg, anchor: ['end', 'middle']}),
"s12_4": inst({fg: dw.mopt["r12"].fg, anchor: ['start', 'middle']}),
"s12_5": inst({fg: dw.mopt["r12"].fg, anchor: ['start', 'top']}),
"sTPK": station({fg: dw.mopt["rTPK"].fg, anchor: ['start', 'top']}),
"sTPK_1": station({fg: dw.mopt["rTPK"].fg, anchor: ['start', 'bottom']}),
"sTPK_2": station({fg: dw.mopt["rTPK"].fg, anchor: ['end', 'middle']}),
"sTPK_3": inst({fg: dw.mopt["rTPK"].fg, anchor: ['start', 'middle']}),
"sTPK_4": inst({fg: dw.mopt["rTPK"].fg, anchor: ['end', 'bottom']}),
"sTPK_5": inst_d({fg: dw.mopt["rTPK"].fg}),
"sTPK_6": station({fg: dw.mopt["rTPK"].fg, anchor: ['center', 'bottom']}),
"sTPK_7": station({fg: dw.mopt["rTPK"].fg, anchor: ['start', 'middle']}),
"sKOZH": station({fg: dw.mopt["rKOZH"].fg, anchor: ['start', 'middle']}),
"sKOZH_1": station({fg: dw.mopt["rKOZH"].fg, anchor: ['end', 'middle']}),
"sKOZH_2": inst({fg: dw.mopt["rKOZH"].fg, anchor: ['start', 'middle']}),
"sKOZH_3": inst_d({fg: dw.mopt["rKOZH"].fg, anchor: ['start', 'middle']}),
"sMono": inst({fg: dw.mopt["monorail"].fg, size: 1, anchor: ['start', 'top']}),
"sMono_1": inst({fg: dw.mopt["monorail"].fg, size: 1, anchor: ['start', 'middle']})
});
dw.loadCarta(MLINES);
dw.loadCarta(MSTATIONS);
dw.scaleCarta(1.4);
dw.draw();
// station list
var findstation = function(ev){
var stationlist = ev.target,
opt = stationlist.options[stationlist.selectedIndex];
if (opt) {
var centerofpts = dw.mflood[opt.value]['pts'];
dw.centerCarta(centerofpts[0][0] + dw.m.offset[0], centerofpts[0][1] + dw.m.offset[1]);
dw.draw();
drawcrosshair();
}
};
var drawcrosshair = function(){
var ctx = dw.getContext('2d');
ctx.save();
ctx.setTransform(1, 0, 0, 1, 0, 0);
ctx.beginPath();
ctx.moveTo(dw.width/2.0, 0);
ctx.lineTo(dw.width/2.0, dw.height);
ctx.moveTo(0, dw.height/2.0);
ctx.lineTo(dw.width, dw.height/2.0);
ctx.lineWidth = 15;
ctx.strokeStyle = 'rgba(100,100,200,0.2)';
ctx.stroke();
ctx.restore();
}
var fillstation = function(ev){
var stationlist = ev.target;
if (stationlist.length < MSTATIONS.length){
MSTATIONS.sort(function(a,b){return (a[3]>b[3]) ? 1 : -1});
for (var i in MSTATIONS) {
if (!MSTATIONS[i][3]) continue;
var el = document.createElement("option");
el.value = MSTATIONS[i][0] + "_" + MSTATIONS[i][1];
el.appendChild(document.createTextNode(MSTATIONS[i][3]));
stationlist.appendChild(el);
}
}
}
var stationlist = document.getElementById('mosmetro-stationlist');
stationlist.onmousedown = fillstation;
stationlist.onchange = findstation;
});
</script>egaxegaxhttp://www.blogger.com/profile/04132504793385756437noreply@blogger.com0