PostgreSQL 中的网络数据集
网络数据集是具有连通性关系的要素类的集合。网络数据集可通过三种类型的源创建,即边要素源(如街道中心线)、交汇点要素源(如包含铁路交叉点的点要素类)以及转弯要素源。这些源可用于构建交通网的模型。要使用网络数据集,必须安装 ArcGIS Network Analyst 扩展模块。
ArcGIS Desktop 中的网络数据集
在目录树中,包含 PostgreSQL 中网络数据集的要素数据集在展开之前,外观没有什么异样。在展开数据集后,网络数据集将用以下图标来表示:
PostgreSQL 中地理数据库中网络的名称包含数据库名称、网络所有者的名称及网络本身的名称。
例如,由 m16 地理数据库中的 hbear 所有的网络数据集 road_network_nd 将以 m16.hbear.road_network_nd 形式在目录树中列出。
创建网络数据集时,还会创建系统交汇点要素类。该要素类的名称是在网络数据集的名称后面附加 _Junctions。
PostgreSQL 中数据库内的网络数据集
在 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 |
网络中元素的唯一标识符 |
非空 |
userclassid |
integer |
元素所属要素类的标识符 |
非空 |
userid |
integer |
要素的 ObjectID |
非空 |
usersubid |
integer |
要素中元素的标识符;仅适用于复杂边要素 |
非空 |
elementtype |
smallint |
指示网络元素类型的代码 |
非空 |
eid |
integer |
网络元素的唯一元素标识符;仅对网络元素类型唯一 |
非空 |
n_<id>_props 表包含网络属性(如元素计数和最大 EID 值)的概要描述。
字段名 |
字段类型 |
描述 |
是否允许空值 |
---|---|---|---|
propertyid |
integer |
The unique identifier of the network property |
NOT NULL |
propertyname |
varchar(32) |
The name of the property |
NOT NULL |
propertyvalue |
integer |
The value of the property |
NOT NULL |
nd_<itemid>_dirtyareas 表用于追踪网络数据集中的已编辑空间要素。
字段名 | 字段类型 | 描述 | 是否允许空值 |
---|---|---|---|
objectid | integer | 记录的唯一标识符 | 非空 |
isretired | integer | 指示该要素是否仍然用于追踪网络数据集的脏区 | 非空 |
dirtyarea | st_geometry geometry | 脏区的多边形几何 |
nd_<itemid>_dirtyobjects 表用于追踪网络数据集中的已编辑关系对象(例如,转弯和历史流量记录)。
字段名 | 字段类型 | 描述 | 是否允许空值 |
---|---|---|---|
objectid | integer | 记录的唯一标识符 | 非空 |
classid | integer | gdb_items 表中的脏对象项目的 objectID | 非空 |
oid | integer | 脏对象的对象 ID | 非空 |
updatetype | smallint | 执行的编辑类型 - 插入 (0)、更新 (1) 或删除 (2) - 从而导致产生脏对象 | 非空 |
其余的所有网络表均包含相同的字段名和字段类型。这些表的结构如下:
字段名 |
字段类型 |
描述 |
是否允许空值 |
---|---|---|---|
oid |
integer |
表中 bytea 页的唯一标识符 |
非空 |
pagenumber |
integer |
表中 bytea 页的页码 |
非空 |
pageblob |
bytea |
对表所描述的元素(如边和边状态)进行说明 | |
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 文件中所定义的拓扑表数组内的位置。 |
非空 |
下图显示的是 PostgreSQL 中的网络数据集:
虚线表示各列之间的隐含关系。
您可将额外的可选表用作网络数据集的一部分,从而根据历史流量速度对行驶时间建模,或者指示出时区内可能影响网络分析的更改。这些表需要在创建网络数据集之前创建,并将存储在您的方案之中(与在创建者的方案中构建网络所基于的要素类相同)。您需要指定表的名称。请参阅本文档的“网络分析”部分,获得有关使用这些历史流量表和时区表的详细信息。
XML 工作空间文档中的网络数据集
网络数据集被标记为逻辑网络。以下是从 XML 文档(通过从 RoadNetwork 数据集中导出而创建)中摘录的一部分内容。
<LogicalNetworkName>m16.hbear.RoadNetwork_ND</LogicalNetworkName> <NetworkType>1</NetworkType> <Buildable>true</Buildable> <SupportsTurns>true</SupportsTurns> <Properties xsi:nil="true" /> <UserData xsi:nil="true" /> <EdgeFeatureSources xsi:type="esri:ArrayOfEdgeFeatureSource"> <EdgeFeatureSource xsi:type="esri:EdgeFeatureSource"> <ID>1</ID> <ClassID>1</ClassID> <Name>m16.hbear.Streets</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>3</ID> <ClassID>4</ClassID> <Name>m16.hbear.RoadNetwork_ND_Junctions</Name> <ElementType>esriNETJunction</ElementType> <Properties xsi:nil="true" /> <ElevationFieldName /> </SystemJunctionSource> </SystemJunctionSources> <TurnFeatureSources xsi:type="esri:ArrayOfTurnFeatureSource"> <TurnFeatureSource xsi:type="esri:TurnFeatureSource"> <ID>2</ID> <ClassID>2</ClassID> <Name>m16.hbear.Turns</Name> <ElementType>esriNETTurn</ElementType> <Properties xsi:nil="true" /> </TurnFeatureSource> </TurnFeatureSources> <EvaluatedNetworkAttributes xsi:type="esri:ArrayOfEvaluatedNetworkAttribute"> <EvaluatedNetworkAttribute xsi:type="esri:EvaluatedNetworkAttribute"> <ID>1</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> </EvaluatedNetworkAttributes>