Files
secondo/Algebras/MapMatchingP
2026-01-23 17:03:45 +08:00
..
2026-01-23 17:03:45 +08:00
2026-01-23 17:03:45 +08:00
2026-01-23 17:03:45 +08:00
2026-01-23 17:03:45 +08:00
2026-01-23 17:03:45 +08:00
2026-01-23 17:03:45 +08:00


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))