xxxxxxxxxx
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="Michal Škop, KohoVolit.eu">
<link rel="stylesheet" href="//cdn.bootcss.com/bootswatch/3.3.6/readable/bootstrap.min.css">
<link rel="stylesheet" href="//cdn.bootcss.com/leaflet/0.7.7/leaflet.css" />
<script src="//cdn.bootcss.com/leaflet/0.7.7/leaflet.js"></script>
<script src="//cdn.bootcss.com/d3/3.5.16/d3.min.js"></script>
<script src="///cdn.bootcss.com/jquery/2.2.1/jquery.min.js"></script>
<script src="//cdn.bootcss.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="d3.tip.js"></script>
<style type="text/css">
.leaflet-tile-pane {
opacity: .4
}
.leaflet-container {
background-color: #fff;
}
html, body{
width: 100%;
height: 100%;
/*margin: 0;
padding: 0;*/
}
#map {
width: 100%;
height: 92%;
}
circle {
/*fill: #040;
stroke: #040;*/
cursor: pointer;
fill-opacity: 0.8;
/*stroke-opacity: 1;*/
/*stroke-width: 4;*/
}
circle:hover {
stroke-opacity: 1;
}
.bubbles {
width: 100000px;
height: 100000px;
}
/* this is because of Bootstrap - very important! */
svg:not(:root) {
overflow: visible;
}
/* D3 tips */
.d3-tip {
line-height: 1.5;
/*font-weight: bold;*/
padding: 12px;
background: rgba(0, 0, 0, 0.8);
color: #fff;
border-radius: 2px;
}
.d3-tip small {
font-size: 0.5em;
}
/* Style northward tooltips differently */
.d3-tip.n:after {
margin: -1px 0 0 0;
top: 100%;
left: 0;
}
.d3-tip-number {
text-align: right;
padding-left: 1em;
}
.stronger {
color: yellow;
font-weight: bold;
}
/*overwrite bootstrap*/
.navbar {
margin-bottom: 0;
}
@media (max-width: 750px) {
.computer {
display: none;
}
}
@media (min-width: 750px) {
.mobile {
display: none;
}
}
.top {
width: 100vw;
padding: 10px;
color: white;
margin: 0;
/*font-size: 3em;*/
/*background-color: #fed201;*/
}
</style>
<body>
<h1 class="text-center top bg-primary">
CZECH REPUBLIC 2017: WINNING PARTIES
</h1>
<div id="map"></div>
<div class="alert alert-info" id="legend" style="position:absolute;top:100px;">
<span style="color:white">Bubble Size ~ Number of Voters</span><br />
<span style="color:white">Winning Parties:<br />
<span>
<svg height="20" width="20"><circle cx="10" cy="10" r="10" fill="#261060"></svg> ANO<br />
<svg height="20" width="20"><circle cx="10" cy="10" r="10" fill="#004494"></svg> ODS<br />
<svg height="20" width="20"><circle cx="10" cy="10" r="10" fill="#e6ac21"></svg> KDU-ČSL<br />
<svg height="20" width="20"><circle cx="10" cy="10" r="10" fill="#5d8c00"></svg> STAN<br />
</span>
</small>
</div>
<script type="text/javascript">
// parameters:
if (getUrlParameter('wheel'))
var wheelZoom = getUrlParameter('wheel');
else
var wheelZoom = true;
if (getUrlParameter('maxrange'))
if (isNumeric(getUrlParameter('maxrange')))
var maxrange = getUrlParameter('maxrange');
else
var maxrange = 55;
else
var maxrange = 55;
if (getUrlParameter('zoom'))
if (isNumeric(getUrlParameter('zoom')))
var defaultzoom = getUrlParameter('zoom');
else
var defaultzoom = 8;
else
var defaultzoom = 8;
var defaultposition = [50,15]
var csvm = "municipalities.csv"
var csva = "actors.csv"
var parties = ["ODS", "ŘN-VU", "CESTA", "ČSSD", "PB", "RČ", "STAN", "KSČM", "Zelení", "Rozumní", "SPDVPÚ", "Svobodní", "BPI", "ODA", "Piráti", "Občané 2011", "HAVEL", "ČNF", "REU", "TOP 09", "ANO", "DV 2016", "SPR-RSČ", "KDU-ČSL", "ČSNS", "Realisté", "SPS", "DSSS", "SPD", "SPO", "NáS"]
// Create the map
// credits: https://github.com/turban/Leaflet.Mask
L.Mask = L.Polygon.extend({
options: {
stroke: false,
color: '#333',
fillOpacity: 0.3,
clickable: true,
outerBounds: new L.LatLngBounds([-90, -360], [90, 360])
},
initialize: function (latLngs, options) {
var outerBoundsLatLngs = [
this.options.outerBounds.getSouthWest(),
this.options.outerBounds.getNorthWest(),
this.options.outerBounds.getNorthEast(),
this.options.outerBounds.getSouthEast()
];
L.Polygon.prototype.initialize.call(this, [outerBoundsLatLngs, latLngs], options);
},
});
L.mask = function (latLngs, options) {
return new L.Mask(latLngs, options);
};
// https://whosonfirst.mapzen.com/spelunker/id/85633259/#8/42.564/20.902
// https://jsfiddle.net/FranceImage/1yaqtx9u/
var cz = {
"type": "FeatureCollection",
"features":[
{
"id": 85633105,
"type": "Feature",
"properties": {},
"geometry": {
"coordinates":[[[14.397808,51.013115],[14.425817,51.020944],[14.462094,51.019652],[14.473462,51.023372],[14.482144,51.037196],[14.487932,51.028721],[14.490102,51.022701],[14.493513,51.016706],[14.502918,51.008516],[14.51532,51.003038],[14.542295,50.998749],[14.554594,50.992651],[14.566687,50.983401],[14.574335,50.975494],[14.577435,50.965727],[14.575575,50.95069],[14.567824,50.938649],[14.555835,50.924283],[14.550357,50.912087],[14.561829,50.906351],[14.617123,50.920872],[14.629215,50.920717],[14.634589,50.9094],[14.628802,50.896119],[14.611852,50.870953],[14.608338,50.853073],[14.613195,50.84558],[14.647922,50.839379],[14.662185,50.834366],[14.700425,50.815969],[14.737529,50.810698],[14.759233,50.810181],[14.775356,50.812972],[14.785071,50.820052],[14.79458,50.831627],[14.810393,50.858447],[14.831683,50.857982],[14.867857,50.86439],[14.982062,50.859067],[14.984129,50.867697],[14.982889,50.902424],[14.981752,50.905266],[14.981132,50.90909],[14.982062,50.914671],[14.984852,50.918082],[14.994671,50.92511],[14.997771,50.930174],[14.996635,50.959216],[14.981442,50.973221],[14.965215,50.981334],[14.960978,50.992651],[14.961081,50.992651],[14.965629,50.996062],[14.970693,50.998697],[14.976377,51.000402],[14.982062,51.001177],[14.996531,51.007844],[15.001182,51.012443],[15.003973,51.020685],[15.02299,51.009652],[15.073632,51.002624],[15.082107,50.992754],[15.09389,50.985416],[15.107946,50.981024],[15.119211,50.982471],[15.122518,50.992651],[15.122518,50.992754],[15.13151,51.005828],[15.144429,51.011564],[15.156108,51.007844],[15.160759,50.992651],[15.170164,50.977975],[15.227111,50.977406],[15.253776,50.969035],[15.269796,50.952653],[15.268763,50.94299],[15.260081,50.932499],[15.253053,50.914103],[15.25605,50.899892],[15.265352,50.88227],[15.277134,50.865734],[15.28778,50.854881],[15.307727,50.844753],[15.325813,50.839689],[15.341006,50.83173],[15.352995,50.812972],[15.353305,50.803257],[15.350515,50.793232],[15.349688,50.783723],[15.356096,50.775455],[15.368579,50.772949],[15.370255,50.772613],[15.381314,50.780002],[15.390822,50.790648],[15.400124,50.797986],[15.441775,50.800208],[15.641866,50.755766],[15.653235,50.75096],[15.666464,50.738093],[15.673803,50.733545],[15.684345,50.731426],[15.76744,50.744191],[15.792245,50.742692],[15.794415,50.735871],[15.797619,50.729773],[15.848159,50.675151],[15.854567,50.673704],[15.882265,50.674221],[15.941486,50.68838],[15.958023,50.686881],[15.971459,50.678613],[15.984481,50.662904],[15.993163,50.649364],[15.998641,50.635567],[15.996367,50.623681],[15.982001,50.61624],[15.980037,50.612984],[15.97921,50.60978],[15.979934,50.606628],[15.982001,50.603631],[16.024479,50.608592],[16.086491,50.64678],[16.128658,50.644042],[16.160284,50.628642],[16.175477,50.624095],[16.192324,50.626575],[16.204519,50.636342],[16.211754,50.649106],[16.219092,50.659131],[16.232011,50.660888],[16.268288,50.660423],[16.300948,50.6551],[16.331644,50.644042],[16.416806,50.586629],[16.425901,50.567561],[16.394482,50.559344],[16.398306,50.551799],[16.398306,50.548492],[16.395516,50.545701],[16.391175,50.539914],[16.389624,50.534849],[16.388281,50.52715],[16.388384,50.521258],[16.391175,50.521827],[16.382596,50.514179],[16.362029,50.501208],[16.352624,50.492785],[16.335468,50.490356],[16.303428,50.49604],[16.287719,50.492785],[16.279967,50.479866],[16.264981,50.471649],[16.247411,50.464983],[16.232011,50.456766],[16.226534,50.455371],[16.217335,50.45165],[16.211237,50.451289],[16.216095,50.440178],[16.217955,50.437129],[16.198008,50.440023],[16.190153,50.424158],[16.199559,50.406278],[16.232011,50.402609],[16.24493,50.376823],[16.249685,50.371035],[16.2625,50.36442],[16.269839,50.365454],[16.27697,50.369433],[16.288649,50.371862],[16.334227,50.371862],[16.343736,50.36995],[16.350764,50.360648],[16.351487,50.351346],[16.35066,50.342251],[16.353244,50.333518],[16.371021,50.318377],[16.415566,50.307938],[16.437787,50.297965],[16.452153,50.284994],[16.477578,50.255332],[16.492047,50.242722],[16.50476,50.227995],[16.535042,50.207738],[16.545894,50.188824],[16.557263,50.154718],[16.566668,50.142212],[16.584238,50.127432],[16.618654,50.10702],[16.660616,50.093016],[16.701233,50.094928],[16.732033,50.121955],[16.754253,50.13229],[16.766449,50.1434],[16.777301,50.15694],[16.795284,50.174406],[16.817712,50.186757],[16.837556,50.188617],[16.857606,50.187739],[16.869762,50.189729],[16.880964,50.191563],[16.890369,50.196937],[16.907009,50.211768],[16.918998,50.217091],[16.927783,50.217298],[16.946283,50.21306],[16.955275,50.213474],[16.957755,50.217143],[16.957548,50.229235],[16.960339,50.231974],[16.975015,50.231819],[16.98101,50.229183],[16.98566,50.223137],[16.996306,50.212905],[17.008398,50.20996],[17.014806,50.218486],[17.012842,50.231664],[16.99982,50.242722],[16.998373,50.26701],[16.987831,50.284942],[16.969641,50.297758],[16.945249,50.306905],[16.926543,50.319255],[16.916724,50.338634],[16.909283,50.359925],[16.897914,50.378218],[16.865874,50.408449],[16.865771,50.422401],[16.892953,50.432943],[16.915794,50.431083],[16.944005,50.420267],[16.958789,50.414598],[16.98194,50.416355],[17.084672,50.397958],[17.095628,50.393669],[17.118882,50.381164],[17.131698,50.376823],[17.145444,50.376719],[17.175933,50.38075],[17.187612,50.378476],[17.185442,50.375686],[17.188852,50.364834],[17.195053,50.351915],[17.201048,50.343233],[17.210866,50.336412],[17.24611,50.322149],[17.269881,50.317757],[17.316803,50.318635],[17.337474,50.313002],[17.319077,50.308248],[17.321867,50.304476],[17.325381,50.301117],[17.329515,50.298223],[17.334063,50.295691],[17.332823,50.282668],[17.334786,50.270008],[17.341711,50.259724],[17.355044,50.253264],[17.365896,50.271558],[17.388013,50.272643],[17.409821,50.261326],[17.419122,50.242722],[17.424187,50.240552],[17.429561,50.239777],[17.434832,50.2405],[17.44,50.242722],[17.469352,50.265563],[17.516998,50.268354],[17.606398,50.258225],[17.629549,50.262101],[17.646705,50.271093],[17.676368,50.297396],[17.681949,50.305561],[17.684533,50.312382],[17.691044,50.315069],[17.707994,50.311039],[17.713575,50.30768],[17.731971,50.291763],[17.734452,50.28949],[17.734969,50.286802],[17.734245,50.283805],[17.731971,50.280653],[17.721119,50.261946],[17.719156,50.252799],[17.721429,50.242722],[17.731971,50.236005],[17.747578,50.217504],[17.738173,50.202363],[17.717915,50.191098],[17.675334,50.174716],[17.648669,50.167998],[17.600403,50.16681],[17.589448,50.163244],[17.58211,50.153167],[17.584177,50.145881],[17.632753,50.106348],[17.648359,50.101801],[17.658488,50.102989],[17.666963,50.106142],[17.677608,50.107744],[17.690734,50.10547],[17.717915,50.096788],[17.731971,50.094876],[17.732385,50.093894],[17.732592,50.092964],[17.732385,50.092189],[17.731971,50.091466],[17.72267,50.08635],[17.719466,50.080872],[17.722566,50.075136],[17.731971,50.06909],[17.74303,50.060563],[17.749852,50.049504],[17.755433,50.037154],[17.763287,50.025216],[17.774553,50.015191],[17.839355,49.973643],[17.875735,49.968682],[17.912116,49.975814],[17.941571,49.992764],[17.959761,49.995812],[17.999862,49.996588],[18.032418,50.00284],[18.037483,50.007233],[18.035726,50.017207],[18.028698,50.024131],[18.020119,50.024286],[18.012161,50.022684],[18.00689,50.024131],[18.002446,50.046765],[18.019074,50.044087],[18.033245,50.041805],[18.091639,50.017207],[18.085128,49.998758],[18.098151,49.989043],[18.162023,49.98124],[18.177216,49.975814],[18.208738,49.958295],[18.22052,49.954885],[18.243982,49.951732],[18.255867,49.946048],[18.260105,49.94057],[18.267029,49.925067],[18.27261,49.918298],[18.292454,49.907808],[18.306923,49.909668],[18.334932,49.925429],[18.333795,49.927135],[18.332452,49.928271],[18.330695,49.92884],[18.328524,49.92884],[18.368832,49.932044],[18.407486,49.923155],[18.481797,49.896645],[18.505051,49.896697],[18.544428,49.912975],[18.559208,49.907187],[18.565409,49.889049],[18.562929,49.873701],[18.567269,49.861454],[18.593831,49.852204],[18.566339,49.831585],[18.566753,49.804765],[18.584116,49.774379],[18.60768,49.74296],[18.617706,49.713866],[18.62401,49.706373],[18.637343,49.700327],[18.668142,49.69857],[18.682404,49.695779],[18.695427,49.688854],[18.715064,49.673817],[18.727673,49.668907],[18.742246,49.669683],[18.757852,49.674075],[18.773458,49.675832],[18.788444,49.668597],[18.792579,49.660794],[18.799297,49.626378],[18.803947,49.616766],[18.81573,49.599299],[18.820174,49.590256],[18.83454,49.547623],[18.837434,49.526952],[18.833196,49.510261],[18.792269,49.509537],[18.773562,49.504886],[18.732531,49.480288],[18.704522,49.479255],[18.675583,49.485043],[18.64282,49.495791],[18.635896,49.496721],[18.628971,49.495791],[18.600446,49.485973],[18.556211,49.490159],[18.535643,49.481684],[18.530476,49.473467],[18.527995,49.454864],[18.522931,49.446079],[18.514663,49.440601],[18.481797,49.429077],[18.439215,49.395074],[18.416788,49.385462],[18.387642,49.389751],[18.385162,49.342261],[18.361586,49.330191],[18.324597,49.311255],[18.190031,49.276942],[18.160576,49.2587],[18.136495,49.233068],[18.117788,49.202579],[18.105075,49.169765],[18.101458,49.142945],[18.10163,49.136928],[18.102905,49.09225],[18.09629,49.070288],[18.075516,49.047188],[18.046061,49.029153],[18.012885,49.019128],[17.959244,49.021867],[17.93506,49.019386],[17.914079,49.010498],[17.90085,48.993031],[17.894649,48.9782],[17.886897,48.947246],[17.878733,48.933552],[17.860336,48.921718],[17.841215,48.920994],[17.820131,48.923371],[17.795533,48.920581],[17.77941,48.911744],[17.744891,48.872574],[17.727217,48.86291],[17.535084,48.812991],[17.498497,48.816763],[17.467905,48.838105],[17.453332,48.842756],[17.429561,48.838157],[17.411225,48.830216],[17.391734,48.821776],[17.374371,48.819605],[17.260269,48.857794],[17.21221,48.866062],[17.167458,48.859758],[17.113715,48.83392],[17.10462,48.824618],[17.098728,48.805756],[17.084362,48.793715],[17.049946,48.774027],[17.025348,48.746328],[16.974808,48.649874],[16.963336,48.635947],[16.947523,48.623157],[16.945043,48.604166],[16.910523,48.63078],[16.896674,48.696977],[16.873006,48.718991],[16.856573,48.719818],[16.818125,48.710775],[16.798902,48.709224],[16.780505,48.713772],[16.744332,48.729637],[16.729035,48.733099],[16.691001,48.732065],[16.675085,48.733926],[16.661959,48.740023],[16.654725,48.751857],[16.651004,48.766223],[16.643149,48.778264],[16.624029,48.78338],[16.605529,48.784827],[16.545791,48.796299],[16.528737,48.803534],[16.519539,48.805601],[16.510341,48.804774],[16.492254,48.79971],[16.481919,48.7994],[16.453083,48.80219],[16.43572,48.794542],[16.384974,48.737078],[16.374018,48.730308],[16.358309,48.727259],[16.352727,48.728448],[16.339498,48.735579],[16.318724,48.733512],[16.317588,48.73284],[16.177751,48.746535],[16.085354,48.742866],[16.032334,48.758059],[15.931771,48.806428],[15.930324,48.811389],[15.930324,48.818313],[15.925053,48.822602],[15.908103,48.819709],[15.90707,48.830251],[15.899629,48.834746],[15.888363,48.835056],[15.875754,48.833093],[15.885986,48.842033],[15.877614,48.841671],[15.870173,48.843893],[15.859218,48.849164],[15.840097,48.850094],[15.833276,48.852006],[15.828315,48.857122],[15.824284,48.869421],[15.818497,48.872315],[15.787904,48.872263],[15.779222,48.870868],[15.743669,48.858466],[15.726823,48.854952],[15.703775,48.854952],[15.681347,48.858466],[15.603729,48.887353],[15.544187,48.902612],[15.521254,48.908489],[15.471851,48.936704],[15.450354,48.944817],[15.405912,48.954687],[15.357853,48.97081],[15.335529,48.974996],[15.28871,48.975358],[15.283749,48.977632],[15.279615,48.982593],[15.27455,48.986727],[15.266902,48.986675],[15.262872,48.982593],[15.260391,48.969157],[15.257084,48.963886],[15.243234,48.95293],[15.238067,48.95076],[15.161792,48.937221],[15.141949,48.937479],[15.148563,48.951742],[15.148977,48.965333],[15.144739,48.978924],[15.137401,48.993031],[15.059576,48.997217],[15.003973,49.009774],[14.982062,49.007914],[14.978858,49.00626],[14.977308,49.002902],[14.977308,48.998251],[14.978238,48.992825],[14.964595,48.971741],[14.964182,48.943267],[14.968316,48.912674],[14.968213,48.885028],[14.947025,48.822396],[14.93979,48.809787],[14.938137,48.80281],[14.940101,48.796506],[14.944441,48.788599],[14.948886,48.78214],[14.951056,48.780331],[14.939584,48.762813],[14.919327,48.761573],[14.86765,48.775577],[14.815457,48.780331],[14.800367,48.776507],[14.794476,48.766999],[14.790446,48.754855],[14.78042,48.743124],[14.775356,48.724004],[14.722749,48.693411],[14.703836,48.673103],[14.700219,48.646102],[14.700735,48.615535],[14.695671,48.589542],[14.69114,48.586535],[14.675621,48.576235],[14.659187,48.576959],[14.651333,48.583496],[14.645442,48.592901],[14.634693,48.602332],[14.628182,48.603288],[14.612885,48.599748],[14.605134,48.600316],[14.60193,48.604528],[14.601827,48.611194],[14.600586,48.617576],[14.594179,48.621323],[14.578779,48.620496],[14.548807,48.610936],[14.53382,48.608714],[14.522038,48.610626],[14.482144,48.624475],[14.458166,48.643182],[14.443593,48.636516],[14.421166,48.597061],[14.405353,48.586286],[14.353366,48.571429],[14.333213,48.560706],[14.325358,48.558639],[14.315746,48.557916],[14.216527,48.58117],[14.07483,48.591712],[14.040827,48.601169],[14.032456,48.60613],[14.015196,48.620393],[14.010855,48.62587],[14.006204,48.639513],[14.008064,48.642407],[14.013749,48.643802],[14.020467,48.653155],[14.023464,48.654602],[14.028322,48.653982],[14.032869,48.654912],[14.034729,48.661165],[14.032146,48.667263],[14.026151,48.670054],[14.019227,48.671914],[14.014162,48.675066],[14.007754,48.683283],[13.991115,48.700181],[13.98233,48.706485],[13.915047,48.73098],[13.893136,48.743021],[13.874946,48.752426],[13.855929,48.759299],[13.815725,48.76643],[13.796191,48.779814],[13.747925,48.843376],[13.724671,48.867303],[13.710615,48.87247],[13.673356,48.876346],[13.654443,48.882237],[13.637389,48.893451],[13.621783,48.909057],[13.611138,48.927247],[13.608657,48.946161],[13.590467,48.944817],[13.573414,48.951018],[13.556464,48.959958],[13.538894,48.967038],[13.522395,48.969342],[13.51595,48.970242],[13.5021,48.966056],[13.492592,48.955049],[13.482257,48.937634],[13.458899,48.945024],[13.427273,48.959958],[13.398541,48.977683],[13.384175,48.993031],[13.383555,49.021092],[13.372393,49.038507],[13.329915,49.066929],[13.299529,49.093645],[13.287333,49.10057],[13.267283,49.105634],[13.206821,49.107495],[13.178503,49.118347],[13.162586,49.135142],[13.14946,49.15483],[13.055823,49.238184],[13.04342,49.242784],[13.043214,49.242887],[13.043214,49.242939],[13.011278,49.267795],[13.00673,49.277097],[13.005387,49.28676],[12.999806,49.294925],[12.982442,49.299628],[12.95433,49.31911],[12.939861,49.326758],[12.922911,49.332701],[12.88467,49.339573],[12.870925,49.336731],[12.875369,49.323864],[12.856662,49.32221],[12.797751,49.327843],[12.777907,49.332545],[12.762094,49.343242],[12.729331,49.391147],[12.709177,49.404737],[12.663082,49.418897],[12.643548,49.42949],[12.632179,49.44396],[12.627218,49.460186],[12.624325,49.493001],[12.622981,49.509847],[12.61554,49.513775],[12.604998,49.512793],[12.593732,49.515015],[12.58288,49.522405],[12.575025,49.529898],[12.568721,49.538838],[12.562313,49.550827],[12.558282,49.562557],[12.553631,49.584726],[12.546603,49.595579],[12.536061,49.603123],[12.512187,49.61165],[12.501955,49.619711],[12.502678,49.62214],[12.507432,49.629995],[12.499474,49.632527],[12.496891,49.633871],[12.505365,49.646118],[12.504642,49.659399],[12.496374,49.669993],[12.482524,49.674695],[12.449245,49.68503],[12.433949,49.6918],[12.419583,49.700223],[12.398912,49.719499],[12.388577,49.732314],[12.383616,49.742856],[12.395398,49.757894],[12.436739,49.769263],[12.452655,49.779702],[12.455859,49.796135],[12.456376,49.817115],[12.462474,49.831223],[12.482524,49.827244],[12.489863,49.842695],[12.51291,49.870239],[12.520972,49.885535],[12.524072,49.904965],[12.517871,49.9122],[12.503608,49.915766],[12.462681,49.931269],[12.463818,49.942121],[12.470742,49.955608],[12.468158,49.970233],[12.451312,49.980568],[12.414518,49.983048],[12.399222,49.992764],[12.398189,49.992764],[12.24688,50.044957],[12.243676,50.051313],[12.243469,50.060408],[12.241402,50.07064],[12.232514,50.08051],[12.218044,50.088572],[12.202025,50.094514],[12.187865,50.102834],[12.179184,50.117976],[12.178564,50.132962],[12.185592,50.155699],[12.182698,50.170737],[12.17505,50.182623],[12.163784,50.193785],[12.13929,50.211045],[12.089887,50.230837],[12.079552,50.242722],[12.092057,50.254815],[12.102393,50.259156],[12.109111,50.263806],[12.110971,50.276622],[12.10725,50.290885],[12.099189,50.299773],[12.076141,50.315173],[12.101344,50.31398],[12.149315,50.311711],[12.168538,50.302977],[12.17443,50.293727],[12.17412,50.276571],[12.178047,50.268767],[12.189209,50.262463],[12.203782,50.259569],[12.232514,50.259104],[12.239645,50.256572],[12.242953,50.252954],[12.242436,50.248355],[12.237992,50.242722],[12.236441,50.242567],[12.235098,50.242257],[12.233754,50.241689],[12.232514,50.240965],[12.229827,50.239053],[12.228897,50.237038],[12.22993,50.234816],[12.232514,50.232491],[12.249981,50.221173],[12.254321,50.217401],[12.258455,50.21089],[12.260212,50.20505],[12.261246,50.199883],[12.273235,50.172339],[12.283363,50.162211],[12.300417,50.160815],[12.314369,50.167327],[12.314369,50.176215],[12.308582,50.186912],[12.305584,50.199314],[12.308685,50.217091],[12.314059,50.226496],[12.3338,50.242722],[12.336487,50.258587],[12.344652,50.26639],[12.355814,50.271403],[12.367183,50.279051],[12.398189,50.315173],[12.408937,50.321994],[12.438289,50.332536],[12.450175,50.339357],[12.453792,50.340701],[12.462784,50.340494],[12.466815,50.34189],[12.468985,50.345559],[12.468365,50.349486],[12.467022,50.352845],[12.466815,50.354912],[12.469502,50.359408],[12.471569,50.364472],[12.475083,50.369433],[12.482524,50.373567],[12.510223,50.38876],[12.550531,50.396357],[12.625358,50.399922],[12.678792,50.393721],[12.691814,50.394651],[12.702976,50.401524],[12.725094,50.423435],[12.737909,50.431548],[12.754239,50.435321],[12.770259,50.435941],[12.788139,50.434339],[12.79434,50.435889],[12.808396,50.441832],[12.817388,50.44302],[12.825759,50.441418],[12.918363,50.4054],[12.952573,50.40416],[12.960631,50.409234],[12.982442,50.42297],[12.996602,50.433667],[13.003113,50.451909],[13.009624,50.492681],[13.017892,50.49635],[13.026264,50.497642],[13.034532,50.496505],[13.042284,50.492785],[13.051069,50.491131],[13.06037,50.490614],[13.069775,50.491079],[13.07887,50.492681],[13.078974,50.492681],[13.079181,50.492785],[13.107396,50.498986],[13.160106,50.497022],[13.184704,50.508753],[13.19907,50.525341],[13.232349,50.58203],[13.25178,50.580893],[13.268006,50.573658],[13.284646,50.568956],[13.305627,50.575777],[13.316272,50.596034],[13.321853,50.60239],[13.35937,50.61934],[13.365365,50.623474],[13.365985,50.627092],[13.368775,50.628332],[13.380971,50.62549],[13.386345,50.621614],[13.400401,50.606576],[13.407016,50.601305],[13.42934,50.594329],[13.447944,50.597274],[13.464893,50.607093],[13.482257,50.620891],[13.492179,50.624456],[13.498173,50.629159],[13.499103,50.635205],[13.493315,50.643215],[13.509955,50.651225],[13.523288,50.66218],[13.527215,50.675668],[13.51564,50.691016],[13.556567,50.706725],[13.601939,50.712151],[13.691753,50.711841],[13.711028,50.71427],[13.749062,50.72321],[13.770663,50.724605],[13.816552,50.72135],[13.834535,50.723675],[13.863474,50.735147],[13.869572,50.735251],[13.875359,50.736542],[13.882181,50.742744],[13.882697,50.748015],[13.88032,50.755043],[13.87908,50.763518],[13.883318,50.773233],[13.892516,50.780416],[13.900991,50.780622],[13.910706,50.778762],[13.923315,50.779951],[13.933547,50.784808],[13.948843,50.797211],[13.959592,50.802068],[13.979126,50.804755],[14.015713,50.801758],[14.034936,50.802585],[14.190792,50.847905],[14.202988,50.85514],[14.221281,50.872607],[14.232133,50.879376],[14.2681,50.88413],[14.346545,50.880203],[14.375897,50.895964],[14.381892,50.920872],[14.355227,50.930639],[14.31833,50.937512],[14.292802,50.95348],[14.293732,50.96397],[14.302207,50.967691],[14.303757,50.969707],[14.28381,50.974822],[14.250013,50.977613],[14.238335,50.982471],[14.249497,50.992651],[14.263553,51.021435],[14.287531,51.036834],[14.319363,51.040012],[14.35657,51.032338],[14.364115,51.027998],[14.369386,51.022442],[14.375897,51.01699],[14.386749,51.01327],[14.397808,51.013115]]],"type":"Polygon"
}
}
]
}
// transform geojson coordinates into an array of L.LatLng
var coordinates = cz.features[0].geometry.coordinates[0];
var latLngs = [];
for (i=0; i<coordinates.length; i++) {
latLngs.push(new L.LatLng(coordinates[i][1], coordinates[i][0]));
}
var map = L.map('map', {'zoomControl':false, scrollWheelZoom: wheelZoom}).setView(defaultposition, defaultzoom);
map.on('click', function() {
if (map.scrollWheelZoom.enabled()) {
map.scrollWheelZoom.disable();
}
else {
map.scrollWheelZoom.enable();
}
});
// add an OpenStreetMap tile layer
// also see https://wiki.openstreetmap.org/wiki/Tiles
L.tileLayer('https://{s}.www.toolserver.org/tiles/bw-mapnik/{z}/{x}/{y}.png', {
attribution: 'CC-BY Michal Škop | © <a href="https://osm.org/copyright">OpenStreetMap</a> contributors | '
}).addTo(map);
L.mask(latLngs).addTo(map);
L.control.zoom({"position":"topright"}).addTo(map);
//svg
var svg = d3.select(map.getPanes().overlayPane).append("svg").attr("class", "bubbles");
/* Initialize tooltip */
var tip = changetooltip();
/* Invoke the tip in the context of your visualization */
svg.call(tip);
// Add tooltip div
var div = d3.select("body").append("div")
.attr("class", "tooltip")
.style("opacity", 1e-6);
//visualization
d3.csv(csvm, function(geos) {
d3.csv(csva, function(actorsar) {
geos.sort(function(a, b) {
return parseFloat(b.population) - parseFloat(a.population);
});
//reorder votes
var votes = {};
for(i=0;i<geos.length;i++) {
if (typeof(votes[geos[i]['id']]) == 'undefined') {
votes[geos[i]['id']] = {
'population': parseInt(geos[i]['population']),
'n': []
}
}
for (var k in parties) {
var p = parties[k];
var v = parseInt(geos[i][p]);
votes[geos[i]['id']]['n'].push({'n': v, 'abbreviation': p})
}
// sort
votes[geos[i]['id']]['n'].sort(function(a, b) {
return parseFloat(b.n) - parseFloat(a.n);
});
// v = parseInt(votesar[i]['votes']);
// votes[votesar[i]['municipality_id']]['population'] += v;
// votes[votesar[i]['municipality_id']]['n'].push({'n': v, 'id': votesar[i]['actor_id']})
}
//max population
maxpopulation = 0
for (var k in votes) {
if ((typeof(votes[k].population) != 'undefined') && (votes[k].population > maxpopulation))
maxpopulation = votes[k].population;
}
if (getUrlParameter('maxdomain'))
if (isNumeric(getUrlParameter('maxdomain')))
var maxdomain = getUrlParameter('maxdomain');
else
var maxdomain = maxpopulation;
else
var maxdomain = maxpopulation;
//scale
var radiusScale = d3.scale.sqrt().domain([0, maxdomain]).range([0, maxrange]);
//mapping
actors = toObjectWithAbbr(actorsar);
nodes = geos
.map(function(d) {
var mpoint = projectPoint(d.latitude,d.longitude);
if (typeof(votes[d.id]) != 'undefined')
var r = radiusScale(votes[d.id].population);
else
var r = 0;
return {
x: mpoint.x,
y: mpoint.y,
r: r,
name: d.name,
value: d, //including whole d ?
actors: votes[d.id]
}
});
//adding circles
var circle = svg.selectAll("svg")
.data(nodes)
.enter().append("svg:svg")
.append("svg:circle")
.attr("class","bubble")
.attr("cx", function (d) {return d.x})
.attr("cy", function (d) {return d.y})
.attr("r", function (d) {
return d.r
})
.attr("fill", function (d) {
if ((typeof(d.actors) != 'undefined') && (typeof(actors[d.actors.n[0].abbreviation]) != 'undefined')) {
if (typeof(actors[d.actors.n[0].abbreviation].color) == 'undefined') return '#ccf'; else return actors[d.actors.n[0].abbreviation].color;
} else {
return '#ccf';
}
})
.attr("stroke",function (d) {return actors[d.actors.n[0].abbreviation].color;})
.on("mouseover", tip.show)
.on("mouseout", tip.hide)
.on("click", tip.show);
//on zoom or map movement, https://leafletjs.com/reference.html#events
map.on("viewreset", changeit);
map.on("moveend", changeit);
//map.on("move", hidepoints); //not needed
map.on("zoomstart", hidepoints);
$(".bubbles").show(100);
});
});
//helper function matrix to values
function matrixVal(s) {
return s.split('(')[1].split(')')[0].split(',');
}
//hide points
function hidepoints() {
$(".bubbles").hide();
}
// adjust points after map change (zoom, move)
function changeit() {
//Chromium/Chrome does not support well changes, so:
var s = $(".leaflet-map-pane").css("-webkit-transform"); //chromium, opera
if (typeof(s) == 'undefined')
var s = $(".leaflet-map-pane").css("transform"); //ff
var sar = matrixVal(s);
//if towns in svg: (not used if it is div)
$(".bubbles").css('left',-1*parseFloat(sar[4]));
$(".bubbles").css('top',-1*parseFloat(sar[5]));
d3.selectAll(".bubble").each(function(d,i) {
//set correct x,y
mpoint = projectPoint(d.value.latitude,d.value.longitude,d.value.id);
$(this)
.attr("r",
d.r * Math.pow(map.getZoom(),5) / Math.pow(defaultzoom,5) //power of 3 to show the results better in small scale
)
/*.attr("stroke-width",
Math.abs(radiusScale(d.value.population.p9)-radiusScale(d.value.population.p6)) * Math.pow(map.getZoom(),3) / 729 //power of 3 to show the results better in small scale
)*/
.attr("cx", mpoint.x)
.attr("cy", mpoint.y);
//Reposition the SVG to cover the features.
//note: if towns is div, next lines are needed; if it is svg, it is different:
$(this).attr('transform',"translate(" + sar[4] + "," + sar[5] + ")");
/*$(this).parent().css('left',-1*parseFloat(sar[4]));
$(this).parent().css('top',-1*parseFloat(sar[5]));*/
});
$(".bubbles").show(300);
}
//tooltip
function changetooltip() {
tip = d3.tip().attr('class', 'd3-tip').html(function(d) {
html = '<span class="stronger">' + d.name + "</span><br>";
if (typeof(d.actors.n) != 'undefined') {
html += "<table>"
$.each(d.actors.n, function(i,v) {
if (i < 9) {
html += "<tr><td><strong>" + actors[v.abbreviation].abbreviation + '</strong><td class="d3-tip-number"> <strong>' + Math.round(1000*parseInt(v.n)/parseInt(d.actors.population))/10 +"% " + " </strong><td class='d3-tip-number'> " + parseInt(v.n).toLocaleString();
}
});
html += "</table>"
}
/*if (typeof(d.value.description) != 'undefined') {
html += d.value.description;
}*/
/*else
html += 'Ešte nie je rozhodnuté';*/
return html;
});
return tip;
}
// Use Leaflet to implement a D3 geometric transformation.
function projectPoint(x, y, id) {
var point = map.latLngToLayerPoint(new L.LatLng(x, y));
if (!isNumeric(point.x)) alert(id);
return point;
}
// helper function
function toObjectWithAbbr(arr) {
var rv = {};
for (var i = 0; i < arr.length; ++i)
rv[arr[i]['abbreviation']] = arr[i];
return rv;
}
// helper function in debugging
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
//helper function for default values
function getUrlParameter(sParam) {
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
sURLVariables = sPageURL.split('&'),
sParameterName,
i;
for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] === sParam) {
return sParameterName[1] === undefined ? true : sParameterName[1];
}
}
};
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
// tracker methods like "setCustomDimension" should be called before "trackPageView"
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//piwik.kohovolit.eu/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', '4']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Piwik Code -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-8592359-13', 'ocks.org');
ga('send', 'pageview');
</script>
</html>
https://cdn.bootcss.com/leaflet/0.7.7/leaflet.js
https://cdn.bootcss.com/d3/3.5.16/d3.min.js
https:///cdn.bootcss.com/jquery/2.2.1/jquery.min.js
https://cdn.bootcss.com/bootstrap/3.3.6/js/bootstrap.min.js