ひつじかいさんの「ひつじかいの雑記帳」というブログを拝見し、その中に、地図の描写において色々と興味深い記事を拝読しました。これは自分でもやってみたい、そう思い、その記録を記載してみたいと思います。
Web上で操作可能な日本の白地図(都道府県別)を作る(3) ― 領域の面積を計算 ―
今回は、都道府県データの数が9.6百万件ほどあるので、こちらのデータを間引く作業です。方法としては、面積の小さい島々を省くということで、多角形の面積を求める方法の記載があります。お恥ずかしながら、多角形の面積を求める方法については知らず、勉強になります。
まずはSQL文にて、データ領域を作成します。
[SQL]
CREATE TABLE IF NOT EXISTS t_PrefectureBorderArea (
PrefectureCode smallint(2) unsigned zerofill NOT NULL, # 都道府県コード
BorderCode int(5) NOT NULL, # 領域コード
Area decimal(20,8) DEFAULT NULL, # 領域面積
ActiveFlag tinyint(2) NOT NULL DEFAULT 0, # 白地図描画の対象とするか否かのフラグ
PRIMARY KEY (PrefectureCode,BorderCode)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
[/SQL]
解説頂いたプログラムは次の通りです。
<?php
ini_set('error_reporting', ~E_WARNING);
ini_set('memory_limit', '2048M');
set_time_limit(0);
$errMsg;
$mysqli = connectDBi($errMsg);
if ($mysqli) {
echo "MySQL接続OK<br>";
} else {
echo "MySQL接続NG<br>" . $errMsg;
exit();
}
echo str_pad(" ", 4096) . "<br>";
for ($PrefCode = 1; $PrefCode <= 47; $PrefCode++) {
echo "Pref=" . $PrefCode . "<br>";
ob_flush();
flush();
$border = array();
$strSQL = "SELECT PrefectureCode, BorderCode, Avg(Lat) AS AvgLat, Avg(Lng) AS AvgLng";
$strSQL .= " FROM t_PrefectureBorder";
$strSQL .= " WHERE PrefectureCode = " . $PrefCode;
$strSQL .= " GROUP BY BorderCode";
$strSQL .= " ORDER BY BorderCode";
$rst = $mysqli->query($strSQL);
while ($col = $rst->fetch_array(MYSQLI_ASSOC)) {
array_push($border, $col);
}
$rst->close();
for ($b = 0; $b < count($border); $b++) {
$s = calBorderArea($mysqli, $border[$b]);
echo " BorderCode=" . $border[$b]["BorderCode"] . " Area=" . $s . "<br>";
ob_flush();
flush();
$strSQL = "INSERT INTO t_PrefectureBorderArea (PrefectureCode,BorderCode,Area)";
$strSQL .= " VALUES (" . $border[$b]["PrefectureCode"] . "," . $border[$b]["BorderCode"] . "," . $s . ")";
if (!$mysqli->query($strSQL)) {
echo "失敗!" . $strSQL . "<br>";
exit();
}
}
}
if ($mysqli) {
$mysqli->close();
}
echo "終了しました。<br>";
ini_restore('error_reporting');
ini_restore('memory_limit');
//領域の面積を計算
function calBorderArea($mysqli, $BorderInfo)
{
$strSQL = "SELECT * FROM t_PrefectureBorder";
$strSQL .= " WHERE PrefectureCode = " . $BorderInfo["PrefectureCode"];
$strSQL .= " AND BorderCode = " . $BorderInfo["BorderCode"];
$strSQL .= " ORDER BY PointNo";
$rst = $mysqli->query($strSQL);
$point = array();
$currentP = array();
$formerP = array();
$S = 0;
if ($rst->num_rows > 0) {
$p0 = selectCoordinateOrigin($BorderInfo["PrefectureCode"], $BorderInfo["AvgLat"], $BorderInfo["AvgLng"]); //座標系原点を取得
while ($col = $rst->fetch_array(MYSQLI_ASSOC)) {
$currentP = LatLng_to_XY($p0, $col);
if (isset($formerP["x"]) && isset($formerP["y"])) {
$S += ($formerP["x"] - $currentP["x"]) * ($formerP["y"] + $currentP["y"]) / 2;
}
$formerP = $currentP;
}
}
$rst->close();
return $S;
}
//MySQLへ接続
function connectDBi(&$err)
{
//MySQL 接続情報
$MySQL_SERVER = "localhost";
$MySQL_USER = "[user_name]";
$MySQL_PASSWORD = "[password]";
$MySQL_DBNAME = "map";
$err = "";
$mysqli = new mysqli($MySQL_SERVER, $MySQL_USER, $MySQL_PASSWORD, $MySQL_DBNAME);
if ($mysqli->connect_errno) {
$err = "データベース接続に失敗しました。";
}
if (strlen($err) > 0) {
return false;
} else {
return $mysqli;
}
}
//
// 緯度・経度を平面直角座標に変換
//
// 国土地理院サイト(http://surveycalc.gsi.go.jp/sokuchi/main.html)の計算式を適用
//
// $p0:座標原点の緯度・経度 array("Lat"=>latitude,"Lng"=>longitude)
// $p1:対象点の緯度・経度 array("Lat"=>latitude,"Lng"=>longitude)
//
function LatLng_to_XY($p0, $p1)
{
$a = 6378137.0; //長半径
$F = 298.257222101; //逆扁平率
$m0 = 0.9999; //平面直角座標系のX軸上における縮尺係数
$n = 1 / (2 * $F - 1);
//緯度経度をラジアン変換
$radLat0 = deg2rad($p0["Lat"]); //座標原点の緯度
$radLng0 = deg2rad($p0["Lng"]); //座標原点の経度
$radLat1 = deg2rad($p1["Lat"]); //変換対象点の緯度
$radLng1 = deg2rad($p1["Lng"]); //変換対象点の経度
$t = sinh(atanh(sin($radLat1)) - (2 * sqrt($n)) / (1 + $n) * (atanh((2 * sqrt($n)) / (1 + $n) * sin($radLat1))));
$tbar = sqrt(1 + pow($t, 2));
$lmdc = cos($radLng1 - $radLng0);
$lmds = sin($radLng1 - $radLng0);
$xi = atan($t / $lmdc);
$eta = atanh($lmds / $tbar);
$alp1 = 1 / 2 * $n - 2 / 3 * pow($n, 2) + 5 / 16 * pow($n, 3) + 41 / 180 * pow($n, 4) - 127 / 288 * pow($n, 5);
$alp2 = 13 / 48 * pow($n, 2) - 3 / 5 * pow($n, 3) + 557 / 1440 * pow($n, 4) + 281 / 630 * pow($n, 5);
$alp3 = 61 / 240 * pow($n, 3) - 103 / 140 * pow($n, 4) + 15061 / 26880 * pow($n, 5);
$alp4 = 49561 / 161280 * pow($n, 4) - 179 / 168 * pow($n, 5);
$alp5 = 34729 / 80640 * pow($n, 5);
$A0 = 1 + pow($n, 2) / 4 + pow($n, 4) / 64;
$A1 = -3 / 2 * ($n - pow($n, 3) / 8 - pow($n, 5) / 64);
$A2 = 15 / 16 * (pow($n, 2) - pow($n, 4) / 4);
$A3 = -35 / 48 * (pow($n, 3) - 5 / 16 * pow($n, 5));
$A4 = 315 / 512 * pow($n, 4);
$A5 = -693 / 1280 * pow($n, 5);
$rho2d = 1; // 国土地理院サイトの計算式にある「ρ''」。
// ラジアン→秒 変換係数なので本来の値は(180/π)*3600であるが、理科年表の式に当表記はない
// ρ''=1として計算した所、正しいと思われる変換結果が得られた
$Sbar0 = (($m0 * $a) / (1 + $n)) * ($A0 * $radLat0 / $rho2d + $A1 * sin(2 * $radLat0) + $A2 * sin(4 * $radLat0) + $A3 * sin(6 * $radLat0)
+ $A4 * sin(8 * $radLat0) + $A5 * sin(10 * $radLat0)); //赤道から座標系原点までの子午線弧長
$Abar = (($m0 * $a) / (1 + $n)) * $A0;
$coordinate = array();
$x = $Abar * ($xi + $alp1 * sin(2 * $xi) * cosh(2 * $eta) + $alp2 * sin(4 * $xi) * cosh(4 * $eta) + $alp3 * sin(6 * $xi) * cosh(6 * $eta)
+ $alp4 * sin(8 * $xi) * cosh(8 * $eta) + $alp5 * sin(10 * $xi) * cosh(10 * $eta)) - $Sbar0;
$y = $Abar * ($eta + $alp1 * cos(2 * $xi) * sinh(2 * $eta) + $alp2 * cos(4 * $xi) * sinh(4 * $eta) + $alp3 * cos(6 * $xi) * sinh(6 * $eta)
+ $alp4 * cos(8 * $xi) * sinh(8 * $eta) + $alp5 * cos(10 * $xi) * sinh(10 * $eta));
//日本の測量ではX軸が北方向、Y軸が東方向となっていて数学座標とはX,Yが逆のため、
//上記のx,y(測量座標)を入れ替えて数学座標として返す
$coordinate["x"] = $y;
$coordinate["y"] = $x;
return $coordinate;
}
// 座標原点とする日本の平面直角座標系を選択
// 平成十四年国土交通省告示第九号 より
// ※北海道などは簡易的な選択を行っているため、本来の座標系とは異なる座標が選択される場合がある
//
// $pref:都道府県コード $lat:緯度 $lng:経度
//
function selectCoordinateOrigin($pref, $lat, $lng)
{
$jpc = array();
$jpc[1] = array("33:00:00", "129:30:00");
$jpc[2] = array("33:00:00", "131:00:00");
$jpc[3] = array("36:00:00", "132:10:00");
$jpc[4] = array("33:00:00", "133:30:00");
$jpc[5] = array("36:00:00", "134:20:00");
$jpc[6] = array("36:00:00", "136:00:00");
$jpc[7] = array("36:00:00", "137:10:00");
$jpc[8] = array("36:00:00", "138:30:00");
$jpc[9] = array("36:00:00", "139:50:00");
$jpc[10] = array("40:00:00", "140:50:00");
$jpc[11] = array("44:00:00", "140:15:00");
$jpc[12] = array("44:00:00", "142:15:00");
$jpc[13] = array("44:00:00", "144:15:00");
$jpc[14] = array("26:00:00", "142:00:00");
$jpc[15] = array("26:00:00", "127:30:00");
$jpc[16] = array("26:00:00", "124:00:00");
$jpc[17] = array("26:00:00", "131:00:00");
$jpc[18] = array("20:00:00", "136:00:00");
$jpc[19] = array("26:00:00", "154:00:00");
if ($pref == 42 || ($pref == 46 && ($lat >= 27 && $lat <= 32 && $lng >= 128.3 && $lng <= 130))) {
//長崎県、鹿児島県の一部
$gNo = 1;
} else if ($pref >= 40 && $pref <= 46) { //福岡県、佐賀県、熊本県、大分県、宮崎県、鹿児島県(I系区域を除く)
$gNo = 2;
} else if ($pref == 32 || $pref == 34 || $pref == 35) { //島根県、広島県、山口県
$gNo = 3;
} else if ($pref >= 36 && $pref <= 39) { //徳島県、香川県、愛媛県、高知県
$gNo = 4;
} else if ($pref == 28 || $pref == 31 || $pref == 33) { //兵庫県、鳥取県、岡山県
$gNo = 5;
} else if ($pref == 18 || ($pref >= 24 && $pref <= 27) || $pref == 29 || $pref == 30) { //福井県、三重県、京都府、大阪府、奈良県、和歌山県
$gNo = 6;
} else if ($pref == 16 || $pref == 17 || $pref == 21 || $pref == 23) { //富山県、石川県、岐阜県、愛知県
$gNo = 7;
} else if ($pref == 15 || $pref == 19 || $pref == 20 || $pref == 22) { //新潟県、山梨県、長野県、静岡県
$gNo = 8;
} else if ($pref == 13) { //東京都
if ($lat <= 28) {
if ($lng <= 140.5) {
$gNo = 18;
} else if ($lng >= 143) {
$gNo = 19;
} else {
$gNo = 14;
}
} else {
$gNo = 9;
}
} else if ($pref >= 7 && $pref <= 14) { //福島県、茨城県、栃木県、群馬県、埼玉県、千葉県、神奈川県
$gNo = 9;
} else if ($pref >= 2 && $pref <= 6) { //青森県、岩手県、宮城県、秋田県、山形県
$gNo = 10;
} else if ($pref == 1) { //北海道(本来は市区町村により振り分けるが、簡易的に経度で分けている)
if ($lng <= 141) {
$gNo = 11;
} else if ($lng >= 143.5) {
$gNo = 13;
} else {
$gNo = 12;
}
} else if ($pref == 47) { //沖縄県
if ($lng <= 126) {
$gNo = 16;
} else if ($lng >= 130) {
$gNo = 17;
} else {
$gNo = 15;
}
} else { //デフォルト値
$gNo = 8;
}
$coordinateorg = array();
$hmsLat = explode(":", $jpc[$gNo][0]);
$hmsLng = explode(":", $jpc[$gNo][1]);
return array(
"Lat" => intval($hmsLat[0]) + intval($hmsLat[1]) / 60 + intval($hmsLat[2]) / 3600,
"Lng" => intval($hmsLng[0]) + intval($hmsLng[1]) / 60 + intval($hmsLng[2]) / 3600,
"GNo" => $gNo
);
}

ここでひつじかいさんが計算されたときと今回の平成31年データで計算した結果は次の通りでした。誤差変化として、向上しているものを〇、そうでないものをー、ありませんでしたが同値のものを=としています。〇は24、-は23でした。
| 都道府県 | 面積 | 計算値 | 計算値 (今回) | 誤差 | 誤差 (今回) | 誤差変化 |
| 北海道 | 83,457.48 | 83,466.90 | 83,437.45 | 0.01% | -0.02% | ー |
| 青森県 | 9,644.74 | 9,637.74 | 9,644.03 | -0.07% | -0.01% | 〇 |
| 岩手県 | 15,278.89 | 15,276.35 | 15,272.88 | -0.02% | -0.04% | ー |
| 宮城県 | 7,285.80 | 7,282.53 | 7,278.52 | -0.04% | -0.10% | ー |
| 秋田県 | 11,636.32 | 11,638.57 | 11,635.73 | 0.02% | -0.01% | 〇 |
| 山形県 | 9,323.46 | 9,326.06 | 9,327.71 | 0.03% | 0.05% | ー |
| 福島県 | 13,782.76 | 13,775.46 | 13,782.02 | -0.05% | -0.01% | 〇 |
| 茨城県 | 6,095.84 | 6,096.00 | 6,096.44 | 0.00% | 0.01% | ー |
| 栃木県 | 6,408.28 | 6,406.97 | 6,406.88 | -0.02% | -0.02% | ー |
| 群馬県 | 6,362.33 | 6,362.86 | 6,362.01 | 0.01% | -0.01% | 〇 |
| 埼玉県 | 3,798.08 | 3,796.29 | 3,797.15 | -0.05% | -0.02% | 〇 |
| 千葉県 | 5,156.62 | 5,157.79 | 5,157.81 | 0.02% | 0.02% | ー |
| 東京都 | 2,188.67 | 2,193.98 | 2,193.18 | 0.24% | 0.21% | 〇 |
| 神奈川県 | 2,416.05 | 2,422.27 | 2,415.82 | 0.26% | -0.01% | 〇 |
| 新潟県 | 12,583.84 | 12,577.52 | 12,579.07 | -0.05% | -0.04% | 〇 |
| 富山県 | 4,247.62 | 4,254.37 | 4,253.74 | 0.16% | 0.14% | 〇 |
| 石川県 | 4,186.21 | 4,185.05 | 4,185.39 | -0.03% | -0.02% | 〇 |
| 福井県 | 4,189.89 | 4,188.76 | 4,189.80 | -0.03% | 0.00% | 〇 |
| 山梨県 | 4,465.37 | 4,469.29 | 4,469.77 | 0.09% | 0.10% | ー |
| 長野県 | 13,562.23 | 13,552.79 | 13,552.78 | -0.07% | -0.07% | ー |
| 岐阜県 | 10,621.17 | 10,619.90 | 10,619.89 | -0.01% | -0.01% | ー |
| 静岡県 | 7,780.60 | 7,773.13 | 7,770.81 | -0.10% | -0.13% | ー |
| 愛知県 | 5,165.16 | 5,171.06 | 5,171.87 | 0.11% | 0.13% | ー |
| 三重県 | 5,777.35 | 5,774.97 | 5,773.63 | -0.04% | -0.06% | ー |
| 滋賀県 | 4,017.36 | 4,016.15 | 4,016.15 | -0.03% | -0.03% | 〇 |
| 京都府 | 4,613.26 | 4,604.76 | 4,611.65 | -0.18% | -0.04% | 〇 |
| 大阪府 | 1,901.42 | 1,911.55 | 1,905.01 | 0.53% | 0.19% | 〇 |
| 兵庫県 | 8,396.47 | 8,397.24 | 8,399.82 | 0.01% | 0.04% | ー |
| 奈良県 | 3,691.09 | 3,690.23 | 3,690.23 | -0.02% | -0.02% | ー |
| 和歌山県 | 4,726.32 | 4,724.19 | 4,723.98 | -0.05% | -0.05% | ー |
| 鳥取県 | 3,507.31 | 3,506.61 | 3,506.72 | -0.02% | -0.02% | 〇 |
| 島根県 | 6,707.98 | 6,707.48 | 6,707.43 | -0.01% | -0.01% | ー |
| 岡山県 | 7,113.24 | 7,109.89 | 7,114.09 | -0.05% | 0.01% | 〇 |
| 広島県 | 8,479.81 | 8,475.04 | 8,477.92 | -0.06% | -0.02% | 〇 |
| 山口県 | 6,114.14 | 6,113.36 | 6,111.99 | -0.01% | -0.04% | ー |
| 徳島県 | 4,146.81 | 4,143.03 | 4,146.46 | -0.09% | -0.01% | 〇 |
| 香川県 | 1,876.58 | 1,874.85 | 1,875.83 | -0.09% | -0.04% | 〇 |
| 愛媛県 | 5,678.51 | 5,673.96 | 5,675.74 | -0.08% | -0.05% | 〇 |
| 高知県 | 7,105.20 | 7,101.63 | 7,102.52 | -0.05% | -0.04% | 〇 |
| 福岡県 | 4,979.42 | 4,982.40 | 4,985.79 | 0.06% | 0.13% | ー |
| 佐賀県 | 2,439.67 | 2,441.99 | 2,440.63 | 0.10% | 0.04% | 〇 |
| 長崎県 | 4,105.88 | 4,092.16 | 4,130.26 | -0.33% | 0.59% | ー |
| 熊本県 | 7,404.89 | 7,407.85 | 7,408.34 | 0.04% | 0.05% | ー |
| 大分県 | 6,339.82 | 6,337.88 | 6,339.64 | -0.03% | 0.00% | 〇 |
| 宮崎県 | 7,736.08 | 7,734.39 | 7,733.78 | -0.02% | -0.03% | ー |
| 鹿児島県 | 9,188.99 | 9,182.86 | 9,185.82 | -0.07% | -0.03% | 〇 |
| 沖縄県 | 2,276.72 | 2,275.16 | 2,280.80 | -0.07% | 0.18% | ー |
| 全国 | 377,961.73 | 377,911.27 | 377944.99 | -0.01% | 0.00% | 〇 |
次に主な島についても比較されています。ここは結果のみ記載されていますので、今まで教示いただいた内容から、自分で計算及び確認する必要がありそうです。まずは20km2以上の面積である一覧を表示させます。なお東京都・小笠原諸島の母島はこの条件では漏れてしまうようなので、19km2より大きい一覧を次のSQLで抜き出してみます。
[SQL] SELECT * FROM t_prefectureborderarea WHERE 19 * 1000 * 1000 < Area AND Area < 4000 * 1000 * 1000 ORDER BY Area DESC; [/SQL]

ここで得られた結果を眺めると、諸島の名前とBorderCodeとの紐づけを行う必要がありそうです。少し考えましたが、都道府県とそれに紐づけられたBorderCodeを表示するソフトを作成して、GoogleMapで確認した方が早そうですし、再度の確認も行えるかと考えました。ひつじかいさんの内容を参照しているにも関わらず、作成に半日ほど要してしまいましたが、次のようなソフトを用いて確認を行いました。

確認を行う上で、今まで聞いたことのない、読み方が分からない島を見ながら「まだまだ、知らないことがいっぱいあるのだなぁ」と感じながら「機会あったら行ってみたい」と思いを馳せ楽しんでおりました。なお対馬は、ひつじかいさんのご指摘の通りのこと、確認しました。計算及び確認結果は次の通りです。誤差変化として、向上しているものを〇、そうでないものをー、ありませんでしたが同値のものを=としています。〇は35、-は35でした。
| 島名(都道府県) | 面積 | 計算値 | 計算値 (今回) | 誤差 | 誤差 (今回) | 誤差変化 |
| 択捉島 (北海道) | 3,182.65 | 3,188.69 | 3172.48 | 0.19% | -0.32% | ー |
| 国後島 (北海道) | 1,498.56 | 1,498.86 | 1489.67 | 0.02% | -0.59% | ー |
| 佐渡島 (新潟県) | 854.53 | 854 | 854.62 | -0.06% | 0.01% | 〇 |
| 奄美大島 (鹿児島県) | 712.52 | 711.36 | 712.22 | -0.16% | -0.04% | 〇 |
| 対馬 (長崎県) | 696.64 | 444.09 | 440.92 | -36.25% | -36.71% | ー |
| 淡路島 (兵庫県) | 592.3 | 590.36 | 592.43 | -0.33% | 0.02% | 〇 |
| 天草下島 (熊本県) | 574.25 | 574.13 | 574.97 | -0.02% | 0.12% | ー |
| 屋久島 (鹿児島県) | 504.89 | 504.13 | 504.22 | -0.15% | -0.13% | 〇 |
| 種子島 (鹿児島県) | 445.05 | 444.72 | 444.21 | -0.08% | -0.19% | ー |
| 福江島 (長崎県) | 326.48 | 325.74 | 326.32 | -0.23% | -0.05% | 〇 |
| 西表島 (沖縄県) | 289.3 | 289.52 | 289.57 | 0.08% | 0.09% | ー |
| 色丹島 (北海道) | 250.16 | 251.09 | 247.84 | 0.37% | -0.93% | ー |
| 徳之島 (鹿児島県) | 247.77 | 247.57 | 247.82 | -0.08% | 0.02% | 〇 |
| 島後 (島根県) | 241.64 | 241.4 | 241.54 | -0.10% | -0.04% | 〇 |
| 天草上島 (熊本県) | 225.38 | 225.48 | 225.93 | 0.04% | 0.24% | ー |
| 石垣島 (沖縄県) | 222.63 | 221.98 | 222.20 | -0.29% | -0.20% | 〇 |
| 利尻島 (北海道) | 182.16 | 181.99 | 182.08 | -0.09% | -0.04% | 〇 |
| 中通島 (長崎県) | 168.42 | 167.87 | 168.36 | -0.33% | -0.03% | 〇 |
| 平戸島 (長崎県) | 163.68 | 163.22 | 163.37 | -0.28% | -0.19% | 〇 |
| 宮古島 (沖縄県) | 159.26 | 159 | 158.97 | -0.16% | -0.18% | ー |
| 小豆島 (香川県) | 153.35 | 144.38 | 153.25 | -5.85% | -0.06% | 〇 |
| 奥尻島 (北海道) | 142.75 | 142.6 | 142.69 | -0.11% | -0.04% | 〇 |
| 壱岐島 (長崎県) | 133.93 | 133.85 | 134.61 | -0.06% | 0.50% | ー |
| 屋代島 (山口県) | 128.43 | 128.32 | 128.46 | -0.09% | 0.02% | 〇 |
| 沖永良部島 (鹿児島県) | 93.67 | 93.57 | 93.65 | -0.10% | -0.02% | 〇 |
| 江田島・能美島 (広島県) | 91.54 | 91.15 | 91.31 | -0.42% | -0.25% | 〇 |
| 大島 (東京都) | 91.05 | 91 | 90.71 | -0.05% | -0.37% | ー |
| 長島 (鹿児島県) | 90.63 | 90.52 | 90.66 | -0.12% | 0.03% | 〇 |
| 礼文島 (北海道) | 80.95 | 81.11 | 81.26 | 0.20% | 0.38% | ー |
| 加計呂麻島 (鹿児島県) | 77.39 | 77.19 | 77.24 | -0.26% | -0.20% | 〇 |
| 倉橋島 (広島県) | 69.59 | 68.41 | 68.54 | -1.69% | -1.51% | 〇 |
| 八丈島 (東京都) | 69.48 | 69.36 | 69.10 | -0.18% | -0.55% | ー |
| 下甑島 (鹿児島県) | 66.12 | 65.99 | 65.55 | -0.20% | -0.87% | ー |
| 大三島 (愛媛県) | 64.57 | 64.35 | 64.57 | -0.33% | 0.00% | 〇 |
| 志発島 (北海道) | 59.5 | 59.62 | 58.35 | 0.20% | -1.94% | ー |
| 久米島 (沖縄県) | 59.11 | 59.35 | 59.53 | 0.40% | 0.71% | ー |
| 喜界島 (鹿児島県) | 56.93 | 56.87 | 56.75 | -0.11% | -0.32% | ー |
| 西ノ島 (島根県) | 55.86 | 55.7 | 55.76 | -0.28% | -0.17% | 〇 |
| 三宅島 (東京都) | 55.44 | 55.42 | 55.19 | -0.04% | -0.46% | ー |
| 能登島 (石川県) | 46.69 | 46.49 | 46.58 | -0.43% | -0.25% | 〇 |
| 上甑島 (鹿児島県) | 44.14 | 44.44 | 44.19 | 0.68% | 0.12% | 〇 |
| 大島 (愛媛県) | 42.07 | 41.71 | 41.87 | -0.86% | -0.47% | 〇 |
| 大崎上島 (広島県) | 38.39 | 38.19 | 38.26 | -0.52% | -0.33% | 〇 |
| 久賀島 (長崎県) | 37.35 | 37.22 | 37.23 | -0.36% | -0.31% | 〇 |
| 口永良部島 (鹿児島県) | 35.77 | 35.8 | 35.81 | 0.09% | 0.12% | ー |
| 因島 (広島県) | 34.98 | 34.85 | 35.04 | -0.38% | 0.19% | 〇 |
| 中之島 (鹿児島県) | 34.48 | 34.39 | 34.41 | -0.25% | -0.20% | 〇 |
| 針尾島 (長崎県) | 33.33 | 33.25 | 33.16 | -0.25% | -0.52% | ー |
| 中ノ島 (島根県) | 32.37 | 32.23 | 32.29 | -0.43% | -0.26% | 〇 |
| 生口島 (広島県) | 31.06 | 31.02 | 31.21 | -0.12% | 0.47% | ー |
| 若松島 (長崎県) | 31 | 31.09 | 31.13 | 0.28% | 0.44% | ー |
| 南大東島 (沖縄県) | 30.57 | 30.55 | 30.52 | -0.05% | -0.17% | ー |
| 厳島(宮島) (広島県) | 30.39 | 30.35 | 30.33 | -0.14% | -0.21% | ー |
| 大矢野島 (熊本県) | 29.98 | 30.06 | 30.20 | 0.28% | 0.72% | ー |
| 伊良部島 (沖縄県) | 29.1 | 29.12 | 29.07 | 0.08% | -0.11% | ー |
| 与那国島 (沖縄県) | 28.91 | 28.88 | 28.95 | -0.10% | 0.13% | ー |
| 諏訪之瀬島 (鹿児島県) | 27.66 | 27.59 | 27.61 | -0.24% | -0.20% | 〇 |
| 宇久島 (長崎県) | 24.93 | 24.88 | 24.93 | -0.19% | 0.01% | 〇 |
| 奈留島 (長崎県) | 23.82 | 23.61 | 23.68 | -0.87% | -0.59% | 〇 |
| 父島 (東京都) | 23.8 | 23.78 | 23.44 | -0.09% | -1.50% | ー |
| 新島 (東京都) | 23.22 | 23.19 | 23.44 | -0.14% | 0.96% | ー |
| 硫黄島 (東京都) | 23.16 | 23.15 | 23.73 | -0.06% | 2.47% | ー |
| 伊江島 (沖縄県) | 22.77 | 22.75 | 22.76 | -0.09% | -0.06% | 〇 |
| 向島 (広島県) | 22.23 | 22.17 | 22.31 | -0.29% | 0.38% | ー |
| 中島 (愛媛県) | 21.17 | 21.09 | 21.27 | -0.39% | 0.49% | ー |
| 伯方島 (愛媛県) | 20.88 | 20.19 | 20.92 | -3.29% | 0.20% | 〇 |
| 伊平屋島 (沖縄県) | 20.59 | 20.59 | 20.65 | 0.00% | 0.30% | ー |
| 御蔵島 (東京都) | 20.55 | 20.5 | 20.51 | -0.24% | -0.20% | 〇 |
| 与論島 (鹿児島県) | 20.47 | 20.5 | 20.56 | 0.13% | 0.43% | ー |
| 母島 (東京都) | 20.21 | 20.19 | 19.88 | -0.11% | -1.63% | ー |
そして、この確認を行ったうえで次のSQLを実行させフラグを付与します。
[SQL] UPDATE t_PrefectureBorderArea SET ActiveFlag = 1 WHERE Area > 20000000 # 単位:平米 [/SQL]
なお次の点は手作業で行うそうです。
・対馬、小豆島、倉橋島、伯方島の面積20km2未満の領域→フラグON ・出力地図のスペースの都合上、以下の領域はフラグOFFに ・東京都:八丈島・小笠原諸島 ・鹿児島県:トカラ列島・奄美諸島(屋久島よりも南の諸島) ・沖縄県:沖縄本島以外
ん~、ここまで、お一人で実施されたのかと思うと感服いたします。

