如何使用ArcMap或其他软件计算拓扑距离?

时间:2013-05-17 02:42:53

标签: geolocation geometry gis postgis

我想计算拓扑距离而不是两个多边形之间的欧几里德距离。两个相邻多边形之间的距离为1,通过公共邻居连接的两个多边形之间的距离为2,依此类推。

有没有简单的方法来计算拓扑距离?我搜索了这个问题,但没有找到解决方案。

谢谢。

2 个答案:

答案 0 :(得分:0)

基本上你想搜索Polygon A& A之间的距离。乙

以下是我将采取的步骤:

距离= 1;

  1. 检查Polygon B是否是Polygon A的邻居,如果是= Finish,如果不是,请转到第2点。
  2. 计算所有相邻多边形的坐标质心(中间点)和Polygon B
  3. 计算相邻质心与多边形B质心之间的距离,选择距离最近的多边形(多边形C)
  4. 距离=距离+ 1,检查多边形B是否是多边形C的邻居,如果是=完成,如果不是,则多边形A =多边形C,转到第2点
  5. 最后你会得到距离。

答案 1 :(得分:0)

我找到了一种使用现有软件实现此计算的方法。

首先,使用PostGIS插件将shp文件导入PostgreSQL。

其次,使用ST_Touches函数计算每个多边形的相邻多边形。

第三,将每个多边形作为一个点,并构建一个新的网络。

最后,使用Dijkstra算法计算每两个点之间的最短路径。