SQL Server 中的网络数据集
网络数据集是具有连通性关系的要素类的集合。网络数据集可通过三种类型的源创建,即边要素源(如街道中心线)、交汇点要素源(如包含铁路交叉点的点要素类)以及转弯要素源。这些源可用于构建交通网的模型。要使用网络数据集,必须安装 ArcGIS Network Analyst 扩展模块。
ArcGIS for Desktop 中的网络数据集
在目录树中,包含 SQL Server 中网络数据集的要素数据集在展开之前,外观没有什么异样。在展开数据集后,网络数据集将用以下图标来表示:
SQL Server 地理数据库中网络的名称包含数据库名称、网络所有者的名称及网络本身的名称。
例如,如果网络数据集 roads_nd 归 RJP 所有并且位于地理数据库 sdedb 中,则它将以 sdedb.RJP.roads_nd 形式列出在目录树中。
创建网络数据集时,还会创建系统交汇点要素类。该要素类的名称是在网络数据集的名称后面附加 _Junctions。
Microsoft SQL Server 数据库中的网络数据集
在 GDB_ITEMS 表中对网络数据集进行跟踪。GDB_ITEMTYPES 表存储用于指示对象属于网络数据集的值。GDB_ITEMRELATIONSHIPS 表存储有关网络与其所在要素数据集之间的关联方式的信息。
在拥有该网络数据集的用户的方案中,还将创建下列各表。如下所示:
- N_<ID>_Desc:N_<ID>_Desc 表用于描述网络的元素。此表为标准化表,其行计数等于几何网络中的交汇点数、边数和转弯数。
- N_<ID>_PROPS:N_<ID>_PROPS 表包含网络属性(如元素计数和最大 EID 值)的概要描述。
- N_<ID>_TOPOLOGY:此表存储所有拓扑 BLOB 页面。
- N_<ID>_EDGEWEIGHT:此表为边权重值存储所有 BLOB 页面。
- N_<ID>_JUNCTIONWEIGHT:此表为交汇点权重值存储所有 BLOB 页面。
- N_<ID>_TURNWEIGHT:此表为转弯权重值存储所有 BLOB 页面。
- ND_<ITEMID>_DIRTYAREAS:ND_<ITEMID>_DIRTYAREAS 表存储有关网络中已编辑空间要素的信息。
- ND_<ITEMID>_DIRTYOBJECTS:ND_<ITEMID>_DIRTYOBJECTS 表存储有关网络数据集中已编辑关系对象的信息。
前六个表的名称中的 ID 为逻辑网络 ID。后两个表中的 itemID 为 GDB_ITEMS 表中的 ObjectID。
表的结构如下:
N_<ID>_Desc 表包含网络数据集中每个交汇点、边和转弯元素的项。
字段名 |
字段类型 |
描述 |
是否允许为空 |
---|---|---|---|
OID |
integer |
网络中元素的唯一标识符 |
NOT NULL |
userclassid |
smallint |
元素所属要素类的标识符 |
NOT NULL |
userid |
integer |
要素的 ObjectID |
NOT NULL |
usersubid |
integer |
要素中元素的标识符;仅适用于复杂边要素 |
NOT NULL |
elementtype |
smallint |
指示网络元素类型的代码 |
NOT NULL |
EID |
integer |
网络元素的唯一元素标识符;仅对网络元素类型是唯一的 |
NOT NULL |
N_<ID>_PROPS 表包含网络属性(如元素计数和最大 EID 值)的概要描述。
字段名 |
字段类型 |
描述 |
是否允许为空 |
---|---|---|---|
propertyid |
integer |
The unique identifier of the network property |
NOT NULL |
propertyname |
nvarchar(32) |
The name of the property |
NOT NULL |
propertyvalue |
integer |
The value of the property |
NOT NULL |
ND_<ITEMID>_DIRTYAREAS 表用于追踪网络数据集中的已编辑空间要素。
字段名 | 字段类型 | 描述 | 是否允许为空 |
---|---|---|---|
objectid | integer | 记录的唯一标识符 | NOT NULL |
isretired | integer | 指示该要素是否仍然用于追踪网络数据集的脏区 | NOT NULL |
dirtyarea | integer geometry geography | 脏区的多边形几何 |
ND_<ITEMID>_DIRTYOBJECTS 表用于追踪网络数据集中的已编辑关系对象(例如,转弯和历史流量记录)。
字段名 | 字段类型 | 描述 | 是否允许为空 |
---|---|---|---|
objectid | integer | 记录的唯一标识符 | NOT NULL |
classid | integer | GDB_ITEMS 表中的脏对象项目的 objectID | NOT NULL |
OID | integer | 脏对象的对象 ID | NOT NULL |
updatetype | smallint | 执行的编辑类型 - 插入 (0)、更新 (1) 或删除 (2) - 从而导致产生脏对象 | NOT NULL |
其余的所有网络表均包含相同的字段名和字段类型。这些表的结构如下:
字段名 |
字段类型 |
描述 |
是否允许为空 |
---|---|---|---|
OID |
integer |
表中 varbinarymax 页的唯一 ID |
NOT NULL |
pagenumber |
integer |
表中 varbinarymax 页的页码 |
NOT NULL |
pageblob |
varbinary(max) |
对表所描述的元素(如边和边状态)进行说明 | |
tableid |
integer |
对于 N_<ID>_EDGEWEIGHT、N_<ID>_TURNWEIGHT 和 N_<ID>_JUNCTIONWEIGHT BLOB 各表,tableID 为 weightID。对于 N_<ID>_TOPOLOGY BLOB 表,tableID 为 GeoDatabase\GeoDatabase\Network\Network\TableDefs.h 文件中所定义的拓扑表数组内原始表的位置。 |
NOT NULL |
下图显示的是 SQL Server 中的网络数据集:
虚线表示各列之间的隐含关系。
您可将额外的可选表用作网络数据集的一部分,从而根据历史流量速度对行驶时间建模,或者指示出时区内可能影响网络分析的更改。这些表需要在创建网络数据集之前创建,并将存储在您的方案之中(与在创建者的方案中构建网络所基于的要素类相同)。您需要指定表的名称。有关使用这些历史流量表和时区表的详细信息,请参阅本文档的 ArcGIS Network Analyst 扩展模块部分。
XML 工作空间文档中的网络数据集
以下是从 XML 文档(通过从网络数据集中导出而创建)中摘录的一部分内容。以下列出了边和交汇点元素的属性:
<EdgeFeatureSources xsi:type="esri:ArrayOfEdgeFeatureSource">
<EdgeFeatureSource xsi:type="esri:EdgeFeatureSource">
<ID>1</ID>
<ClassID>99</ClassID>
<Name>sdedb.RJP.Road_cl</Name>
<ElementType>esriNETEdge</ElementType>
<Properties xsi:nil="true" />
<FromElevationFieldName />
<ToElevationFieldName />
<Connectivity xsi:type="esri:PropertySet">
<PropertyArray xsi:type="esri:ArrayOfPropertySetProperty">
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>Version</Key>
<Value xsi:type="xs:short">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>UsesSubtypes</Key>
<Value xsi:type="xs:short">0</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>ClassConnectivity</Key>
<Value xsi:type="xs:short">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>SubtypeConnCount</Key>
<Value xsi:type="xs:int">0</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>DefaultGroup</Key>
<Value xsi:type="xs:int">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>GroupCount</Key>
<Value xsi:type="xs:int">0</Value>
</PropertySetProperty>
</PropertyArray>
</Connectivity>
</EdgeFeatureSource>
</EdgeFeatureSources>
<JunctionFeatureSources xsi:type="esri:ArrayOfJunctionFeatureSource" />
<SystemJunctionSources xsi:type="esri:ArrayOfSystemJunctionSource">
<SystemJunctionSource xsi:type="esri:SystemJunctionSource">
<ID>2</ID>
<ClassID>1683</ClassID>
<Name>sdedb.RJP.Roads_ND_Junctions</Name>
<ElementType>esriNETJunction</ElementType>
<Properties xsi:nil="true" />
<ElevationFieldName />
</SystemJunctionSource>
</SystemJunctionSources>
<TurnFeatureSources xsi:type="esri:ArrayOfTurnFeatureSource" />
<EvaluatedNetworkAttributes xsi:type="esri:ArrayOfEvaluatedNetworkAttribute">
<EvaluatedNetworkAttribute xsi:type="esri:EvaluatedNetworkAttribute">
<ID>1</ID>
<Name>speed</Name>
<Units>Unknown</Units>
<DataType>esriNADTBoolean</DataType>
<UsageType>esriNAUTRestriction</UsageType>
<UserData xsi:nil="true" />
<UseByDefault>true</UseByDefault>
<AttributeParameters xsi:type="esri:ArrayOfNetworkAttributeParameter" />
</EvaluatedNetworkAttribute>
<EvaluatedNetworkAttribute xsi:type="esri:EvaluatedNetworkAttribute">
<ID>2</ID>
<Name>oneway</Name>
<Units>Unknown</Units>
<DataType>esriNADTBoolean</DataType>
<UsageType>esriNAUTRestriction</UsageType>
<UserData xsi:nil="true" />
<UseByDefault>true</UseByDefault>
<AttributeParameters xsi:type="esri:ArrayOfNetworkAttributeParameter" />
</EvaluatedNetworkAttribute>
<EvaluatedNetworkAttribute xsi:type="esri:EvaluatedNetworkAttribute">
<ID>3</ID>
<Name>timeofday</Name>
<Units>Unknown</Units>
<DataType>esriNADTInteger</DataType>
<UsageType>esriNAUTCost</UsageType>
<UserData xsi:nil="true" />
<UseByDefault>true</UseByDefault>
<AttributeParameters xsi:type="esri:ArrayOfNetworkAttributeParameter" />
</EvaluatedNetworkAttribute>
</EvaluatedNetworkAttributes>
<NetworkAssignments xsi:type="esri:ArrayOfNetworkAssignment">
<NetworkAssignment xsi:type="esri:NetworkAssignment">
<IsDefault>true</IsDefault>
<ID>-1</ID>
<NetworkAttributeName>speed</NetworkAttributeName>
<NetworkElementType>esriNETJunction</NetworkElementType>
<NetworkEvaluatorCLSID>{318C4B91-F5D2-467A-996C-0AB51B0D8FF2}</NetworkEvaluatorCLSID>
<NetworkEdgeDirection>esriNEDNone</NetworkEdgeDirection>
<NetworkEvaluatorData xsi:type="esri:PropertySet">
<PropertyArray xsi:type="esri:ArrayOfPropertySetProperty">
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>Version</Key>
<Value xsi:type="xs:short">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>ConstantValue</Key>
<Value xsi:type="xs:boolean">false</Value>
</PropertySetProperty>
</PropertyArray>
</NetworkEvaluatorData>
</NetworkAssignment>
<NetworkAssignment xsi:type="esri:NetworkAssignment">
<IsDefault>true</IsDefault>
<ID>-1</ID>
<NetworkAttributeName>speed</NetworkAttributeName>
<NetworkElementType>esriNETEdge</NetworkElementType>
<NetworkEvaluatorCLSID>{318C4B91-F5D2-467A-996C-0AB51B0D8FF2}</NetworkEvaluatorCLSID>
<NetworkEdgeDirection>esriNEDNone</NetworkEdgeDirection>
<NetworkEvaluatorData xsi:type="esri:PropertySet">
<PropertyArray xsi:type="esri:ArrayOfPropertySetProperty">
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>Version</Key>
<Value xsi:type="xs:short">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>ConstantValue</Key>
<Value xsi:type="xs:boolean">false</Value>
</PropertySetProperty>
</PropertyArray>
</NetworkEvaluatorData>
</NetworkAssignment>
<NetworkAssignment xsi:type="esri:NetworkAssignment">
<IsDefault>true</IsDefault>
<ID>-1</ID>
<NetworkAttributeName>speed</NetworkAttributeName>
<NetworkElementType>esriNETTurn</NetworkElementType>
<NetworkEvaluatorCLSID>{318C4B91-F5D2-467A-996C-0AB51B0D8FF2}</NetworkEvaluatorCLSID>
<NetworkEdgeDirection>esriNEDNone</NetworkEdgeDirection>
<NetworkEvaluatorData xsi:type="esri:PropertySet">
<PropertyArray xsi:type="esri:ArrayOfPropertySetProperty">
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>Version</Key>
<Value xsi:type="xs:short">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>ConstantValue</Key>
<Value xsi:type="xs:boolean">false</Value>
</PropertySetProperty>
</PropertyArray>
</NetworkEvaluatorData>
</NetworkAssignment>
<NetworkAssignment xsi:type="esri:NetworkAssignment">
<IsDefault>true</IsDefault>
<ID>-1</ID>
<NetworkAttributeName>oneway</NetworkAttributeName>
<NetworkElementType>esriNETJunction</NetworkElementType>
<NetworkEvaluatorCLSID>{318C4B91-F5D2-467A-996C-0AB51B0D8FF2}</NetworkEvaluatorCLSID>
<NetworkEdgeDirection>esriNEDNone</NetworkEdgeDirection>
<NetworkEvaluatorData xsi:type="esri:PropertySet">
<PropertyArray xsi:type="esri:ArrayOfPropertySetProperty">
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>Version</Key>
<Value xsi:type="xs:short">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>ConstantValue</Key>
<Value xsi:type="xs:boolean">false</Value>
</PropertySetProperty>
</PropertyArray>
</NetworkEvaluatorData>
</NetworkAssignment>
<NetworkAssignment xsi:type="esri:NetworkAssignment">
<IsDefault>true</IsDefault>
<ID>-1</ID>
<NetworkAttributeName>oneway</NetworkAttributeName>
<NetworkElementType>esriNETEdge</NetworkElementType>
<NetworkEvaluatorCLSID>{318C4B91-F5D2-467A-996C-0AB51B0D8FF2}</NetworkEvaluatorCLSID>
<NetworkEdgeDirection>esriNEDNone</NetworkEdgeDirection>
<NetworkEvaluatorData xsi:type="esri:PropertySet">
<PropertyArray xsi:type="esri:ArrayOfPropertySetProperty">
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>Version</Key>
<Value xsi:type="xs:short">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>ConstantValue</Key>
<Value xsi:type="xs:boolean">false</Value>
</PropertySetProperty>
</PropertyArray>
</NetworkEvaluatorData>
</NetworkAssignment>
<NetworkAssignment xsi:type="esri:NetworkAssignment">
<IsDefault>true</IsDefault>
<ID>-1</ID>
<NetworkAttributeName>oneway</NetworkAttributeName>
<NetworkElementType>esriNETTurn</NetworkElementType>
<NetworkEvaluatorCLSID>{318C4B91-F5D2-467A-996C-0AB51B0D8FF2}</NetworkEvaluatorCLSID>
<NetworkEdgeDirection>esriNEDNone</NetworkEdgeDirection>
<NetworkEvaluatorData xsi:type="esri:PropertySet">
<PropertyArray xsi:type="esri:ArrayOfPropertySetProperty">
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>Version</Key>
<Value xsi:type="xs:short">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>ConstantValue</Key>
<Value xsi:type="xs:boolean">false</Value>
</PropertySetProperty>
</PropertyArray>
</NetworkEvaluatorData>
</NetworkAssignment>
<NetworkAssignment xsi:type="esri:NetworkAssignment">
<IsDefault>true</IsDefault>
<ID>-1</ID>
<NetworkAttributeName>timeofday</NetworkAttributeName>
<NetworkElementType>esriNETJunction</NetworkElementType>
<NetworkEvaluatorCLSID>{318C4B91-F5D2-467A-996C-0AB51B0D8FF2}</NetworkEvaluatorCLSID>
<NetworkEdgeDirection>esriNEDNone</NetworkEdgeDirection>
<NetworkEvaluatorData xsi:type="esri:PropertySet">
<PropertyArray xsi:type="esri:ArrayOfPropertySetProperty">
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>Version</Key>
<Value xsi:type="xs:short">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>ConstantValue</Key>
<Value xsi:type="xs:int">0</Value>
</PropertySetProperty>
</PropertyArray>
</NetworkEvaluatorData>
</NetworkAssignment>
<NetworkAssignment xsi:type="esri:NetworkAssignment">
<IsDefault>true</IsDefault>
<ID>-1</ID>
<NetworkAttributeName>timeofday</NetworkAttributeName>
<NetworkElementType>esriNETEdge</NetworkElementType>
<NetworkEvaluatorCLSID>{318C4B91-F5D2-467A-996C-0AB51B0D8FF2}</NetworkEvaluatorCLSID>
<NetworkEdgeDirection>esriNEDNone</NetworkEdgeDirection>
<NetworkEvaluatorData xsi:type="esri:PropertySet">
<PropertyArray xsi:type="esri:ArrayOfPropertySetProperty">
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>Version</Key>
<Value xsi:type="xs:short">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>ConstantValue</Key>
<Value xsi:type="xs:int">0</Value>
</PropertySetProperty>
</PropertyArray>
</NetworkEvaluatorData>
</NetworkAssignment>
<NetworkAssignment xsi:type="esri:NetworkAssignment">
<IsDefault>true</IsDefault>
<ID>-1</ID>
<NetworkAttributeName>timeofday</NetworkAttributeName>
<NetworkElementType>esriNETTurn</NetworkElementType>
<NetworkEvaluatorCLSID>{318C4B91-F5D2-467A-996C-0AB51B0D8FF2}</NetworkEvaluatorCLSID>
<NetworkEdgeDirection>esriNEDNone</NetworkEdgeDirection>
<NetworkEvaluatorData xsi:type="esri:PropertySet">
<PropertyArray xsi:type="esri:ArrayOfPropertySetProperty">
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>Version</Key>
<Value xsi:type="xs:short">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>ConstantValue</Key>
<Value xsi:type="xs:int">0</Value>
</PropertySetProperty>
</PropertyArray>
</NetworkEvaluatorData>
</NetworkAssignment>
</NetworkAssignments>
<ConfigurationKeyword>NETWORK_DEFAULTS</ConfigurationKeyword>