
形がかっこいい順に都道府県を並べてみた。
「形がかっこいい」と思う都道府県ランキング – gooランキング
Gooのランキングで「形がかっこいい」都道府県ランキングが公開されていたので、実際の都道府県をかっこいい順に並べてみました。
↓こんな感じ
わりとイメージの中に浮かぶ県の形と、実際の形にはギャップがあるのかなと。
(地元民はそんなことないのでしょうけど)
あと、北海道大きすぎ。
クリックすると「かっこいい順」と「元の地図の形」とに切り替わります。
サンプル
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | d3.json("prefrank.geojson", function(json) { 	d3main(json); }); function d3main(json){ 	var tooltip = d3.select("body") 		.append("div") 		.attr("class", "tooltip") 		.style("position", "absolute") 		.style("z-index", "10") 		.style("visibility", "hidden"); 	var geodata = json.features; 	projection = d3.geo 	    .mercator()		 	    .scale(3000)	 	    .translate([800,650]) 	    .center([139.0032936, 36.3219088]);  	var path = d3.geo.path().projection(projection);  	var svg = d3.select("svg");	 	var japan =  svg.append("svg:g") 		.selectAll("path") 		.data(geodata) 		.enter() 		.append("g"); 		japan.append("svg:path") 		.attr({ 			"d": path, 			"fill": "green", 			"fill-opacity": 0.5, 			"stroke": "black" 		}) 		.on("mouseover", function(){ 			tooltip.style("visibility", "visible"); 		})		 		.on("mousemove", function(d){ 			tooltip 			.style("top", (d3.event.pageY-10)+"px") 			.style("left",(d3.event.pageX+10)+"px") 			.html( 				"<h2>" + d.properties.rank + "位 "+ d.properties.ObjName  + "</h2>" 			); 		}) 		.on("mouseout", function(){ 			tooltip.style("visibility", "hidden"); 		})			 		var rankOrder = function(){ 			japan.transition().attr("transform", function(d, i){ 				var center = path.centroid(d);  				var x = ~~center[0];  				var y = ~~center[1]; 				var nx = 200;  				var ny = d.properties.rank * 160 + 100;  				return "translate("+(0-x)+","+(0-y)+"),translate("+nx+","+ny+")";		     			}).duration(4000);			 		} 		var mapOrder = function(){ 			japan.transition().attr("transform", "translate(0, 0)").duration(4000);		 		} 		d3.select("body").on("click", toggle(mapOrder, rankOrder)); 		rankOrder(); } function toggle(){     var fn = arguments;     var l = arguments.length;     var i = 0;     return function(){         if(l <= i) i=0;         fn[i++]();                 } } | 
実のところ、以前作った下記記事のコードをちょこっと変えただけだったりします。
