真正意义上的「国中国」(enclaved country)指的是一个国家的领土完全被另一个国家包围的情形,像被南非包围的莱索托,或者被意大利包围的梵蒂冈。而本文我们要讨论的则是一种扩展意义上的「国中国」:一个国家的地图不可避免地包括另一个国家的完整领土。
我试了下用Mathematica,一行代码就能输出所有此种意义下的「国中国」,果然Mathematica 大法好啊,当然代码可读性确实差了些:
1 | MapAt[Style[#, Blue]&, Map[TextTranslation[EntityValue[#, "Name"], "en"->"zh"]&, (Function[c, {c}~Join~(EntityList["Country"]~Select~(AllTrue[Subtract@@Flatten/@GeoBounds/@{c, #}*{-1, 1, -1, 1}, Positive]&))]/@EntityList["Country"])~Select~(Length[#]>1&), {2}], {All, 1}]~Grid~(Dividers->{False, All}) |
结果为:
国家 | |||||||||
---|---|---|---|---|---|---|---|---|---|
阿尔及利亚 | 直布罗陀 | ||||||||
阿根廷 | 福克兰群岛 | ||||||||
巴西 | 玻利维亚 | 巴拉圭 | |||||||
加拿大 | 圣皮埃尔和密克隆 | ||||||||
中国 | 孟加拉国 | 不丹 | 香港 | 澳门 | 蒙古 | 尼泊尔 | 北朝鲜 | 韩国 | 台湾 |
哥伦比亚 | 库拉索 | ||||||||
刚果民主共和国 | 布隆迪 | 卢旺达 | |||||||
埃及 | 加沙地带 | ||||||||
埃塞俄比亚 | 吉布提 | ||||||||
法国 | 安道尔 | 根西岛 | 泽西 | 卢森堡 | 摩纳哥 | ||||
格陵兰 | 冰岛 | ||||||||
印度 | 孟加拉国 | 不丹 | 尼泊尔 | ||||||
印度尼西亚 | 文莱 | 圣诞岛 | 东帝汶 | 新加坡 | |||||
伊朗 | 巴林 | 科威特 | |||||||
以色列 | 约旦河西岸 | ||||||||
意大利 | 摩纳哥 | 圣马力诺 | 斯洛文尼亚 | 梵蒂冈城 | |||||
基里巴斯 | 图瓦卢 | ||||||||
马达加斯加 | 马约特 | ||||||||
马来西亚 | 文莱 | 新加坡 | |||||||
墨西哥 | 伯利兹 | ||||||||
挪威 | 奥兰群岛 | ||||||||
俄国 | 蒙古 | ||||||||
沙特阿拉伯 | 巴林 | 科威特 | 卡塔尔 | ||||||
塞内加尔 | 冈比亚 | ||||||||
南非 | 莱索托 | 斯威士兰 | |||||||
西班牙 | 安道尔 | 直布罗陀 | |||||||
瑞典 | 奥兰群岛 | ||||||||
瑞士 | 列支敦士登 | ||||||||
乌克兰 | 摩尔多瓦 | ||||||||
英国 | 马恩岛 | ||||||||
美国本土外小岛屿 | 伯利兹 | 开曼群岛 | 哥斯达黎加 | 萨尔瓦多 | 危地马拉 | 洪都拉斯 | 牙买加 | 尼加拉瓜 | 巴拿马 |
委内瑞拉 | 特立尼达和多巴哥 | ||||||||
越南 | 柬埔寨 |
有几点要说明下:
- 这个只考虑了墨卡托、等距圆柱之类的圆柱投影,像常用圆锥投影的俄罗斯就能再囊括好些国家。
- Mathematica中「Country」数据应该是包含了所有被分配了ISO 3166-1代码的国家/地区,有些并不是真正的国家,所以也出现了像「美国本土外小岛屿」(United States Minor Outlying Islands)地图囊括一大票中美洲国家的情形。
- Mathematica的
TextTranslation
有个别误译的情形,像英国属地泽西被翻作「新泽西」,约旦河西岸被翻作「西方银行」,上表中我都作了修正。
下面是几张意示图:
另外,如果仅考虑联合国成员国的话(使用CountryData["UN"]
替代EntityList["Country"]
),结果如下:
国家 | ||||||
---|---|---|---|---|---|---|
巴西 | 玻利维亚 | 巴拉圭 | ||||
中国 | 孟加拉国 | 不丹 | 蒙古 | 尼泊尔 | 北朝鲜 | 韩国 |
刚果民主共和国 | 布隆迪 | 卢旺达 | ||||
埃塞俄比亚 | 吉布提 | |||||
法国 | 安道尔 | 卢森堡 | 摩纳哥 | |||
印度 | 孟加拉国 | 不丹 | 尼泊尔 | |||
印度尼西亚 | 文莱 | 东帝汶 | 新加坡 | |||
伊朗 | 巴林 | 科威特 | ||||
意大利 | 摩纳哥 | 圣马力诺 | 斯洛文尼亚 | |||
基里巴斯 | 图瓦卢 | |||||
马来西亚 | 文莱 | 新加坡 | ||||
墨西哥 | 伯利兹 | |||||
俄国 | 蒙古 | |||||
沙特阿拉伯 | 巴林 | 科威特 | 卡塔尔 | |||
塞内加尔 | 冈比亚 | |||||
南非 | 莱索托 | 斯威士兰 | ||||
西班牙 | 安道尔 | |||||
瑞士 | 列支敦士登 | |||||
乌克兰 | 摩尔多瓦 | |||||
委内瑞拉 | 特立尼达和多巴哥 | |||||
越南 | 柬埔寨 |
具体代码放在了Wolfram Cloud上。为了可读性,我也就把前文那一行代码给拆开来了。
注:本文首发于知乎问题 有哪些国家印制的地图一定会不可避免地囊括其他国家的全部领土?