2009年3月29日星期日

【原】ArcGIS中最短路径的实现(二)

上次介绍了用几何网络实现的“最短路径”,姑且这么叫吧。这次我们用网络数据集实现真正的最短路径功能,跟上次一样,我们先准备数据。
  1. 先打开ArcCatalog,连接到目标文件夹,假定该文件下有一个名为road的道路图层。
  2. 在road图层上右键新建一个网络数据集,并按照其默认设置直至完成。
  3. 打开该地图的工作空间,把刚才新建的网络数据集添加工作空间中。
  4. 在网络分析菜单中选择新建最近设施点。

这时在工作空间里,可以看到多了一个名为“Closest Facility”的图层。它下面还有4个子图层,名字分别为“Facilities”,“Incidents”,“Barriers”,“Routes”。“Facilities”就是设施点图层,也就是目的点,“Incidents”的意思就是出发点,“Barriers”是障碍点,意思就是地图某条道路附近有一个障碍点,如果障碍点与道路距离在容限范围内,则表示此道路不通,“Routes”就是最终的结果。这样我们编程实现最短路径的思路就出现了:

  1. 添加出发点。
  2. 添加目的点。
  3. 生成最优路径,获取结果。

这里的添加出发点或者目的点,是往“Facilities”或“Incidents”图层上添加元素。获取结果也是从“Routes”中获取Polyline。往“Facilities”或“Incidents”图层上添加元素用到的主要方法是INALocator的QueryLocationByPoint函数,生成路径主要接口是INASolver和它的Solve方法。获取结果是按属性查找,因为“Routes”类其实就是一个图层类,只不过只是存在于内存,这个查找方法网上很多。

相关链接:ArcGIS中最短路径的实现(一)

1 条评论:

  1. 可以再谈谈两种方法的区别,总结一下,这已经到了ArcGIS的高级应用了,呵呵。

    回复删除