285 lines
6.9 KiB
Plaintext
285 lines
6.9 KiB
Plaintext
|
|
|
|
1. Relation SedentalerStr
|
|
|
|
1.1 Erzeugung der Relation SedentalerStr
|
|
|
|
SedentalerStr basiert auf Relation Ways (erstellt durch "OrderedRelationGraphFromFullOSMImport-D.SEC"),
|
|
gefiltert nach WayTagValue "Sedentaler Strasse" und WayTagKey "highway".
|
|
Erzeugung der Relationen durch:
|
|
|
|
let SedentalerWays = Ways feed filter[.WayInfo afeed filter[.WayTagValue = "Sedentaler Straße"] count > 0] consume;
|
|
let SedentalerStr = SedentalerWays feed filter[.WayInfo afeed filter[.WayTagKey = "highway"] count > 0] consume
|
|
|
|
1.2 Aufbau der Relation SedentalerStr
|
|
|
|
Ist eine Relation mit Aufbau:
|
|
(rel(tuple ((WayId longint) (NodeList (arel (tuple
|
|
((NodeId longint) (Pos point) (NodeIdNew int) (NodeCounter int)
|
|
(NodeRef longint))))) (Curve line) (WayIdInTag longint)
|
|
(WayInfo (arel (tuple ((WayTagKey text) (WayTagValue text))))))
|
|
))
|
|
|
|
Übersicht:
|
|
Die Relation besteht aus Tupeln:
|
|
(WayId NodeListARel Curve WayIdInTag WayInfoARel)
|
|
wobei NodeListARel und WayInfoARel eingebettete Relationen bzw. Tupel sind mit:
|
|
|
|
- NodeList besteht aus Tupeln:
|
|
(NodeId Pos NodeIdNew NodeCounter NodeRef)
|
|
- WayInfo besteht aus Tupeln:
|
|
(WayTagKey WayTagValue)
|
|
|
|
|
|
longint
|
|
[NodeList]
|
|
longint
|
|
point
|
|
int
|
|
int
|
|
longint
|
|
line
|
|
longint
|
|
[WayInfo]
|
|
text
|
|
text
|
|
|
|
|
|
|
|
**********
|
|
|
|
|
|
2. Weitere Relationen
|
|
|
|
Weitere Relationen, die durch das Script "OrderedRelationGraphFromFullOSMImport-D.SEC" erstellt wurden:
|
|
- CityNodesNew
|
|
(rel(tuple ((NodeId longint) (Pos point) (NodeIdNew int))))
|
|
|
|
- Roads (wie Ways, gefiltert nach WayTagKey "highway")
|
|
(rel (tuple ((WayId longint) (NodeList (arel (tuple
|
|
((NodeId longint) (Pos point) (NodeIdNew int) (NodeCounter int)
|
|
(NodeRef longint))))) (Curve line) (WayIdInTag longint)
|
|
(WayInfo (arel (tuple ((WayTagKey text) (WayTagValue text))))))
|
|
))
|
|
|
|
|
|
- Nodes
|
|
(rel (tuple ((WayId longint) (NodeCounter int) (NodeIdNew int) (Pos point))))
|
|
|
|
|
|
- EdgesUp
|
|
(rel (tuple ((WayId longint) (Source int) (Target int)
|
|
(SourcePos point) (TargetPos point) (SourceNodeCounter int)
|
|
(TargetNodeCounter int) (Curve sline) (RoadName text)
|
|
(RoadType text))))
|
|
|
|
|
|
- EdgesDown
|
|
(rel (tuple ((WayId longint) (Source int) (Target int)
|
|
(SourcePos point) (TargetPos point) (SourceNodeCounter int)
|
|
(TargetNodeCounter int) (Curve sline) (RoadName text)
|
|
(RoadType text))))
|
|
|
|
|
|
- Edges
|
|
(rel (tuple ((Source int) (Target int) (SourcePos point)
|
|
(TargetPos point) (SourceNodeCounter int) (TargetNodeCounter
|
|
int) (Curve sline) (RoadName text) (RoadType text) (WayId
|
|
longint))))
|
|
|
|
|
|
- EdgeIndex
|
|
(rel (tuple ((Source int) (Target int) (Curve sline) (Box
|
|
rect))))
|
|
|
|
|
|
|
|
|
|
3. RTrees
|
|
Ebenfalls durch das Script "OrderedRelatio WayId : 254881822
|
|
NodeList :
|
|
NodeId : 240181037
|
|
Pos : point: (6.96655,51.2075)
|
|
NodeIdNew : 7298053
|
|
NodeCounter : 0
|
|
NodeRef : 240181037
|
|
|
|
NodeId : 2606702642
|
|
Pos : point: (6.96702,51.2075)
|
|
NodeIdNew : 7298064
|
|
NodeCounter : 1
|
|
NodeRef : 2606702642
|
|
|
|
NodeId : 3787358578
|
|
Pos : point: (6.96781,51.2075)
|
|
NodeIdNew : 7298913
|
|
NodeCounter : 2
|
|
NodeRef : 3787358578
|
|
|
|
NodeId : 240147936
|
|
Pos : point: (6.96804,51.2075)
|
|
NodeIdNew : 7298915
|
|
NodeCounter : 3
|
|
NodeRef : 240147936
|
|
|
|
Curve : Generic display function used!
|
|
Type : line
|
|
Value:
|
|
(
|
|
(6.9665451 51.2074576 6.9670241 51.2074876)
|
|
(6.9670241 51.2074876 6.9678133 51.2074928)
|
|
(6.9678133 51.2074928 6.9680353 51.2074943))
|
|
WayIdInTag : 254881822
|
|
WayInfo :
|
|
WayTagKey : name
|
|
WayTagValue : Sedentaler Straße
|
|
|
|
WayTagKey : lanes
|
|
WayTagValue : 3
|
|
|
|
WayTagKey : oneway
|
|
WayTagValue : yes
|
|
|
|
WayTagKey : source
|
|
WayTagValue : survey
|
|
|
|
WayTagKey : highway
|
|
WayTagValue : tertiary
|
|
|
|
WayTagKey : maxspeed
|
|
WayTagValue : 50
|
|
|
|
WayTagKey : placement
|
|
WayTagValue : left_of:3
|
|
|
|
WayTagKey : turn:lanes
|
|
WayTagValue : left|through|right
|
|
|
|
WayTagKey : postal_code
|
|
WayTagValue : 40699
|
|
|
|
WayTagKey : source:lanes
|
|
WayTagValue : Bing
|
|
nGraphFromFullOSMImport-D.SEC" erstellt:
|
|
- Ways_Curve_rtree
|
|
((rtree (tuple ((Box rect))) rect FALSE))
|
|
|
|
- Ways_WayTag
|
|
((rtree (tuple ((Box rect))) rect FALSE))
|
|
|
|
|
|
********************
|
|
Beispiel für einen Straßenabschnitt:
|
|
query SedentalerStr feed filter [.WayId = 254881822] consume
|
|
|
|
WayId : 254881822
|
|
NodeList :
|
|
NodeId : 240181037
|
|
Pos : point: (6.96655,51.2075)
|
|
NodeIdNew : 7298053
|
|
NodeCounter : 0
|
|
NodeRef : 240181037
|
|
|
|
NodeId : 2606702642
|
|
Pos : point: (6.96702,51.2075)
|
|
NodeIdNew : 7298064
|
|
NodeCounter : 1
|
|
NodeRef : 2606702642
|
|
|
|
NodeId : 3787358578
|
|
Pos : point: (6.96781,51.2075)
|
|
NodeIdNew : 7298913
|
|
NodeCounter : 2
|
|
NodeRef : 3787358578
|
|
|
|
NodeId : 240147936
|
|
Pos : point: (6.96804,51.2075)
|
|
NodeIdNew : 7298915
|
|
NodeCounter : 3
|
|
NodeRef : 240147936
|
|
|
|
Curve : Generic display function used!
|
|
Type : line
|
|
Value:
|
|
(
|
|
(6.9665451 51.2074576 6.9670241 51.2074876)
|
|
(6.9670241 51.2074876 6.9678133 51.2074928)
|
|
(6.9678133 51.2074928 6.9680353 51.2074943))
|
|
WayIdInTag : 254881822
|
|
WayInfo :
|
|
WayTagKey : name
|
|
WayTagValue : Sedentaler Straße
|
|
|
|
WayTagKey : lanes
|
|
WayTagValue : 3
|
|
|
|
WayTagKey : oneway
|
|
WayTagValue : yes
|
|
|
|
WayTagKey : source
|
|
WayTagValue : survey
|
|
|
|
WayTagKey : highway
|
|
WayTagValue : tertiary
|
|
|
|
WayTagKey : maxspeed
|
|
WayTagValue : 50
|
|
|
|
WayTagKey : placement
|
|
WayTagValue : left_of:3
|
|
|
|
WayTagKey : turn:lanes
|
|
WayTagValue : left|through|right
|
|
|
|
WayTagKey : postal_code
|
|
WayTagValue : 40699
|
|
|
|
WayTagKey : source:lanes
|
|
WayTagValue : Bing
|
|
|
|
|
|
****************
|
|
Anwendung von operator "line2region" aus "SpatialAlgebra":
|
|
|
|
1. Erstelle line (geschlossene Linie)
|
|
let SedenDreieck = [const line value ((6.9665451 51.2074576 6.9670241 51.2074876) (6.9670241 51.2074876 6.9678133 51.2074928) (6.9678133 51.2074928 6.9680353 51.2074943) (6.9680353 51.2074943 6.9665451 51.2074576))]
|
|
|
|
2. Erstelle region
|
|
let s3region = SedenDreieck line2region
|
|
|
|
3. Query region
|
|
query s3region
|
|
Type : region
|
|
Value:
|
|
(
|
|
(
|
|
(
|
|
(6.9665451 51.2074576)
|
|
(6.9680353 51.2074944)
|
|
(6.9678133 51.2074928)
|
|
(6.9670241 51.2074876))))
|
|
|
|
|
|
***************
|
|
WayIds (auf Sedentaler Strasse)
|
|
254881822
|
|
375343324
|
|
375363885
|
|
375363886
|
|
|
|
Filter for two wayIds:
|
|
query SedentalerStr feed filter[(.WayId = 254881822) or (.WayId = 375343324)] consume
|
|
|
|
***************
|
|
|
|
Half segment 0: (6.9665451, 51.2074576) - (6.9670241, 51.2074876) (dominant point:(6.96654510, 51.20745760)
|
|
|
|
|
|
(6.9665451 51.2074576 6.9670241 51.2074876)
|
|
(6.9670241 51.2074876 6.9678133 51.2074928)
|
|
(6.9678133 51.2074928 6.9680353 51.2074943))
|
|
|
|
|
|
|
|
|