在进行城镇体系规划时,城市腹地范围的确定是城镇体系规划的一项重要内容,当今国内外众多学者提出了很多关于城市腹地范围测度的方法,如断裂点理论、中心地理论及哈夫模型等,而在这些模型中都涉及到一个重要的参数,即城市间的距离。城市间的距离不能简单的等同于两点间的直线距离,因为城市间的各项联系往往都是基于路网而发生的,因此,常常需要将路网距离作为两个城市间的实际距离。下面就来介绍一下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)按钮。
(3)新建ODcost Matrix
首先,单击网络分析工具条上的New OD cost Matrix选项;然后,分别为起始点(Origins)和目的地点(Destinations)加载位置,在网络分析窗口中,选中起始点(Origins),单击鼠标右键选择加载位置(Load locations),将其他城市点数据(city2.shp)作为起始点位置加载,而后加载目的地点位置,将中心城市点数据(city1.shp)作为目的地点位置加载。
(4)生成OD Cost Matrix
单击网络分析工具条上的运行按钮,即可生成OD cost Matrix。
(5)导出路网距离结果
在内容列表窗口(Table ofContents)中导出所生成的各城市间的线数据(lines),打开导出数据的属性表,其中Total Length字段即为两个城市间的路网距离。
2.3路网距离的可视化表达
(1)生成城市点对
在计算OD Cost Matrix过程中,生成的各城市间的线数据中记录了任意两个城市之间的关系,因此可依据此数据,来生成城市点对。使用要素折点转点工具(DataManagement Tools>Features>Feature Vertices To Points)依次导出点对起始点和目的地点,点类型(point type)分别选择start和end。
(2)新建路径
单击网络分析工具条上的新建路径(New Route)按钮。
(3)加载站点位置
在网络分析窗口(NetworkAnalyst)中,添加站点(Stops)数据,依次添加所生成的城市点对数据起始点(origins)和目的地点(end)数据。首先,加载起始点位置,在位置加载(Load Locations)对话框中,修改位置分析属性(Location Analysis Properties),属性Name字段为空,属性Route Name字段设置为Name;然后,加载目的地点位置,步骤同上。
(4)生成距离路径
单击工具条上的运行(Solve)按钮,即可生成城市点对间距离的路径。