ponshu-room-lite/lib/models/maps/japan_map_data.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
// Shifted Left by 3
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Tip
[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, 0], // Widen
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], // Widest top
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], // Mid
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], // Narrowing
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 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, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Aomori
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Akita, Iwate
[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, 0, 0, 0], // Yamagata, Miyagi
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Niigata, Fukushima
// Kanto & Chubu (The bulging turn)
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 10, 9, 9, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Niigata, Gunma, Tochigi, Ibaraki
[0, 0, 0, 0, 0, 0, 0, 0, 17, 16, 20, 20, 11, 11, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Ishikawa, Toyama, Nagano, Saitama, Chiba
[0, 0, 0, 0, 0, 0, 0, 0, 18, 21, 20, 19, 13, 13, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Fukui, Gifu, Nagano, Yamanashi, Tokyo, Chiba
[0, 0, 0, 0, 0, 0, 0, 0, 18, 25, 21, 23, 22, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Fukui, Shiga, Gifu, Aichi, Shizuoka, Kanagawa
// Kansai & Chugoku (Stretching West)
[0, 0, 0, 0, 32, 31, 28, 26, 25, 24, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Shimane, Tottori, Hyogo, Kyoto, Shiga, Mie, Aichi, Shizuoka
[0, 0, 35, 34, 33, 28, 27, 29, 24, 0, 0, 0, 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, 37, 36, 0, 30, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Kagawa, Tokushima, Wakayama
[0, 0, 0, 38, 38, 39, 39, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Ehime, Kochi
// Kyushu (Connecting West)
[0, 41, 40, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Saga, Fukuoka, Oita
[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, 0], // Nagasaki, Kumamoto, Oita
[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, 0], // Nagasaki, Kumamoto, Miyazaki
[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, 0], // Kagoshima, Miyazaki
[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, 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;
}
}