convert-geojson-names.cjs 4.4 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'));