中国地图上画一条直线,最多能穿过多少个城市?

摘要

地理上的一些直线具有直观的地理显示度和特定的地理学意义,受到了人们的关注。本文主要关注中国地图上的城市共线问题。通过将问题转化为矩形包含的坐标数量,利用Matlab进行求解。结果显示,最多共线城市为10个。本研究为后续城市共线问题的探讨提供借鉴。

引言

地理上有很多有趣的直线,有一些具有很强的地理学意义。例如我国著名的胡焕庸线(英文:Hu Line),即黑河-腾冲连线。该线大致地划分了中国人口在区域上的分布,体现了中国人口在东南和西北区域的悬殊差异。此外还有神秘的北纬30度线,秦岭淮河线等等。这些直线具有直观的地理显示度和特定的地理学意义,因此受到了人们的关注。

此外,也有一些直线尽管可能不具备特殊的地理学含义,也依然受到了人们的关注,例如北京市的中轴线南北延伸穿过的地区,东北三省省会城市的三点共线等。不同城市之间连线有时候看起来挺有趣的,也为日常聊天提供了些许谈资。然而,现有的资料缺乏多个城市连线现象的相关地理人文现象的探讨,作为相关探讨的第一步,我们需要量化究竟有哪些城市可以使用一条直线进行连接。因此本文着重关注以下的问题:如果在中国地图上画一条直线,最多能穿过多少个城市呢?

本文首先对问题进行了概化。接着利用现有的数据,使用Matlab进行相关算法的实现,分析了每个城市与其他城市的共线情况分布,提出了中国地图上最多能穿过多少个城市的直线。

方法与数据

问题概化

在地图上,城市被简化成为一个点,这个点往往是城市的中心。如果直接画一条严格意义上的直线,那么很难获取多个城市点在同一条线上。考虑到城市具有一定的面积,因此我们将这条线赋予一定的“宽度”。此外,因为条线必然经过一个城市(至少两个),否则没有意义,因此本文将问题转化为:经过某一个城市,画一条具有一定“宽度”的直线,最多能穿过多少个城市?值得注意的是,本文所有的直线并不指数学意义上的没有端点的直线,而是指数学意义上具有足够长的线段。

算法实现

如图1所示,以任意一个城市为中心,画一个矩形,矩形的宽度为上述直线的宽度,本文为10 km;矩形的长度L设置为20000 km,以足够覆盖中国全境。那么计算过程便转化为,矩形内包含的城市坐标点有多少个。

f01
Figure 1. 经过特定城市的矩形及其包含的城市

本文采用Matlab实现相关算法,主要涉及矩形的生成以及矩形内坐标点的计算。相关代码见本文的Github仓库

数据获取

如图2所示,通过中国地级市经纬度坐标,采用中国地图常用的Albers投影,获取城市坐标点的投影坐标(笛卡尔坐标),便于后续计算。转换后的城市投影坐标数据见本文的Github仓库

f02
Figure 2. 中国主要城市分布

结果

城市共线数量分布

本文分析了每个城市与其他城市的共线情况的统计分布和空间分布,如图3a所示,共线城市数量范围为4-10个,大部分共线城市数量为6-7个。如图3b所示,共线城市数量的分布没有明显的空间特征。

f03
Figure 3. 与其他城市共线的(a)城市数量统计分布; (b)城市数量空间分布

共线最多的城市

按照现在的参数设置,结果分析显示,中国地图上画一条直线线,穿过其他城市数量最多的三个城市是运城,漯河,杭州,这3个城市均与其他9个城市共线,且三者本身共线。

f04
Figure 4. 与其他城市共线最多的城市

讨论

城市共线数量分布

不一定位于中原的城市就具有更多的共线城市。以中原城市为中心,虽然直线两端均可能与其他城市共线,看似与其他城市共线的概率较大;然而,靠近边境的城市虽然只有直线一端可能与其他城市共线,但是直线一端的城市数量大于中原城市,也提高了其可能与其他城市共线的概率。

此外,由于共线的城市可能位于矩形中心城市的两侧,因此,当矩形中心城市为共线城市中的其他城市时,可能会得到不同的共线结果(图5)。这也是为什么本文得到的最多共线城市数量是10个,但是却只有运城、漯河、杭州3个城市具有最多的共线城市,而不是10个城市具有最多10个共线城市。

f05
Figure 5. 某种情况下的共线城市可能具有不同的共线城市数量

可能的其他概化方式

本文将城市视为点,考虑到城市具有一定的面积,赋予直线一定的“宽度”,转化为矩形内包含坐标点的问题进行求解。其他可能的概化方式是将城市视为具有一定半径的圆,转化为圆与直线相交、相切、相离的问题进行求解(图6)。

f06
Figure 6. 可能的其他概化方式

结果的不确定性

本文直线的宽度为10 km,改变此参数可能会影响最终结果。如图7所示,将直线宽度增大为15 km,最多共线城市由原来的10个上升为12个。这是因为矩形的范围增大了,可能包含更多的城市坐标。

f07
Figure 7. 直线宽度为15 km时的共线城市数量分布

此外,本文采用中国地图常用的Albers投影,获取城市坐标点的投影坐标。不同的投影坐标的选择会导致不同的城市投影坐标,可能会对结果产生一定的影响。此外,本文使用的数据不是中国最新的地级市数据,其中并不包含海南省三沙市。

结论

本文利用Matlab进行求解了中国地图上的城市共线问题。结果显示,中国地图上共线城市数量范围为4-10个,共线城市数量空间分布特征不明显。中国地图上画一条直线,穿过其他城市数量最多的三个城市是运城,漯河,杭州;最多共线城市为10个。本文结论可为后续城市共线问题的相关讨论提供借鉴。​

参考文献:

无。