convert-geojson-names.cjs 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. // convert-geojson-names.cjs
  2. // 该脚本用于将 GeoJSON 文件中的国家/地区名称从英文转换为中文
  3. const fs = require('fs');
  4. const path = require('path');
  5. // 英文-中文对照表(可补充)
  6. const nameMap = {
  7. "China": "中国",
  8. "United States of America": "美国",
  9. "Japan": "日本",
  10. "South Korea": "韩国",
  11. "Australia": "澳大利亚",
  12. "Canada": "加拿大",
  13. "Russia": "俄罗斯",
  14. "India": "印度",
  15. "Brazil": "巴西",
  16. "United Kingdom": "英国",
  17. "France": "法国",
  18. "Germany": "德国",
  19. "Italy": "意大利",
  20. "New Zealand": "新西兰",
  21. "Papua New Guinea": "巴布亚新几内亚",
  22. "Fiji": "斐济",
  23. "Samoa": "萨摩亚",
  24. "Tonga": "汤加",
  25. "Vanuatu": "瓦努阿图",
  26. "Solomon Islands": "所罗门群岛",
  27. "Micronesia": "密克罗尼西亚",
  28. "Palau": "帕劳",
  29. "Nauru": "瑙鲁",
  30. "Tuvalu": "图瓦卢",
  31. "Kiribati": "基里巴斯",
  32. "Maldives": "马尔代夫",
  33. "Sri Lanka": "斯里兰卡",
  34. "Cambodia": "柬埔寨",
  35. "Vietnam": "越南",
  36. "Thailand": "泰国",
  37. "Philippines": "菲律宾",
  38. "Indonesia": "印度尼西亚",
  39. "Myanmar": "缅甸",
  40. "Pakistan": "巴基斯坦",
  41. "Nepal": "尼泊尔",
  42. "Bangladesh": "孟加拉国",
  43. "Mongolia": "蒙古",
  44. "Tajikistan": "塔吉克斯坦",
  45. "Uzbekistan": "乌兹别克斯坦",
  46. "Kazakhstan": "哈萨克斯坦",
  47. "Chile": "智利",
  48. "Argentina": "阿根廷",
  49. "Colombia": "哥伦比亚",
  50. "Peru": "秘鲁",
  51. "Bolivia": "玻利维亚",
  52. "Ecuador": "厄瓜多尔",
  53. "Paraguay": "巴拉圭",
  54. "Uruguay": "乌拉圭",
  55. "Hong Kong": "中国香港",
  56. "Macau": "中国澳门",
  57. "Taiwan": "中国台湾",
  58. "South Africa": "南非",
  59. "Nigeria": "尼日利亚",
  60. "Kenya": "肯尼亚",
  61. "Egypt": "埃及",
  62. "Morocco": "摩洛哥",
  63. "Ghana": "加纳",
  64. "Senegal": "塞内加尔",
  65. "Tanzania": "坦桑尼亚",
  66. "Uganda": "乌干达",
  67. "Zimbabwe": "津巴布韦",
  68. "Algeria": "阿尔及利亚",
  69. "Mali": "马里",
  70. "Cameroon": "喀麦隆",
  71. "Gabon": "加蓬",
  72. "Congo": "刚果",
  73. "Angola": "安哥拉",
  74. "Mozambique": "莫桑比克",
  75. "Zambia": "赞比亚",
  76. "Botswana": "博茨瓦纳",
  77. "Zambia": "赞比亚",
  78. "Madagascar": "马达加斯加",
  79. "Rwanda": "卢旺达",
  80. "Burundi": "布隆迪",
  81. "Togo": "多哥",
  82. "Benin": "贝宁",
  83. "Niger": "尼日",
  84. "Chad": "乍得",
  85. "Cameroon": "喀麦隆",
  86. "South Sudan": "南苏丹",
  87. "Sudan": "苏丹",
  88. "Libya": "利比亚",
  89. "Ethiopia": "埃塞俄比亚",
  90. "Djibouti": "吉布提",
  91. "Somalia": "索马里",
  92. "Eritrea": "厄立特里亚",
  93. "Seychelles": "塞舌尔",
  94. "Comoros": "科摩罗",
  95. "Mayotte": "马约特",
  96. "Reunion": "留尼旺",
  97. "Mauritius": "毛里求斯",
  98. "Saint Helena": "圣赫勒拿",
  99. "Saint Kitts and Nevis": "圣基茨和尼维斯",
  100. "Saint Lucia": "圣卢西亚",
  101. "Saint Pierre and Miquelon": "圣皮埃尔和密克隆",
  102. "Saint Vincent and the Grenadines": "圣文森特和格林纳丁斯",
  103. "Saint Martin": "圣马丁",
  104. "Saint Barthelemy": "圣巴泰勒米",
  105. "Saint Martin": "圣马丁",
  106. "Saint Barthelemy": "圣巴泰勒米",
  107. "Antigua and Barbuda": "安提瓜和巴布达",
  108. "Dominica": "多米尼克",
  109. "Grenada": "格林纳达",
  110. "Trinidad and Tobago": "特立尼达和多巴哥",
  111. "Bahamas": "巴哈马",
  112. "Cuba": "古巴",
  113. "Dominican Republic": "多米尼加共和国",
  114. "Haiti": "海地",
  115. "Jamaica": "牙买加",
  116. "Barbados": "巴巴多斯",
  117. "Suriname": "苏里南",
  118. "French Guiana": "法属圭亚那",
  119. "Mexico": "墨西哥",
  120. "Cayman Islands": "开曼群岛",
  121. "Bermuda": "百慕大",
  122. "Puerto Rico": "波多黎各",
  123. "Costa Rica": "哥斯达黎加",
  124. "Nicaragua": "尼加拉瓜",
  125. "El Salvador": "萨尔瓦多",
  126. "Honduras": "洪都拉斯",
  127. "Guatemala": "危地马拉",
  128. "Belize": "伯利兹",
  129. "Panama": "巴拿马",
  130. "Aruba": "阿鲁巴",
  131. "Antarctica": "南极洲",
  132. "Malaysia": "马来西亚",
  133. "Singapore": "新加坡",
  134. "Laos": "老挝",
  135. "Brunei": "文莱",
  136. // ...可继续补充
  137. };
  138. function convertGeoJson(filePath) {
  139. const geojson = JSON.parse(fs.readFileSync(filePath, 'utf8'));
  140. geojson.features.forEach(f => {
  141. const en = f.properties.name;
  142. if (nameMap[en]) {
  143. f.properties.name = nameMap[en];
  144. }
  145. });
  146. fs.writeFileSync(filePath, JSON.stringify(geojson, null, 2), 'utf8');
  147. console.log(`已处理: ${filePath}`);
  148. }
  149. convertGeoJson(path.join(__dirname, 'public/map/custom.geo.json'));
  150. convertGeoJson(path.join(__dirname, 'public/map/oceania.geo.json'));
  151. convertGeoJson(path.join(__dirname, 'public/map/africa.geo.json'));
  152. convertGeoJson(path.join(__dirname, 'public/map/asia.geo.json'));
  153. convertGeoJson(path.join(__dirname, 'public/map/europe.geo.json'));
  154. convertGeoJson(path.join(__dirname, 'public/map/northAmerica.geo.json'));
  155. convertGeoJson(path.join(__dirname, 'public/map/southAmerica.geo.json'));