スタートページ> Javascript> 地図> 地図(その他)
都道府県境界の SVGデータにより、白地図が作成されています。
各府県の特性値を与え、ランク別に色を割当てて、白地図を塗りつぶします。
白地図データは、
ガビパン男と私「日本の白地図」
https://www.kabipan.com/geography/whitemap/mapping_guide.html(SVG形式,B4)
をコピーさせていただきました。
<!-- 白地図 SVG の記述 -->
<svg id="map" width="500" height="700" class="svgcss"
viewBox="500 700 3500 2800" class="svgcss">
<path id="沖縄県"
fill="none" stroke="black" stroke-width="1"
d="M 1052.00,3777.00
C 1052.00,3777.00 1059.67,3783.00 1059.67,3783.33
:
346.67,4258.67 351.33,4248.67 351.33,4248.67 Z" />
:
<path id="北海道"
fill="none" stroke="black" stroke-width="1"
d="M 3710.00,548.00
C 3712.67,557.33 3712.67,572.00 3720.00,580.67
:
3861.00,551.00 3852.00,547.50 3852.00,547.50 Z" />
</svg>
<script>
// ======== 処理の部分
var データ = [ ["北海道", 83], …, ["東京都", 2] };
var svg = document.getElementById("map"); // 白地図に追加
for (var i=0; i<データ.length; i++) {
var 対象県 = document.getElementById(データ[i][0]);
var 特性値 = データ[i][1]; // 特性値を色に変換
if (特性値 >= 20) var 色 = "yellow";
:
else 色 = "red";
対象県.setAttribute("fill", 色); // 対象県に色を塗る
}
</script>
<script>~</script> の部分
function 実行() {
// ======== 入力データ
var 県名 = ["北海道", "青森県", …, "沖縄県"];
var 特性値 = [];
for (var i=0; i<47; i++) {
特性値[i] = document.form1[i].value;
if (特性値[i] != "") 特性値[i] = eval(特性値[i]);
}
var 特性閾値 = [];
var 特性色 = [];
for (var k=0; k<8; k++) {
var w = document.form1[47+2*k].value;
if (w == "") break;
特性閾値[k] = eval(w);
特性色[k] = document.form1[48+2*k].value;
}
var 特性閾個数 = 特性閾値.length;
// ============ 色の決定
var 色 = [];
for (i=0; i<47; i++) {
色[i] = "none";
if (特性値[i] != "") {
for (k=0; k<特性閾個数; k++) {
if (特性値[i] >= 特性閾値[k]) {
色[i] = 特性色[k];
break;
}
}
}
}
// ============ 地図の彩色
var svg = document.getElementById("map"); // 白地図に追加
for (i=0; i<47; i++) {
var 対象県 = document.getElementById(県名[i]);
対象県.setAttribute("fill", 色[i]); // 対象県に色を塗る
}
}