ひつじかいさんの「ひつじかいの雑記帳」というブログを拝見し、その中に、地図の描写において色々と興味深い記事を拝読しました。これは自分でもやってみたい、そう思い、その記録を記載してみたいと思います。
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に ・東京都:八丈島・小笠原諸島 ・鹿児島県:トカラ列島・奄美諸島(屋久島よりも南の諸島) ・沖縄県:沖縄本島以外
ん~、ここまで、お一人で実施されたのかと思うと感服いたします。