在进行城镇体系规划时,城市腹地范围的确定是城镇体系规划的一项重要内容,当今国内外众多学者提出了很多关于城市腹地范围测度的方法,如断裂点理论、中心地理论及哈夫模型等,而在这些模型中都涉及到一个重要的参数,即城市间的距离。城市间的距离不能简单的等同于两点间的直线距离,因为城市间的各项联系往往都是基于路网而发生的,因此,常常需要将路网距离作为两个城市间的实际距离。下面就来介绍一下ArcGIS中计算路网距离的方法。

  



java gis 两点间的距离_ArcGIS教程


  1.解决思路

  在ArcGISToolbox中,用于两点间距离量算的工具(Point Distance)只能计算出两点之间的直线距离,如果要基于路网计算两点间的距离,可以借助网络分析(NetworkAnalyst)扩展模块来实现。首先创建基于路网的网络数据集,然后基于此网络数据集计算城市间的路网距离。

  现欲计算一研究区内区域中心城市与其他城市间的路网距离,具体实施过程如下。

  2.实施步骤

  2.1创建网络数据集

  (1)数据准备

  所用数据为道路现状矢量数据road.shp和城市点矢量数据city1.shp(中心城市)和city2.shp(其他城市)。

  (2)激活网络分析模块

  单击菜单栏自定义选项,选择扩展模块,勾选网络分析,Customize >Extensions > Network Analyst。

  (3)创建数据库

  在ArcCatalog中,单击右键新建数据库(New>File Geodatabase)。

  (4)创建要素数据集

  选中所创建的地理数据库,单击右键新建要素数据集(New>Feature Dataset)。

  (5)导入要素类

  选中所创建的要素数据集,单击右键导入(Import>Feature Class)道路矢量数据。

  (6)创建网络数据集

  选中所创建的要素数据集,单击右键新建网络数据集(New>Network Dataset)。

  注:网络数据集不仅可以创建在地理数据库,还可以创建在shapefile工作空间,shapefile 网络数据集仅支持使用单个边源,而地理数据库网络数据集则支持使用多边源和多交汇点源。

  2.2计算城市间的路网距离

  (1)加载网络分析工具条

  在工具条空白处单击鼠标右键,选择网络分析(Network Analyst)。

  (2)打开网络分析窗口

  单击工具条上的网络分析窗口(Network Analyst window)按钮。

  



java gis 两点间的距离_网络分析_02


  (3)新建ODcost Matrix

  首先,单击网络分析工具条上的New OD cost Matrix选项;然后,分别为起始点(Origins)和目的地点(Destinations)加载位置,在网络分析窗口中,选中起始点(Origins),单击鼠标右键选择加载位置(Load locations),将其他城市点数据(city2.shp)作为起始点位置加载,而后加载目的地点位置,将中心城市点数据(city1.shp)作为目的地点位置加载。

  (4)生成OD Cost Matrix

  单击网络分析工具条上的运行按钮,即可生成OD cost Matrix。

  



java gis 两点间的距离_ArcGIS教程_03


  (5)导出路网距离结果

  在内容列表窗口(Table ofContents)中导出所生成的各城市间的线数据(lines),打开导出数据的属性表,其中Total Length字段即为两个城市间的路网距离。

  



java gis 两点间的距离_ArcGIS教程_04


  2.3路网距离的可视化表达

  (1)生成城市点对

  在计算OD Cost Matrix过程中,生成的各城市间的线数据中记录了任意两个城市之间的关系,因此可依据此数据,来生成城市点对。使用要素折点转点工具(DataManagement Tools>Features>Feature Vertices To Points)依次导出点对起始点和目的地点,点类型(point type)分别选择start和end。

  



java gis 两点间的距离_路网_05


  



java gis 两点间的距离_ArcGIS教程_06


  (2)新建路径

  单击网络分析工具条上的新建路径(New Route)按钮。

  (3)加载站点位置

  在网络分析窗口(NetworkAnalyst)中,添加站点(Stops)数据,依次添加所生成的城市点对数据起始点(origins)和目的地点(end)数据。首先,加载起始点位置,在位置加载(Load Locations)对话框中,修改位置分析属性(Location Analysis Properties),属性Name字段为空,属性Route Name字段设置为Name;然后,加载目的地点位置,步骤同上。

  



java gis 两点间的距离_城市间距_07


  (4)生成距离路径

  单击工具条上的运行(Solve)按钮,即可生成城市点对间距离的路径。

  



java gis 两点间的距离_城市间距_08