「地图故事」全国各省的难抵点(最纵深处)分别在什么地方?

难抵点(极)这个词听着比较艰涩,但是其英文名称就容易理解的多,即"pole of inaccessibility",指的是对一个多边形而言(可以是凸多边形也可以是凹多边形),存在某个点,在这个点可以画出位于多边形内的半径最大的圆。

比如,欧亚大陆的难抵点在这个位置:

上图来自维基百科

全国各省难抵点分析

那么,我们或许会有兴趣知道,全国各省的难抵点分别在什么地方?所谓难抵点,其实就是多边形最纵深的地方。

方法也并不算难,首先,获取各省省界的经纬度坐标,形成一个polygon。数据来自gadm网站的公开数据。

然后,获取各省省界的最大经纬度、最小经纬度,确定地理范围,在该地理范围内均匀地选取300*300个点,看哪个点和周围的最小距离是最大的(有点拗口也有点费解,其实大概类似于hausdorff distance),前提是,该点必须要位于polygon内部。

用matplotlib判断点是否在多边形内比较容易,这几句代码就可以做到:

from matplotlib import path

def pointInTriangle6(p, t):
    polygon = path.Path(t)
    point = [p[0], p[1]]
    res = polygon.contains_point(point)
    return res

然后,就是将难抵点绘制出来,并且把相应的内接圆绘制出来,显得更为直观。

河南省

我们可以分省看看。比如先看看河南:

河南的最纵深的点是在许昌,而不是省会郑州,不过该点和郑州的距离也不算远就是了。

安徽省

安徽的最纵深点是在巢湖,而不是省会合肥,不过距离也不算远。

四川省

四川省最纵深的点是在甘孜藏族自治州,与省会成都的距离也相当不近,不过可以看到,三个民族自治州占据了全省一半以上的面积,所以这样的结果也并不算意外。

以上的省份抛砖引玉,其他省的情况,各位看官可以自行分析。


麻辣GIS-盛光晓
作者:
一名精通 ArcPy 的 GISer。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

3.如果本文对您有所帮助,请您对我们团队进行 打赏捐助让我们在传播3S的路上可以走得更远,不胜感激。PS:如果你是学生党,请优先把经费用于购买学习资料 以及 与小哥哥/小姐姐约会上:-)

如您有疑问,可在文末留言,或到QQ群中提问。

本站QQ群(一):291616564 麻辣GIS

本站QQ群(二):166408035 麻辣GIS(二)

本站QQ群(三):627853279 麻辣GIS(三)

本站QQ群(四):436386604 麻辣GIS(四)

本站QQ群(五):606176554 麻辣GIS(五)

微信公众号:malagis,扫描右边二维码直接关注。

已有 2 条评论

  1. 麻辣GIS-休闲
    1#
    休闲  · 2019-04-30 11:49

    看到亚洲大陆的难抵点,心中感慨:如果当年没有左宗棠和曾纪泽的努力,这个地方就属于俄国了,现在应该是属于哈萨克斯坦

      1. 麻辣GIS-Sailor
        Sailor  · 2019-05-01 17:07

        哈哈,希望有一天会拿回来,需要一个契机

发表评论