// 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'));