Геометрические сети в базе геоданных в Oracle
Геометрические сети представляют собой наборы классов объектов линий (границ) и точек (соединений) в наборе данных объектов, который имеет связующие отношения. Геометрические сети используются для моделирования инфраструктуры, например линий электропередач и канализационных систем.
Создание в сети таблиц зависит от присутствия в сети поворотов.
Геометрические сети в ArcGIS for Desktop
В дереве каталога наборы классов объектов, которые содержат геометрические сети, до раскрытия набора данных выглядят аналогично. После раскрытия набора данных можно увидеть геометрическую сеть, представленную следующим значком:
Имя геометрической сети в базе геоданных в Oracle содержит имя владельца геометрической сети и имя самой геометрической сети.
Например, геометрическая сеть hydro2_gnet, принадлежащая пользователю RJP, обозначается в дереве Каталога как as RJP.Hydro2_gnet.
При построении геометрической сети создается независимый класс объектов соединения в наборе классов объектов. Имя этого класса объектов совпадает с именем сети, но имеет суффикс _Junctions.
Любые ошибки, появляющиеся в процессе создания геометрической сети, записываются в таблицу ошибок построения, которую также можно увидеть в Каталоге. Эта таблица называется <network_name>_BUILDERR. Если при создании геометрической сети water_net имелись ошибки, в базе геоданных будет создана таблица с именем RJP.hydro2_gnet_BUILDERR.
Геометрические сети в базе данных Oracle
Геометрические сети отслеживаются в таблице GDB_ITEMS. В таблице GDB_ITEMTYPES хранится значение, указывающее, что объект является геометрической сетью. В таблице GDB_ITEMRELATIONSHIPS хранится информация об отношениях сети и набора пространственных объектов.
В дополнение к этим таблицам сети создаются из набора таблиц разного размера, который хранится в схеме пользователя, создавшего геометрическую сеть. Размер этих таблиц зависит от размера сети. Например, на размер сети могут повлиять количество соединений и количество границ.
Всего в каждой сети имеется 9 фиксированных таблиц, которые идентифицируются следующими обозначениями: N_<ID>_<table_descriptor>, где ID – логический идентификатор сети, который хранится в определении сетей в таблице GDB_ITEMS; например, N_1_<table descriptor>, N_2_<table descriptor>.
Фактическое количество таблиц может быть различным – в зависимости от элементов, содержащихся в сети. Для сети с поворотами и весами может быть создано не более 21 таблицы.
Для всех этих таблиц осуществляется контроль версий, если он осуществляется и для самой сети.
Следующие таблицы создаются во всех случаях: N_<ID>_Desc, N_<ID>_E<#>, N_<ID>_ESTATUS, N_<ID>_ETOPO, N_<ID>_FLODIR, N_<ID>_JDESC, N_<ID>_JSTATUS, N_<ID>_JTOPO, and N_<ID>_PROPS.
Таблицы N_<ID>_* можно просматривать в СУБД, но не следует изменять с помощью SQL или сторонних приложений, поскольку это может привести к порче сети.
N_<ID>_*
В таблицах базы геоданных, имя которых начинается с префикса N_, хранится информация о сетях.
N_<ID>_DESC
Таблица N_<ID>_Desc описывает элементы сети. Это нормализованная таблица, количество строк которой равно количеству соединений и границ в геометрической сети.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
OID |
NUMBER(38) |
Уникальный идентификатор элемента геометрической сети |
NOT NULL |
USERCLASSID |
NUMBER(4) |
Идентификатор класса пространственных объектов, к которому принадлежит элемент |
NOT NULL |
USERID |
NUMBER(38) |
ObjectID элемента |
NOT NULL |
USERSUBID |
NUMBER(38) |
Идентификатор элемента в объекте; применяется только к пространственным объектам "сложное ребро" |
NOT NULL |
ELEMENTTYPE |
NUMBER(4) |
Код, указывающий тип сетевого элемента: 1 = соединение или 2 = граница |
NOT NULL |
EID |
NUMBER(38) |
Уникальный идентификатор элемента сети; уникален только для типа сетевого элемента |
NOT NULL |
N_<ID>_PROPS
Таблица N_<ID>_PROPS содержит итоговое описание сетевых параметров, например, количество элементов и максимальные значения EID.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
PROPERTYID |
NUMBER(38) |
Уникальный идентификатор сетевого свойства |
NOT NULL |
PROPERTYNAME |
NVARCHAR2(32) |
Имя свойства |
NOT NULL |
PROPERTYVALUE |
NUMBER(38) |
Значение свойства |
NOT NULL |
Все остальные таблицы сети содержат аналогичные имена полей и типы. Имена полей таблицы и отслеживаемые этими полями параметры описаны под определениями таблицы.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
OID |
NUMBER(38) |
Уникальный идентификатор страницы BLOB в таблице |
NOT NULL |
PAGENUMBER |
NUMBER(38) |
Номер страницы BLOB в таблице |
NOT NULL |
PAGEBLOB |
BLOB |
Фактическая страница BLOB, содержащая описание элемента, который описывает таблица, например границу и статус границы |
- N_<ID>_E<#> – Описывает взвешенные значения границы сети; # = 2, 3, 4 или 5
- N_<ID>_EDESC – Описывает границы сети
- N_<ID>_ESTATUS – Описывает статус каждой границы, в том числе удаленное и отключенное состояния
- N_<ID>_ETOPO – Описывает топологию и связность границы сети
- N_<ID>_FLODIR – Описывает направление потока для сети
- N_<ID>_J<#> – Описывает значения веса для сетевых соединений; # = 0 или 1
- N_<ID>_JDESC – Описывает сетевые соединения
- N_<ID>_JSTATUS – Описывает статус каждого сетевого соединения, в том числе удаленное и отключенное состояния
- N_<ID>_JTOPO – Описывает связь соединительных элементов с граничными элементами
- N_<ID>_JTOPO2 – Описывает связь соединительных элементов с граничными элементами при схождении нескольких границ в одном соединении
- N_<ID>_T<#>* – Описывает значения веса для каждого элемента поворота
- N_<ID>_TDEFN* – Определяет каждый элемент поворота, перечисляя границы и соединения, составляющие поворот
- N_<ID>_TDEFN2* – Таблица переполнения для определения элементов поворота; например, при повороте нескольких границ
- N_<ID>_TDESC* – Описывает повороты в сети
- N_<ID>_TSTATUS* – Описывает статус каждого поворота в сети, включая удаленное и отключенное состояния
Просмотреть схему геометрической сети в Oracle.
Штриховые линии определяют неявные отношения между столбцами.
Для открытия файла необходим Adobe Acrobat Reader.
Описание таблицы ошибок построения можно найти в разделе Схема таблицы ошибок построения сети.
Геометрические сети в XML-документе
Для геометрических сетей элемент данных в документе XML указан как тип GeometricNetwork. Ниже показана часть документа XML, экспортированная из набора данных пространственных объектов, содержащего геометрическую сеть:
<DataElement xsi:type="esri:DEGeometricNetwork">
<CatalogPath>/V=sde.DEFAULT/FD=sde.RJP.hydro2/GN=sde.RJP.hydro2_gNet</CatalogPath>
<Name>sde.RJP.hydro2_gNet</Name>
<MetadataRetrieved>true</MetadataRetrieved>
<Metadata xsi:type="esri:XmlPropertySet">
<XmlDoc><?xml version="1.0"?> <metadata xml:lang="en"><Esri><MetaID>{A4750260-72E0-4B84-9E59-A28ED020FBCF}</MetaID><CreaDate>20060530</CreaDate><CreaTime>14011400</CreaTime><SyncOnce>TRUE</SyncOnce></Esri></metadata></XmlDoc>
</Metadata>
<DatasetType>esriDTGeometricNetwork</DatasetType>
<DSID>-1</DSID>
<Versioned>false</Versioned>
<CanVersion>true</CanVersion>
<Extent xsi:type="esri:EnvelopeN" />
<SpatialReference xsi:type="esri:ProjectedCoordinateSystem">
<WKT>PROJCS["World_Mercator", GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984", SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433]], PROJECTION["Mercator"],PARAMETER["False_Easting",0.0], PARAMETER["False_Northing",0.0], PARAMETER["Central_Meridian",0.0], PARAMETER["Standard_Parallel_1",0.0], UNIT["Meter",1.0]]</WKT>
<XOrigin>-147.84354555</XOrigin>
<YOrigin>-0.843545550000002</YOrigin>
<XYScale>160000000</XYScale>
<ZOrigin>0</ZOrigin>
<ZScale>1</ZScale>
<MOrigin>0</MOrigin>
<MScale>1</MScale>
<XYTolerance>0.0002</XYTolerance>
<ZTolerance>4.7683715798108E-03</ZTolerance>
<MTolerance>2</MTolerance>
<HighPrecision>true</HighPrecision>
</SpatialReference>
<NetworkType>esriNTUtilityNetwork</NetworkType>
<OrphanJunctionFeatureClassName />
<FeatureClassNames xsi:type="esri:Names" />
<ConnectivityRules xsi:type="esri:ArrayOfConnectivityRule" />
<NetworkWeights xsi:type="esri:ArrayOfNetWeight" />
<WeightAssociations xsi:type="esri:ArrayOfNetWeightAssociation" />
</DataElement>