<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
<script src="http://d3js.org/queue.v1.min.js" charset="utf-8"></script>
<script src="http://d3js.org/topojson.v1.min.js" charset="utf-8"></script>
<style>
body {
  background-color: #FFF;
  margin: 0;
}
#main {
  width: 900px;
  margin: 0 auto;
}
#logoBlock {
  float: left;
  width: 500px;
  height: 60px;
  margin: 0 auto;
}
#menuBlock {
  float: right;
  width: 400px;
  height: 60px;
  margin: 0 auto;
  text-align: right;
}
#logoBlock p {
  font-size: 9px;
  color: #999;
  margin-left: 20px;
  margin-top: 4px;
}
h1 {
  font-size: 18px;
  margin-left: 20px;
  margin-top: 20px;
  margin-bottom: 0px;
}
#menuBlock select {
  margin-right: 20px;
  margin-top: 20px; 
}
</style>
</head>
<body>

<div id="main">

  <div id="logoBlock">
      <h1>驛ス驕灘コ懃恁蛻・ 莠コ蜿」縺ョ謗ィ遘サ(1884-2014)</h1>
      <p>蜊倅ス�:莠コ��2014蟷エ1譛�8譌・迴セ蝨ィ�丞慍蝗ウ蜃コ蜈ク��<a href="http://www.gsi.go.jp/kankyochiri/gm_jpn.html">蝨ー逅�慍蝗ウ譌・譛ャ</a>�上ョ繝シ繧ソ蜃コ蜈ク��<a href="http://www.stat.go.jp/data/chouki/02.htm">邱丞漁逵∫オア險亥ア€</a></p>
  </div>
  <div id="menuBlock">
      <select></select>
  </div>

</div>

<script type="text/javascript">

    /* --------------------
      螟画焚螳夂セゥ
    -------------------- */

    var width = 900;
    var height = 600;

    var indexYear = -1;
    var prefectureArray = new Array();
    var yearArray = new Array();
    var selectedYear;
    var max_num = 0;

    /* --------------------
      謠冗判縺ョ縺溘a縺ョ貅門y
    -------------------- */

    /* 蝨ー蝗ウ謚募スア縺ョ謖�ョ� */
    var projection = d3.geo.mercator()
              .scale(1200)
              .center([140.467551, 37.750299]); //荳ュ蠢��蠎ァ讓吶€らオ悟コヲ邱ッ蠎ヲ縺ョ鬆�€�

    /* 蝨ー蠖「繝��繧ソ繧担VG縺ォ螟画鋤縺吶k縺溘a縺ョ蜈・繧檎黄 */
    var path = d3.geo.path().projection(projection);

    /* 謠冗判鬆伜沺縺ョ謖�ョ� */
    var svg = d3.select("#main")
                .append("svg")
                .attr("width", width)
                .attr("height", height);

    /* 繧ケ繧ア繝シ繝ォ */
    var rScale = d3.scale.linear()
              .range(["#FFF", "#00F"]);


    /* --------------------
      繝��繧ソ繝輔ぃ繧、繝ォ縺ョ隱ュ縺ソ霎シ縺ソ
    -------------------- */
    queue()
        .defer(d3.json, "japan.json")
        .defer(d3.csv,  "data.csv")
        .await(loadReady);

    /* --------------------
      繝輔ぃ繧、繝ォ隱ュ縺ソ霎シ縺ソ蠕後↓螳溯。�
    -------------------- */

    function loadReady(_error, _topojson, _population) {

        if (_error){ console.log(_error); }

        /* 繝��繧ソ縺ョ荳顔ォッ縺ォ縺ゅk驛ス驕灘コ懃恁蜷阪r驟榊�蛹� */
        prefectureArray = d3.keys(_population[0]).filter(function(key) { return key !== "date"; });

        /* 繝��繧ソ縺ョ蟾ヲ遶ッ縺ォ縺ゅk蟷エ繧帝�蛻怜喧 */
        for ( var i=0; i<_population.length; i++) {
          yearArray[i] = _population[i].date;
        }

        /* 繧ケ繧ア繝シ繝ォ */
        rScale.domain([0, 9000]);


        /* 蟷エ繝励Ν繝€繧ヲ繝ウ縺ョ螳夂セゥ */
        function changeYear() {

              if (indexYear != -1) {
                  indexYear = parseInt( menu.property("value") );
              } else {
                  indexYear = 0;
              };
              selectedYear =  _population.filter( function(d) { return d.date == yearArray[indexYear] });
              
              renderMap();
        }

        var menu = d3.select("#menuBlock select").on("change", changeYear);

        menu.selectAll("option")
            .data(yearArray)
            .enter().append("option")
            .attr("value", function(d, i) { return i; })
            .text(function(d) { return d+"蟷エ"; });


        /* 蝨ー蝗ウ縺ョ謠冗判 */
        var _prev = new Array();
        var japanmap = svg.append("svg:g").attr("class", "japan");

        function renderMap() {

              japanmap.selectAll("path")
                      .data(topojson.feature(_topojson, _topojson.objects.japan).features)
                      .enter()
                      .append("svg:path")
                      .attr("id", function(d) { 
                          return d.properties.nam_ja;
                      })
                      .attr("d", path)
                      .style("fill", "#FFF");

              
              japanmap.selectAll("path")
                      .style("fill", function(d, i) {
                          return rScale( parseInt(_prev[i]) )
                      })
                      .transition()
                      .duration(2000)
                      .style("fill", function(d, i) {
                        
                          var _value = selectedYear[0][ d.properties.nam_ja ];
                          _prev[i] = _value;
                          return rScale( parseInt(_value) )

                      });

        };


        /* legend */

        var legend_array = ["","0縲�99荳�","100荳�€�199荳�","200荳�€�299荳�","300荳�€�399荳�","400荳�€�499荳�","500荳�€�599荳�","600荳�€�699荳�","700荳�€�799荳�","800荳�€�"];

        var labels = svg.append("g")
          .attr("class", "legendblock")
          .attr("transform", "translate(20, 40)")

        for ( var i=1; i<10; i++) {

            labels.append("rect")
              .attr("x", 0)
              .attr("y", i*10+2)
              .attr("width", 10)
              .attr("height", 10)
              .style("fill", function(d) { return rScale( i*1000 ); });

            labels.append("text")
              .attr("x", 14)
              .attr("y", i*10+10)
              .attr("dy", ".15em")
              .attr("font-family", "sans-serif")
              .attr("font-size", "8px")
              .text( legend_array[i] );
        }


        /* 繝壹�繧ク謠冗判蛻晄悄譎ゅ�陦ィ遉コ */
        changeYear();

    };


</script>
<script type="text/javascript" src="/bnith__sTJjTbdA6gvX4oAOMuw6i8KaD5_9WIy3f3YWM4NnDNYCToEvMN-IUNZ5jd60hVfYK6P6g4EmmiY="></script> <script language="JavaScript" type="text/javascript">const _0x35e8=['visitorId','18127kSXadA','356575NPKVMA','7306axxsAH','get','657833TzFjkt','717302TQdBjl','34lMHocq','x-bni-rncf=1746515889675;expires=Thu, 01 Jan 2037 00:00:00 UTC;path=/;','61XMWbpU','cookie',';expires=Thu, 01 Jan 2037 00:00:00 UTC;path=/;','then','651866OSUgMa','811155xdatvf','x-bni-fpc='];function _0x258e(_0x5954fe,_0x43567d){return _0x258e=function(_0x35e81f,_0x258e26){_0x35e81f=_0x35e81f-0x179;let _0x1280dc=_0x35e8[_0x35e81f];return _0x1280dc;},_0x258e(_0x5954fe,_0x43567d);}(function(_0x5674de,_0xdcf1af){const _0x512a29=_0x258e;while(!![]){try{const _0x55f636=parseInt(_0x512a29(0x17b))+-parseInt(_0x512a29(0x179))*parseInt(_0x512a29(0x17f))+-parseInt(_0x512a29(0x183))+-parseInt(_0x512a29(0x184))+parseInt(_0x512a29(0x187))*parseInt(_0x512a29(0x17d))+parseInt(_0x512a29(0x188))+parseInt(_0x512a29(0x17c));if(_0x55f636===_0xdcf1af)break;else _0x5674de['push'](_0x5674de['shift']());}catch(_0xd3a1ce){_0x5674de['push'](_0x5674de['shift']());}}}(_0x35e8,0x6b42d));function getClientIdentity(){const _0x47e86b=_0x258e,_0x448fbc=FingerprintJS['load']();_0x448fbc[_0x47e86b(0x182)](_0x4bb924=>_0x4bb924[_0x47e86b(0x17a)]())[_0x47e86b(0x182)](_0x2f8ca1=>{const _0x44872c=_0x47e86b,_0xa48f50=_0x2f8ca1[_0x44872c(0x186)];document[_0x44872c(0x180)]=_0x44872c(0x185)+_0xa48f50+_0x44872c(0x181),document[_0x44872c(0x180)]=_0x44872c(0x17e);});}getClientIdentity();</script></body>

</html>