// convert-geojson-names.cjs // 该脚本用于将 GeoJSON 文件中的国家/地区名称从英文转换为中文 const fs = require('fs'); const path = require('path'); // 英文-中文对照表(可补充) const nameMap = { "China": "中国", "United States of America": "美国", "Japan": "日本", "South Korea": "韩国", "Australia": "澳大利亚", "Canada": "加拿大", "Russia": "俄罗斯", "India": "印度", "Brazil": "巴西", "United Kingdom": "英国", "France": "法国", "Germany": "德国", "Italy": "意大利", "New Zealand": "新西兰", "Papua New Guinea": "巴布亚新几内亚", "Fiji": "斐济", "Samoa": "萨摩亚", "Tonga": "汤加", "Vanuatu": "瓦努阿图", "Solomon Islands": "所罗门群岛", "Micronesia": "密克罗尼西亚", "Palau": "帕劳", "Nauru": "瑙鲁", "Tuvalu": "图瓦卢", "Kiribati": "基里巴斯", "Maldives": "马尔代夫", "Sri Lanka": "斯里兰卡", "Cambodia": "柬埔寨", "Vietnam": "越南", "Thailand": "泰国", "Philippines": "菲律宾", "Indonesia": "印度尼西亚", "Myanmar": "缅甸", "Pakistan": "巴基斯坦", "Nepal": "尼泊尔", "Bangladesh": "孟加拉国", "Mongolia": "蒙古", "Tajikistan": "塔吉克斯坦", "Uzbekistan": "乌兹别克斯坦", "Kazakhstan": "哈萨克斯坦", "Chile": "智利", "Argentina": "阿根廷", "Colombia": "哥伦比亚", "Peru": "秘鲁", "Bolivia": "玻利维亚", "Ecuador": "厄瓜多尔", "Paraguay": "巴拉圭", "Uruguay": "乌拉圭", "Hong Kong": "中国香港", "Macau": "中国澳门", "Taiwan": "中国台湾", "South Africa": "南非", "Nigeria": "尼日利亚", "Kenya": "肯尼亚", "Egypt": "埃及", "Morocco": "摩洛哥", "Ghana": "加纳", "Senegal": "塞内加尔", "Tanzania": "坦桑尼亚", "Uganda": "乌干达", "Zimbabwe": "津巴布韦", "Algeria": "阿尔及利亚", "Mali": "马里", "Cameroon": "喀麦隆", "Gabon": "加蓬", "Congo": "刚果", "Angola": "安哥拉", "Mozambique": "莫桑比克", "Zambia": "赞比亚", "Botswana": "博茨瓦纳", "Zambia": "赞比亚", "Madagascar": "马达加斯加", "Rwanda": "卢旺达", "Burundi": "布隆迪", "Togo": "多哥", "Benin": "贝宁", "Niger": "尼日", "Chad": "乍得", "Cameroon": "喀麦隆", "South Sudan": "南苏丹", "Sudan": "苏丹", "Libya": "利比亚", "Ethiopia": "埃塞俄比亚", "Djibouti": "吉布提", "Somalia": "索马里", "Eritrea": "厄立特里亚", "Seychelles": "塞舌尔", "Comoros": "科摩罗", "Mayotte": "马约特", "Reunion": "留尼旺", "Mauritius": "毛里求斯", "Saint Helena": "圣赫勒拿", "Saint Kitts and Nevis": "圣基茨和尼维斯", "Saint Lucia": "圣卢西亚", "Saint Pierre and Miquelon": "圣皮埃尔和密克隆", "Saint Vincent and the Grenadines": "圣文森特和格林纳丁斯", "Saint Martin": "圣马丁", "Saint Barthelemy": "圣巴泰勒米", "Saint Martin": "圣马丁", "Saint Barthelemy": "圣巴泰勒米", "Antigua and Barbuda": "安提瓜和巴布达", "Dominica": "多米尼克", "Grenada": "格林纳达", "Trinidad and Tobago": "特立尼达和多巴哥", "Bahamas": "巴哈马", "Cuba": "古巴", "Dominican Republic": "多米尼加共和国", "Haiti": "海地", "Jamaica": "牙买加", "Barbados": "巴巴多斯", "Suriname": "苏里南", "French Guiana": "法属圭亚那", "Mexico": "墨西哥", "Cayman Islands": "开曼群岛", "Bermuda": "百慕大", "Puerto Rico": "波多黎各", "Costa Rica": "哥斯达黎加", "Nicaragua": "尼加拉瓜", "El Salvador": "萨尔瓦多", "Honduras": "洪都拉斯", "Guatemala": "危地马拉", "Belize": "伯利兹", "Panama": "巴拿马", "Aruba": "阿鲁巴", "Antarctica": "南极洲", "Malaysia": "马来西亚", "Singapore": "新加坡", "Laos": "老挝", "Brunei": "文莱", // ...可继续补充 }; function convertGeoJson(filePath) { const geojson = JSON.parse(fs.readFileSync(filePath, 'utf8')); geojson.features.forEach(f => { const en = f.properties.name; if (nameMap[en]) { f.properties.name = nameMap[en]; } }); fs.writeFileSync(filePath, JSON.stringify(geojson, null, 2), 'utf8'); console.log(`已处理: ${filePath}`); } convertGeoJson(path.join(__dirname, 'public/map/custom.geo.json')); convertGeoJson(path.join(__dirname, 'public/map/oceania.geo.json')); convertGeoJson(path.join(__dirname, 'public/map/africa.geo.json')); convertGeoJson(path.join(__dirname, 'public/map/asia.geo.json')); convertGeoJson(path.join(__dirname, 'public/map/europe.geo.json')); convertGeoJson(path.join(__dirname, 'public/map/northAmerica.geo.json')); convertGeoJson(path.join(__dirname, 'public/map/southAmerica.geo.json'));