Ticket #7409: RoutingGraph.java.patch

File RoutingGraph.java.patch, 1.8 KB (added by franpd, 14 years ago)

Patch

  • src/com/innovant/josm/jrt/core/RoutingGraph.java

     
    184184           */
    185185           
    186186                                String oneway_val = way.get("oneway");   /*   get (oneway=?) tag for this way.   */
     187                                String junction_val = way.get("junction");   /*   get (junction=?) tag for this way.   */
    187188           
    188189                                from = nodes.get(0);                   /*   1st node A  */
    189190                                graph.addVertex(from);                 /*   add vertex A */
     
    197198                                               
    198199                                   
    199200                                    //this is where we link the vertices
    200                                                 if (oneway_val == null || oneway_val == "false" || oneway_val == "no" || oneway_val == "0") {
    201                                                 //Case 1 (bi-way): oneway=false OR oneway=unset OR oneway=0 OR oneway=no
     201                                                if (oneway_val == null && junction_val == "roundabout") {
     202                                    //Case (roundabout): oneway=implicit yes
     203                                                  addEdgeNormalOneway(way, from, to);
     204                                               
     205                                                } else if (oneway_val == null || oneway_val == "false" || oneway_val == "no" || oneway_val == "0") {
     206                                                //Case (bi-way): oneway=false OR oneway=unset OR oneway=0 OR oneway=no
    202207                                                  addEdgeBidirectional(way, from, to);
    203208                                                 
    204209                                                } else if (oneway_val == "-1") {
    205                                                 //Case 2 (oneway reverse): oneway=-1
     210                                                //Case (oneway reverse): oneway=-1
    206211                                                  addEdgeReverseOneway(way, from, to);
    207212                                               
    208213                                                } else if (oneway_val == "1" || oneway_val == "yes" || oneway_val == "true") {
    209               //Case 3 (oneway normal): oneway=yes OR 1 OR true
     214                                                //Case (oneway normal): oneway=yes OR 1 OR true
    210215                                                  addEdgeNormalOneway(way, from, to);                           
    211216                               
    212217                                                }