在使用silverlight API的网络分析时,很多人都碰到过这样一个问题。就是相同的代码,不同的数据(美国在线数据和自己配置的网络数据),但是往往都会报错,错误内容一般都是“routing error:error solving route,unable to find attribute invalid context!!routing error:error solving route,unable to find attribute invalid context!!”。而且有的时候,相同的Network服务(自己配置的),在silverlight不可以,而在flex api 里却可以。
曾经以为是自己代码的原因,但是无论代码怎么改,还是不可以。后来就彻底地认识到是数据的问题。试了很多数据改造方法还是不可以。
后来对比美国的数据创建的网络数据集和自己的数据创建的网络,发现这么一个有趣的现象,如下图所示。利用美国的数据在创建网络数据集时,会自动有名为“HierarchMultiNet”,Type为“Hierarch”的属性。这个属性字段的作用是对网络数据集进行层级划分的。
到这里,我们就知道了两者数据的差异了。我们怎么做呢?
举个例子,我现在要创建的网络数据集的线图层是testPolyline
方法一:
1 对testPolyline图层创建网络数据集,这个步骤没有任何要求。创建完网络数据集之后,往下走
2 就是在testPolyline_ND的属性对话框的"Attributes"标签页中,点击“Add”。
方法二:
就是在testPolyline图层属性表里添加一个名为"NET2CLASS",数据类型为整型的属性字段。然后再自动创建网络数据集里就有了那个分层级的属性了。