128 lines
5.4 KiB
Dart
128 lines
5.4 KiB
Dart
class JapanMapData {
|
|
// 0: Empty/Ocean
|
|
// 1-47: Prefecture IDs (JIS Code)
|
|
|
|
// High-Resolution 8-bit Map (26 cols x 32 rows)
|
|
// Designed to show Hokkaido size, Honshu curve, and close Kyushu/Shikoku
|
|
static final List<List<int>> gridLayout = [
|
|
// Hokkaido (Top) - Huge & Diamond shape approx
|
|
// Hokkaido (Top) - Refined Diamond Shape
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0], // Tip
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0], // Widen
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0], // Widest top
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], // Mid
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], // Narrowing
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], // Oshinima Peninsula
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Tsugaru Strait
|
|
|
|
// Tohoku (The vertical stick)
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0], // Aomori
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 3, 3, 0, 0, 0, 0, 0, 0, 0], // Akita, Iwate
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0],
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 4, 4, 0, 0, 0, 0, 0, 0, 0], // Yamagata, Miyagi
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0], // Niigata, Fukushima
|
|
|
|
// Kanto & Chubu (The bulging turn)
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 10, 9, 9, 8, 8, 0, 0, 0, 0, 0, 0], // Niigata, Gunma, Tochigi, Ibaraki
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 16, 20, 20, 11, 11, 12, 12, 0, 0, 0, 0, 0, 0], // Ishikawa, Toyama, Nagano, Saitama, Chiba
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 21, 20, 19, 13, 13, 12, 0, 0, 0, 0, 0, 0, 0], // Fukui, Gifu, Nagano, Yamanashi, Tokyo, Chiba
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 25, 21, 23, 22, 14, 14, 0, 0, 0, 0, 0, 0, 0], // Fukui, Shiga, Gifu, Aichi, Shizuoka, Kanagawa
|
|
|
|
// Kansai & Chugoku (Stretching West)
|
|
[0, 0, 0, 0, 0, 0, 0, 32, 31, 28, 26, 25, 24, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Shimane, Tottori, Hyogo, Kyoto, Shiga, Mie, Aichi, Shizuoka
|
|
[0, 0, 0, 0, 0, 35, 34, 33, 28, 27, 29, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Yamaguchi, Hiroshima, Okayama, Hyogo, Osaka, Nara, Mie
|
|
|
|
// Shikoku (Nestled under) & Wakayama
|
|
[0, 0, 0, 0, 0, 0, 0, 37, 36, 0, 30, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Kagawa, Tokushima, Wakayama
|
|
[0, 0, 0, 0, 0, 0, 38, 38, 39, 39, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Ehime, Kochi
|
|
|
|
// Kyushu (Connecting West)
|
|
[0, 0, 0, 41, 40, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Saga, Fukuoka, Oita
|
|
[0, 42, 42, 43, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Nagasaki, Kumamoto, Oita
|
|
[0, 42, 43, 43, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Nagasaki, Kumamoto, Miyazaki
|
|
[0, 0, 46, 46, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Kagoshima, Miyazaki
|
|
[0, 0, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Kagoshima
|
|
|
|
// Gap
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
[47, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Okinawa
|
|
[0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Okinawa
|
|
];
|
|
|
|
static const Map<int, String> prefectureNames = {
|
|
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: '沖縄県',
|
|
};
|
|
|
|
// Region grouping for visual rhythm (coloring)
|
|
// 1: Hokkaido, 2: Tohoku, 3: Kanto, 4: Chubu, 5: Kansai, 6: Chugoku, 7: Shikoku, 8: Kyushu/Okinawa
|
|
static const Map<int, String> regionNames = {
|
|
1: '北海道',
|
|
2: '東北',
|
|
3: '関東',
|
|
4: '中部',
|
|
5: '近畿',
|
|
6: '中国',
|
|
7: '四国',
|
|
8: '九州・沖縄',
|
|
};
|
|
|
|
static int getRegionId(int prefId) {
|
|
if (prefId == 1) return 1;
|
|
if (prefId >= 2 && prefId <= 7) return 2;
|
|
if (prefId >= 8 && prefId <= 14) return 3;
|
|
if (prefId >= 15 && prefId <= 23) return 4;
|
|
if (prefId >= 24 && prefId <= 30) return 5;
|
|
if (prefId >= 31 && prefId <= 35) return 6;
|
|
if (prefId >= 36 && prefId <= 39) return 7;
|
|
if (prefId >= 40 && prefId <= 47) return 8;
|
|
return 0;
|
|
}
|
|
}
|