Ticket #5109: forward_backward.3.patch

File forward_backward.3.patch, 131.3 KB (added by PetrDlouhy, 15 years ago)

new version of the patch

  • new file data_nodist/relation_analysis.osm

    diff --git a/data_nodist/relation_analysis.osm b/data_nodist/relation_analysis.osm
    new file mode 100644
    index 0000000..623e073
    - +  
     1<?xml version='1.0' encoding='UTF-8'?>
     2<osm version='0.6' generator='JOSM'>
     3  <bounds minlat='49.774557599999994' minlon='11.5408802' maxlat='49.7786038' maxlon='11.5482616' origin='CGImap 0.0.2' />
     4  <bounds minlat='49.8075267' minlon='11.6413879' maxlat='49.812511699999995' maxlon='11.648254399999999' origin='CGImap 0.0.2' />
     5  <node id='-3560' action='modify' visible='true' lat='0.5247658238148267' lon='-0.6242352121333936' />
     6  <node id='-3556' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5033851296417358' lon='-0.6204560598104434' />
     7  <node id='-3553' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='0.4874392187326622' lon='-0.6205345411665519' />
     8  <node id='-3552' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='0.4941263906292132' lon='-0.6205016287819524' />
     9  <node id='-3549' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='0.566644577920714' lon='-0.6201447123803485' />
     10  <node id='-3548' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='0.5586129418970954' lon='-0.6201842422960059' />
     11  <node id='-3546' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5124367034463932' lon='-0.6204115103866784' />
     12  <node id='-3544' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5336453871075931' lon='-0.620307126673359' />
     13  <node id='-3543' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5468219585249686' lon='-0.6202422747806072' />
     14  <node id='-3541' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5214249265161204' lon='-0.6229986807533813' />
     15  <node id='-3540' action='modify' timestamp='2010-07-29T14:09:05Z' visible='true' lat='0.5274398365340408' lon='-0.6242552068977207' />
     16  <node id='-3538' action='modify' timestamp='2010-07-29T13:40:01Z' visible='true' lat='0.5264435470184313' lon='-0.6166156925371304' />
     17  <node id='-3537' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5203258113570897' lon='-0.6161079462905947' />
     18  <node id='-3508' action='modify' visible='true' lat='1.5709135896846484' lon='-0.7626529643761373'>
     19    <tag k='name' v='See bug #5109 for forward/backward role introduction' />
     20  </node>
     21  <node id='-3506' action='modify' visible='true' lat='0.6180316787746177' lon='-0.7285481976791558'>
     22    <tag k='name' v='See discussion under bug #5109' />
     23  </node>
     24  <node id='-3504' action='modify' visible='true' lat='0.6474694408625405' lon='-0.2659430173667373'>
     25    <tag k='name' v='See discussion under bug #5109' />
     26  </node>
     27  <node id='-3487' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='0.603824723240398' lon='-0.26256595068314087' />
     28  <node id='-3486' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='0.531306986849167' lon='-0.2629228670847446' />
     29  <node id='-3485' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5575062515474742' lon='-0.25852918459338675' />
     30  <node id='-3484' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='0.5246198535324095' lon='-0.2629557794693442' />
     31  <node id='-3483' action='modify' timestamp='2010-07-29T13:40:01Z' visible='true' lat='0.5636239496553128' lon='-0.25903693083992263' />
     32  <node id='-3482' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5496171914380457' lon='-0.2628327486894705' />
     33  <node id='-3481' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5840022330120342' lon='-0.26266351308339947' />
     34  <node id='-3480' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5708257449930114' lon='-0.2627283649761512' />
     35  <node id='-3479' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.540565671609886' lon='-0.2628772981132356' />
     36  <node id='-3478' action='modify' timestamp='2010-07-29T14:09:05Z' visible='true' lat='0.5646202330151051' lon='-0.2666764452005129' />
     37  <node id='-3477' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5586053599908899' lon='-0.26541991905617346' />
     38  <node id='-3476' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='0.5957931400885033' lon='-0.26260548059879807' />
     39  <node id='-3395' action='modify' visible='true' lat='1.6159099018765737' lon='-0.7689967139885556'>
     40    <tag k='name' v='These are testing examples of relation sorting and visualization' />
     41  </node>
     42  <node id='-3380' action='modify' visible='true' lat='1.4396900950582148' lon='0.24007562225475165'>
     43    <tag k='name' v='Example 13' />
     44  </node>
     45  <node id='-3378' action='modify' visible='true' lat='1.4396365087604062' lon='0.14770387622191955'>
     46    <tag k='name' v='Example 12' />
     47  </node>
     48  <node id='-3376' action='modify' visible='true' lat='1.4395933784726673' lon='0.07335614061775216'>
     49    <tag k='name' v='Example 11' />
     50  </node>
     51  <node id='-3374' action='modify' visible='true' lat='1.439537178169707' lon='-0.02352160802224613'>
     52    <tag k='name' v='Example 10' />
     53  </node>
     54  <node id='-3372' action='modify' visible='true' lat='1.439491433118698' lon='-0.102376653647654'>
     55    <tag k='name' v='Example 9' />
     56  </node>
     57  <node id='-3370' action='modify' visible='true' lat='1.4394352320547732' lon='-0.19925570970172662'>
     58    <tag k='name' v='Example 8' />
     59  </node>
     60  <node id='-3368' action='modify' visible='true' lat='1.4393855652386773' lon='-0.28487106665195805'>
     61    <tag k='name' v='Example 7' />
     62  </node>
     63  <node id='-3366' action='modify' visible='true' lat='1.4393358969045964' lon='-0.37048903843033815'>
     64    <tag k='name' v='Example 6' />
     65  </node>
     66  <node id='-3364' action='modify' visible='true' lat='1.4392897331539705' lon='-0.4500658289213373'>
     67    <tag k='name' v='Example 6' />
     68  </node>
     69  <node id='-3362' action='modify' visible='true' lat='1.4392445646349339' lon='-0.5279270437381459'>
     70    <tag k='name' v='Example 5' />
     71  </node>
     72  <node id='-3360' action='modify' visible='true' lat='1.439184337514448' lon='-0.6317461805522621'>
     73    <tag k='name' v='Example 4' />
     74  </node>
     75  <node id='-3358' action='modify' visible='true' lat='1.4391266193501888' lon='-0.7312403916085062'>
     76    <tag k='name' v='Example 3' />
     77  </node>
     78  <node id='-3356' action='modify' visible='true' lat='1.4390571914199113' lon='-0.8509198208548396'>
     79    <tag k='name' v='Example 2' />
     80  </node>
     81  <node id='-3353' action='modify' visible='true' lat='1.4389693618734944' lon='-1.0023198349656075'>
     82    <tag k='name' v='Example 1' />
     83  </node>
     84  <node id='-3351' action='modify' visible='true' lat='0.585627318002901' lon='0.3466002633615394'>
     85    <tag k='name' v='more complicated and conroversial cases (are not working yet)' />
     86  </node>
     87  <node id='-3324' action='modify' visible='true' lat='0.2892033786587944' lon='0.11586111079138059' />
     88  <node id='-3321' action='modify' visible='true' lat='0.803395297260381' lon='0.11224595204304809' />
     89  <node id='-3318' action='modify' visible='true' lat='1.1046163419551667' lon='0.11012794721161706' />
     90  <node id='-3315' action='modify' visible='true' lat='1.3938207837935794' lon='0.10809423458559533' />
     91  <node id='-3313' action='modify' visible='true' lat='1.4916741259179915' lon='0.10740606676532684' />
     92  <node id='-3308' action='modify' visible='true' lat='1.3857471873844072' lon='-0.8954942365625451' />
     93  <node id='-3305' action='modify' visible='true' lat='1.3865320132326424' lon='-0.797876225522131' />
     94  <node id='-3302' action='modify' visible='true' lat='1.3874976761578293' lon='-0.677765338297975' />
     95  <node id='-3299' action='modify' visible='true' lat='1.3883128079268063' lon='-0.576377748204383' />
     96  <node id='-3296' action='modify' visible='true' lat='1.3890371294603738' lon='-0.4862851488561449' />
     97  <node id='-3293' action='modify' visible='true' lat='1.389642274097083' lon='-0.41101622336866434' />
     98  <node id='-3290' action='modify' visible='true' lat='1.3904266755860688' lon='-0.3134508341635163' />
     99  <node id='-3287' action='modify' visible='true' lat='1.391090524346524' lon='-0.23088000345253465' />
     100  <node id='-3284' action='modify' visible='true' lat='1.3918241185943028' lon='-0.13963406312672122' />
     101  <node id='-3281' action='modify' visible='true' lat='1.3924975339940706' lon='-0.055873264976233' />
     102  <node id='-3278' action='modify' visible='true' lat='1.3933730140120886' lon='0.05302090765953598' />
     103  <node id='-3275' action='modify' visible='true' lat='1.3951763931947991' lon='0.27732901181115627' />
     104  <node id='-3272' action='modify' visible='true' lat='1.1059736202557022' lon='0.27965537127149886' />
     105  <node id='-3269' action='modify' visible='true' lat='1.493033876135426' lon='0.276541780241537' />
     106  <node id='-3266' action='modify' visible='true' lat='0.8047545741635357' lon='0.2820781500157658' />
     107  <node id='-3264' action='modify' visible='true' lat='0.29057335147131885' lon='0.28621345895068134' />
     108  <node id='-3260' action='modify' visible='true' lat='0.29000471656808235' lon='0.21550544509369135' />
     109  <node id='-3257' action='modify' visible='true' lat='0.8041859880120983' lon='0.21137013615877578' />
     110  <node id='-3254' action='modify' visible='true' lat='1.1054050839347755' lon='0.20894735741450884' />
     111  <node id='-3251' action='modify' visible='true' lat='1.3946079195024303' lon='0.20662099795416625' />
     112  <node id='-3249' action='modify' visible='true' lat='1.4924654269142559' lon='0.20583376638454703' />
     113  <node id='-3243' action='modify' visible='true' lat='1.0973282910206412' lon='-0.7955498660617882' />
     114  <node id='-3240' action='modify' visible='true' lat='1.098294059662348' lon='-0.6754389788376326' />
     115  <node id='-3237' action='modify' visible='true' lat='1.0991092807323055' lon='-0.5740513887440404' />
     116  <node id='-3234' action='modify' visible='true' lat='1.0998335651566336' lon='-0.4839733748352874' />
     117  <node id='-3231' action='modify' visible='true' lat='1.100438892676588' lon='-0.408689863908322' />
     118  <node id='-3228' action='modify' visible='true' lat='1.1012233802470903' lon='-0.3111244747031738' />
     119  <node id='-3225' action='modify' visible='true' lat='1.101887301901761' lon='-0.22855364399219236' />
     120  <node id='-3222' action='modify' visible='true' lat='1.102620976747355' lon='-0.1373077036663788' />
     121  <node id='-3219' action='modify' visible='true' lat='1.10329446617501' lon='-0.05354690551589045' />
     122  <node id='-3216' action='modify' visible='true' lat='1.1041699259828706' lon='0.055332681680393445' />
     123  <node id='-3213' action='modify' visible='true' lat='0.8029506005543973' lon='0.057740270470760746' />
     124  <node id='-3210' action='modify' visible='true' lat='0.8020751855224479' lon='-0.05112412677162361' />
     125  <node id='-3207' action='modify' visible='true' lat='0.8014016372342845' lon='-0.13488492492211177' />
     126  <node id='-3204' action='modify' visible='true' lat='0.8006678983155688' lon='-0.22613086524792517' />
     127  <node id='-3201' action='modify' visible='true' lat='0.8000039187220256' lon='-0.3087016959589067' />
     128  <node id='-3198' action='modify' visible='true' lat='0.7992193627432762' lon='-0.40626708516405485' />
     129  <node id='-3195' action='modify' visible='true' lat='0.7986138611264088' lon='-0.48156578604491984' />
     130  <node id='-3192' action='modify' visible='true' lat='0.79788963498424' lon='-0.5716286099997733' />
     131  <node id='-3189' action='modify' visible='true' lat='0.7970743429853505' lon='-0.6730162000933657' />
     132  <node id='-3186' action='modify' visible='true' lat='0.7961084903951298' lon='-0.7931270873175212' />
     133  <node id='-3168' action='modify' visible='true' lat='0.28876901621654405' lon='0.06184965249951541' />
     134  <node id='-3166' action='modify' visible='true' lat='1.4912306139706424' lon='0.05223861174818525' />
     135  <node id='-3163' action='modify' visible='true' lat='0.28789373353666814' lon='-0.046988817836708094' />
     136  <node id='-3161' action='modify' visible='true' lat='1.4903551321678166' lon='-0.05666049654585199' />
     137  <node id='-3158' action='modify' visible='true' lat='0.2872201277852692' lon='-0.13074961598719634' />
     138  <node id='-3156' action='modify' visible='true' lat='1.4896817457018667' lon='-0.1404212946963403' />
     139  <node id='-3153' action='modify' visible='true' lat='0.286486326349079' lon='-0.22199555631300977' />
     140  <node id='-3151' action='modify' visible='true' lat='1.4889481829581548' lon='-0.23166723502215378' />
     141  <node id='-3148' action='modify' visible='true' lat='0.28582229025451383' lon='-0.3045663870239914' />
     142  <node id='-3146' action='modify' visible='true' lat='1.488284362692733' lon='-0.31423806573313534' />
     143  <node id='-3143' action='modify' visible='true' lat='0.28503766760338706' lon='-0.4021317762291394' />
     144  <node id='-3141' action='modify' visible='true' lat='1.487499994856455' lon='-0.4118034549382834' />
     145  <node id='-3138' action='modify' visible='true' lat='0.2844319074525894' lon='-0.47745640401616535' />
     146  <node id='-3136' action='modify' visible='true' lat='1.4868949155901499' lon='-0.48706744476749547' />
     147  <node id='-3133' action='modify' visible='true' lat='1.396174954003697' lon='0.40153225283849103' />
     148  <node id='-3131' action='modify' visible='true' lat='1.3844489465973568' lon='-1.0569716242483902' />
     149  <node id='-3128' action='modify' visible='true' lat='1.486170585681585' lon='-0.5771649797740017' />
     150  <node id='-3126' action='modify' visible='true' lat='0.28370782706290054' lon='-0.5674933010648578' />
     151  <node id='-3123' action='modify' visible='true' lat='1.4853554888319842' lon='-0.6785525698675939' />
     152  <node id='-3121' action='modify' visible='true' lat='0.2828924660516342' lon='-0.6688808911584503' />
     153  <node id='-3118' action='modify' visible='true' lat='0.2819265318392123' lon='-0.7889917783826057' />
     154  <node id='-3116' action='modify' visible='true' lat='1.4843898672491382' lon='-0.7986634570917502' />
     155  <node id='-3113' action='modify' visible='true' lat='0.8057533326548206' lon='0.40628139104310057' />
     156  <node id='-3110' action='modify' visible='true' lat='0.7953235105234996' lon='-0.8907450983579355' />
     157  <node id='-3108' action='modify' visible='true' lat='0.7940250151977704' lon='-1.0522224860437812' />
     158  <node id='-3105' action='modify' visible='true' lat='1.1069722911446507' lon='0.40385861229883363' />
     159  <node id='-3102' action='modify' visible='true' lat='1.0965433793136588' lon='-0.8931678771022024' />
     160  <node id='-3100' action='modify' visible='true' lat='1.0952449966201905' lon='-1.0546452647880478' />
     161  <node id='-3097' action='modify' visible='true' lat='0.28114148573820663' lon='-0.8866097894230199' />
     162  <node id='-3095' action='modify' visible='true' lat='1.483605074980702' lon='-0.8962814681321649' />
     163  <node id='-3092' action='modify' visible='true' lat='1.4940323939357623' lon='0.4007450212688718' />
     164  <node id='-3090' action='modify' visible='true' lat='0.29157219572091353' lon='0.4104166999780161' />
     165  <node id='-3088' action='modify' visible='true' lat='0.2798428810692946' lon='-1.0480871771088656' />
     166  <node id='-3087' action='modify' visible='true' lat='1.4823068897002734' lon='-1.057758855818009' />
     167  <node id='-3082' action='modify' visible='true' lat='1.316487306427631' lon='-0.8488200729380928'>
     168    <tag k='name' v='See discussion under bug #5109' />
     169  </node>
     170  <node id='-3080' action='modify' timestamp='2011-01-03T14:45:18Z' visible='true' lat='1.3266598219636017' lon='-0.848399160083479'>
     171    <tag k='ref' v='based on incomplete relation 51857' />
     172  </node>
     173  <node id='-2820' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2335018299948177' lon='-0.6200231850249067' />
     174  <node id='-2819' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2397815332124724' lon='-0.26419990281625255' />
     175  <node id='-2818' action='modify' timestamp='2011-01-12T11:14:40Z' visible='true' lat='1.2755047768284926' lon='-0.9830020484419532' />
     176  <node id='-2817' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true' lat='1.2215664083048159' lon='-0.18499481826591252' />
     177  <node id='-2816' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true' lat='1.2931719780199173' lon='-0.09623727330367528' />
     178  <node id='-2815' action='modify' timestamp='2010-07-29T13:40:01Z' visible='true' lat='0.5249758275830456' lon='-0.5330821514792292' />
     179  <node id='-2814' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2618178493794898' lon='-0.2885589010225804' />
     180  <node id='-2812' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2381022738950473' lon='-0.3576260650986885' />
     181  <node id='-2811' action='modify' timestamp='2011-01-03T14:45:18Z' visible='true' lat='0.7119443305730957' lon='-0.99071178729602'>
     182    <tag k='ref' v='based on relation 75408' />
     183  </node>
     184  <node id='-2810' action='modify' timestamp='2011-01-12T11:14:40Z' visible='true' lat='1.2472822228776737' lon='-1.022306332004304' />
     185  <node id='-2809' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2884793698959447' lon='-0.3544182120605985' />
     186  <node id='-2808' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true' lat='1.2381787836948666' lon='-0.07943700579149382' />
     187  <node id='-2806' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2906350587901165' lon='-0.361054553372103' />
     188  <node id='-2805' action='modify' timestamp='2010-12-25T10:26:34Z' visible='true' lat='0.5304901283610266' lon='-0.9447310790495733' />
     189  <node id='-2804' action='modify' timestamp='2011-01-03T14:45:18Z' visible='true' lat='0.7341894450933028' lon='-0.9898263846135729'>
     190    <tag k='name' v='Not sorted right (in reverse order)' />
     191  </node>
     192  <node id='-2803' action='modify' timestamp='2010-07-27T09:29:05Z' visible='true' lat='1.2587624479144077' lon='-0.7319980255738986' />
     193  <node id='-2802' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2430653947127628' lon='-0.012026921207548653' />
     194  <node id='-2801' action='modify' timestamp='2010-12-25T10:26:34Z' visible='true' lat='0.6743584198180701' lon='-0.9729147354809572' />
     195  <node id='-2800' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.3151692794456404' lon='-0.4424958097292308' />
     196  <node id='-2799' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2578140284416206' lon='-0.523362968176241' />
     197  <node id='-2798' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2218607339892453' lon='-0.012131304920868065' />
     198  <node id='-2797' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.4944209379831119' lon='-0.727010628474848' />
     199  <node id='-2796' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.1776234371484116' lon='-0.4459063077651511' />
     200  <node id='-2795' action='modify' timestamp='2010-07-27T09:29:05Z' visible='true' lat='1.2757817599563548' lon='-0.7318995084567931' />
     201  <node id='-2794' action='modify' timestamp='2011-01-07T10:51:09Z' visible='true' lat='1.2121938568308968' lon='0.13904868503121381' />
     202  <node id='-2793' action='modify' timestamp='2010-07-29T14:09:05Z' visible='true' lat='0.5184756784366946' lon='-0.730809775562125' />
     203  <node id='-2792' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.1873186432810088' lon='-0.4456659174272098' />
     204  <node id='-2791' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5110228832743533' lon='-0.5370715696893323' />
     205  <node id='-2790' action='modify' timestamp='2011-01-07T11:23:54Z' visible='true' lat='1.2708160092296368' lon='0.07064959995211716' />
     206  <node id='-2789' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5113616431696788' lon='-0.722662514954999' />
     207  <node id='-2788' action='modify' timestamp='2010-07-29T14:09:05Z' visible='true' lat='0.5260778036501935' lon='-0.5407071369221634' />
     208  <node id='-2787' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2700142919195387' lon='-0.5326998758830735' />
     209  <node id='-2786' action='modify' timestamp='2011-01-07T11:23:54Z' visible='true' lat='1.238454634444518' lon='0.0808097427563028' />
     210  <node id='-2785' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='1.2242448697407162' lon='-0.6200687539964158' />
     211  <node id='-2784' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true' lat='0.4619481972230777' lon='-0.35214472182566586' />
     212  <node id='-2783' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5188516464446224' lon='-0.5326591712898675' />
     213  <node id='-2782' action='modify' timestamp='2010-09-22T13:12:44Z' visible='true' lat='0.5768634283951078' lon='-0.4128882826677572' />
     214  <node id='-2781' action='modify' timestamp='2010-09-20T10:45:24Z' visible='true' lat='0.48495531419171645' lon='-0.3413940842205242' />
     215  <node id='-2780' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.276930059473664' lon='-0.6198093999950706' />
     216  <node id='-2779' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.266732408124999' lon='-0.2824120094111092' />
     217  <node id='-2778' action='modify' timestamp='2010-07-29T13:40:01Z' visible='true' lat='1.2542051018670572' lon='-0.1670620677979014' />
     218  <node id='-2777' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2553809927542894' lon='-0.25839155103743244' />
     219  <node id='-2776' action='modify' timestamp='2010-07-29T13:40:01Z' visible='true' lat='1.2563864724820357' lon='-0.1945923613791611' />
     220  <node id='-2774' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2471650797036338' lon='-0.2810256562034426' />
     221  <node id='-2773' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2513002289210833' lon='-0.35987297444009925' />
     222  <node id='-2772' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true' lat='1.2380889776965152' lon='-0.09583037272827917' />
     223  <node id='-2770' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2789199092323023' lon='-0.35787166318788705' />
     224  <node id='-2769' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true' lat='1.2122842817135187' lon='-0.09563975522128489' />
     225  <node id='-2767' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2698492525449352' lon='-0.36052258656403263' />
     226  <node id='-2766' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.277693195181603' lon='-0.015010998175605231' />
     227  <node id='-2765' action='modify' timestamp='2010-12-25T10:26:34Z' visible='true' lat='0.5004968479204766' lon='-0.9470047870525973' />
     228  <node id='-2764' action='modify' timestamp='2010-07-27T09:29:05Z' visible='true' lat='1.2677057860476286' lon='-0.7319462567060253' />
     229  <node id='-2763' action='modify' timestamp='2010-07-29T13:40:01Z' visible='true' lat='1.2358649315906514' lon='-0.008335487071319888' />
     230  <node id='-2762' action='modify' timestamp='2011-01-03T19:37:42Z' visible='true' lat='1.266080222217769' lon='0.3119643732716111'>
     231    <tag k='name' v='positive examples (should be sorted in one bidirectional section/loop)' />
     232  </node>
     233  <node id='-2761' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2755888704574847' lon='-0.44347723843203596' />
     234  <node id='-2760' action='modify' timestamp='2010-07-27T09:29:04Z' visible='true' lat='1.2562629535510594' lon='-0.5441369193077454' />
     235  <node id='-2759' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2687068254583576' lon='-0.012423827808902553' />
     236  <node id='-2758' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5034725242311517' lon='-0.726966079051083' />
     237  <node id='-2757' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.1989827436946476' lon='-0.45187332067719493' />
     238  <node id='-2756' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.278803280776241' lon='-0.5335697561847002' />
     239  <node id='-2755' action='modify' timestamp='2010-12-25T10:26:34Z' visible='true' lat='0.6236576838974027' lon='-0.9747009119013019' />
     240  <node id='-2754' action='modify' timestamp='2011-01-07T11:23:54Z' visible='true' lat='1.2550433275450048' lon='0.0783685955263022' />
     241  <node id='-2753' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.229129127923234' lon='-0.44886543183635325' />
     242  <node id='-2752' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5454025060687328' lon='-0.5364261885902651' />
     243  <node id='-2751' action='modify' timestamp='2011-01-07T10:51:09Z' visible='true' lat='1.3066872073827818' lon='0.15320635508864214' />
     244  <node id='-2750' action='modify' timestamp='2010-07-29T13:40:01Z' visible='true' lat='0.5174793874997252' lon='-0.7231702612015349' />
     245  <node id='-2749' action='modify' timestamp='2010-09-20T10:45:24Z' visible='true' lat='0.5113882234914366' lon='-0.3458528158100412' />
     246  <node id='-2748' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2616304471684052' lon='-0.5282792330199299' />
     247  <node id='-2747' action='modify' timestamp='2011-01-07T11:23:54Z' visible='true' lat='1.2279713763089644' lon='0.07142295496589145' />
     248  <node id='-2746' action='modify' timestamp='2010-09-22T13:12:44Z' visible='true' lat='0.5645430631165949' lon='-0.45130056214843756' />
     249  <node id='-2745' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true' lat='0.5696353545492685' lon='-0.3282394882092343' />
     250  <node id='-2744' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.292193056346859' lon='-0.4430655258901063' />
     251  <node id='-2743' action='modify' timestamp='2010-09-22T13:12:44Z' visible='true' lat='0.5250718295233849' lon='-0.4371708925302914' />
     252  <node id='-2742' action='modify' timestamp='2010-09-20T10:45:24Z' visible='true' lat='0.4645732410664411' lon='-0.3375723142866523' />
     253  <node id='-2741' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2637561410141804' lon='-0.6198742518878224' />
     254  <node id='-2740' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2311272939086695' lon='-0.2753341743027735' />
     255  <node id='-2739' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true' lat='1.24352566629499' lon='-0.18395019617944225' />
     256  <node id='-2738' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2483592694143235' lon='-0.2879005096416641' />
     257  <node id='-2737' action='modify' timestamp='2011-01-12T11:14:40Z' visible='true' lat='1.274172805437257' lon='-0.9580817575951877' />
     258  <node id='-2736' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2515381063749975' lon='-0.6225658059678446' />
     259  <node id='-2735' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true' lat='1.2782483101698867' lon='-0.11192075561224035' />
     260  <node id='-2733' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2491445072205154' lon='-0.35323663312859144' />
     261  <node id='-2732' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true' lat='1.279214468452031' lon='-0.09613416773874663' />
     262  <node id='-2731' action='modify' timestamp='2011-01-12T11:14:40Z' visible='true' lat='1.2466923750647017' lon='-0.9598228553004375' />
     263  <node id='-2730' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2268146545247687' lon='-0.3600085566617388' />
     264  <node id='-2729' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true' lat='1.260068245872219' lon='-0.0959927335259675' />
     265  <node id='-2728' action='modify' timestamp='2011-01-03T19:37:42Z' visible='true' lat='0.9458824617149553' lon='0.3363436430621003'>
     266    <tag k='name' v='negative examples (can&apos;t be sorted in one bidirectional section/loop, but shlould be visualized meaningfully)' />
     267  </node>
     268  <node id='-2727' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.267693546188194' lon='-0.3538862452525237' />
     269  <node id='-2726' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2899111061031203' lon='-0.012319444095583143' />
     270  <node id='-2724' action='modify' timestamp='2010-07-27T09:29:05Z' visible='true' lat='1.2426538809087524' lon='-0.7320912702065169' />
     271  <node id='-2722' action='modify' timestamp='2010-12-25T10:26:34Z' visible='true' lat='0.4338021129019718' lon='-0.930497535322131' />
     272  <node id='-2721' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.216790144100519' lon='-0.4449351733449705' />
     273  <node id='-2720' action='modify' timestamp='2010-07-27T09:29:05Z' visible='true' lat='1.2384008123741832' lon='-0.7321158890493631' />
     274  <node id='-2719' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='1.2504002306179802' lon='-0.012513946204176351' />
     275  <node id='-2718' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='0.478475005697059' lon='-0.7270891098309562' />
     276  <node id='-2717' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.328113733467533' lon='-0.4421748380205233' />
     277  <node id='-2716' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2441503576507886' lon='-0.5283295394478312' />
     278  <node id='-2715' action='modify' timestamp='2011-01-07T10:51:09Z' visible='true' lat='1.2106579073131647' lon='0.16778775564756207' />
     279  <node id='-2714' action='modify' timestamp='2010-12-24T23:22:32Z' visible='true' lat='0.5068540822413352' lon='-0.730852708736284' />
     280  <node id='-2713' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.226632894916462' lon='-0.4375804451932484' />
     281  <node id='-2712' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5322280929019121' lon='-0.5366735017106679' />
     282  <node id='-2711' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='0.5576804779082198' lon='-0.7266992810447532' />
     283  <node id='-2710' action='modify' timestamp='2011-01-07T10:51:09Z' visible='true' lat='1.2773476786821494' lon='0.1676321220694917' />
     284  <node id='-2709' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true' lat='0.5747423713805411' lon='-0.35981271959940886' />
     285  <node id='-2708' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.261347792900886' lon='-0.5487845286910829' />
     286  <node id='-2707' action='modify' timestamp='2011-01-07T11:23:54Z' visible='true' lat='1.262271228609873' lon='0.07199028524507162' />
     287  <node id='-2706' action='modify' timestamp='2010-09-22T13:12:44Z' visible='true' lat='0.5653481461430375' lon='-0.4232017445612629' />
     288  <node id='-2705' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true' lat='0.5812419152086985' lon='-0.34482877802442474' />
     289  <node id='-2704' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.3038531712383015' lon='-0.44531126991621106' />
     290  <node id='-2703' action='modify' timestamp='2010-09-22T13:12:44Z' visible='true' lat='0.5725981193013777' lon='-0.47145895064345883' />
     291  <node id='-2702' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true' lat='0.4568410898812919' lon='-0.3205714904354914' />
     292  <node id='-2701' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='0.5571915582097529' lon='-0.5362048813277858' />
     293  <node id='-2700' action='modify' timestamp='2011-01-07T11:23:53Z' visible='true' lat='1.2709835536657144' lon='0.08003439700279807' />
     294  <node id='-2699' action='modify' timestamp='2010-07-29T13:40:01Z' visible='true' lat='1.2565557346208394' lon='-0.6161828177515938' />
     295  <node id='-2698' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2398613304306438' lon='-0.2540338254051145' />
     296  <node id='-2697' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='1.2967486150834893' lon='-0.6197118375948121' />
     297  <node id='-2696' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.266683601921749' lon='-0.2729598910499693' />
     298  <node id='-2695' action='modify' timestamp='2011-01-12T11:14:40Z' visible='true' lat='1.2589618544954093' lon='-0.9475188772676437' />
     299  <node id='-2694' action='modify' timestamp='2010-07-29T14:09:05Z' visible='true' lat='1.2575518264888725' lon='-0.6238223321121841' />
     300  <node id='-2693' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true' lat='1.2601797339768999' lon='-0.11170384627957004' />
     301  <node id='-2692' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2150992195743422' lon='-0.356825666477535' />
     302  <node id='-2691' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2328109695166383' lon='-0.263918855039455' />
     303  <node id='-2690' action='modify' timestamp='2011-01-12T11:14:40Z' visible='true' lat='1.2485759024229186' lon='-0.9911360317985745' />
     304  <node id='-2689' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.224658912915551' lon='-0.3533722153502437' />
     305  <node id='-2687' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true' lat='1.2594175272580945' lon='-0.07823152844262751' />
     306  <node id='-2686' action='modify' timestamp='2010-07-27T12:36:40Z' visible='true' lat='0.5098664068538691' lon='-0.8434566707700334' />
     307  <node id='-2685' action='modify' timestamp='2010-07-29T13:40:01Z' visible='true' lat='1.282710772763742' lon='-0.008628009959354378' />
     308  <node id='-2683' action='modify' timestamp='2010-07-27T09:29:05Z' visible='true' lat='1.2511220151511462' lon='-0.7320422523816186' />
     309  <node id='-2682' action='modify' timestamp='2010-12-25T10:26:34Z' visible='true' lat='0.5044348742660963' lon='-0.9989567759208624' />
     310  <node id='-2681' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2765943076555244' lon='-0.008120263712818479' />
     311  <node id='-2680' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2646673860074633' lon='-0.4476669159774193' />
     312  <node id='-2679' action='modify' timestamp='2010-07-27T12:36:40Z' visible='true' lat='0.5434114196719333' lon='-0.8441939812716961' />
     313  <node id='-2678' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2308472640063721' lon='-0.014718475287570741' />
     314  <node id='-2677' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='0.4851621864738423' lon='-0.7270561974463569' />
     315  <node id='-2676' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2526122916292584' lon='-0.44404695459291144' />
     316  <node id='-2675' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2512312313714737' lon='-0.5447197648657947' />
     317  <node id='-2674' action='modify' timestamp='2010-12-25T10:26:34Z' visible='true' lat='0.5474557139090847' lon='-0.9695702194821937' />
     318  <node id='-2673' action='modify' timestamp='2011-01-07T10:51:09Z' visible='true' lat='1.1774490784381524' lon='0.1555247992884056' />
     319  <node id='-2672' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.1971565246022675' lon='-0.4369170296645056' />
     320  <node id='-2671' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.275915737114753' lon='-0.5300436220831383' />
     321  <node id='-2670' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2297483568170953' lon='-0.007827740824783989' />
     322  <node id='-2669' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='0.5496488296433026' lon='-0.7267388109604108' />
     323  <node id='-2668' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true' lat='0.605435420874733' lon='-0.3448087631812965' />
     324  <node id='-2667' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.275781090977838' lon='-0.546568254522835' />
     325  <node id='-2666' action='modify' timestamp='2011-01-07T11:23:54Z' visible='true' lat='1.2617685935794825' lon='0.08087232531089458' />
     326  <node id='-2665' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5246812379246835' lon='-0.7268616953377637' />
     327  <node id='-2664' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true' lat='0.5364624179501715' lon='-0.34808927621828917' />
     328  <node id='-2663' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='0.49271556989582166' lon='-0.5374152367836169' />
     329  <node id='-2662' action='modify' timestamp='2011-01-07T11:23:54Z' visible='true' lat='1.2215709394826235' lon='0.09064888321676708' />
     330  <node id='-2661' action='modify' timestamp='2010-09-22T13:12:44Z' visible='true' lat='0.4962494710947178' lon='-0.43132264543468835' />
     331  <node id='-2660' action='modify' timestamp='2010-09-20T10:45:24Z' visible='true' lat='0.42735192248939335' lon='-0.3347657019914653' />
     332  <node id='-2659' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='0.5652218787779187' lon='-0.5360541337339125' />
     333  <node id='-2658' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2425516464155335' lon='-0.6199786356011417' />
     334  <node id='-2657' action='modify' timestamp='2010-09-20T10:45:24Z' visible='true' lat='0.629538733230876' lon='-0.34680825829350925' />
     335  <node id='-2656' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='1.2887186361333964' lon='-0.6197513675104692' />
     336  <node id='-2655' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.254445854056236' lon='-0.26530642423909023' />
     337  <node id='-2654' action='modify' timestamp='2011-01-12T11:14:40Z' visible='true' lat='1.2619615306199525' lon='-0.9999843966172317' />
     338  <node id='-2653' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true' lat='1.2663911227420463' lon='-0.18286245616110167' />
     339  <node id='-2652' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true' lat='1.3101545976435667' lon='-0.09636272643430324' />
     340  <node id='-2651' action='modify' timestamp='2011-01-12T11:14:40Z' visible='true' lat='1.2471091727113264' lon='-0.9158603222875102' />
     341  <node id='-2650' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2625877434825457' lon='-0.35749048287704377' />
     342  <node id='-2649' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2597605399764995' lon='-0.2826565377155301' />
     343  <node id='-2647' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true' lat='1.2905262621831857' lon='-0.18171430522892046' />
     344  <node id='-2646' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true' lat='1.1968474292634066' lon='-0.09552572512933802' />
     345  <node id='-2644' action='modify' timestamp='2010-07-27T12:36:40Z' visible='true' lat='0.523223826047854' lon='-0.8437502628335302' />
     346  <node id='-2642' action='modify' timestamp='2010-07-29T14:09:05Z' visible='true' lat='1.2837068545502404' lon='-0.01626752431994469' />
     347  <node id='-2641' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.301922400665762' lon='-0.35867206180903993' />
     348  <node id='-2640' action='modify' timestamp='2011-01-03T14:45:18Z' visible='true' lat='0.4874691736657763' lon='-0.9741176354882405' />
     349  <node id='-2639' action='modify' timestamp='2010-12-25T10:26:34Z' visible='true' lat='0.5344281360880577' lon='-0.996683067917839' />
     350  <node id='-2638' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2625252296268583' lon='-0.43668002984136817' />
     351  <node id='-2637' action='modify' timestamp='2010-07-27T12:36:40Z' visible='true' lat='0.5577446789971441' lon='-0.8445090237510882' />
     352  <node id='-2636' action='modify' timestamp='2010-07-29T14:09:05Z' visible='true' lat='1.2368610312869788' lon='-0.0159750014319102' />
     353  <node id='-2635' action='modify' timestamp='2010-12-25T10:26:34Z' visible='true' lat='0.5455330066329904' lon='-1.0185561670727739' />
     354  <node id='-2634' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.3020751382559217' lon='-0.4385638749644542' />
     355  <node id='-2633' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2651979923717562' lon='-0.5259494867570569' />
     356  <node id='-2632' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2596570992598488' lon='-0.012468377232667693' />
     357  <node id='-2631' action='modify' timestamp='2010-12-25T10:26:34Z' visible='true' lat='0.5852467688263496' lon='-0.9658163772878166' />
     358  <node id='-2630' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.210295784968165' lon='-0.4450962012663346' />
     359  <node id='-2629' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2723406373692443' lon='-0.5268316812886622' />
     360  <node id='-2628' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5126468446539812' lon='-0.7315072177434289' />
     361  <node id='-2627' action='modify' timestamp='2011-01-07T10:51:09Z' visible='true' lat='1.2845891156615874' lon='0.13805871192349095' />
     362  <node id='-2626' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.2397670354254' lon='-0.44436545718409526' />
     363  <node id='-2625' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5200460703018414' lon='-0.5395340247280753' />
     364  <node id='-2624' action='modify' timestamp='2011-01-07T11:23:54Z' visible='true' lat='1.2783554980714653' lon='0.07584475546231549' />
     365  <node id='-2623' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5378578286191996' lon='-0.726796843445012' />
     366  <node id='-2622' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true' lat='0.5582861010949224' lon='-0.3441081291358731' />
     367  <node id='-2621' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='0.4860294934724764' lon='-0.5375407483791904' />
     368  <node id='-2620' action='modify' timestamp='2011-01-07T11:23:54Z' visible='true' lat='1.2865651385163364' lon='0.07467165583098041' />
     369  <node id='-2619' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true' lat='1.2175589707068741' lon='-0.6201016663810153' />
     370  <node id='-2618' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true' lat='0.44549163849532536' lon='-0.3364401313621299' />
     371  <node id='-2617' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='0.5019727922019308' lon='-0.5372414592104547' />
     372  <node id='-2616' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true' lat='1.250439207779967' lon='-0.615675071505058' />
     373  <node id='-2615' action='modify' timestamp='2010-09-20T10:45:24Z' visible='true' lat='0.6652063085443483' lon='-0.35094850905520364' />
     374  <node id='21733807' action='delete' timestamp='2010-09-02T23:27:15Z' uid='89943' user='Bengatzer' visible='true' version='6' changeset='5666931' lat='49.7784871' lon='11.5438208' />
     375  <node id='21733808' action='delete' timestamp='2010-09-02T23:27:55Z' uid='89943' user='Bengatzer' visible='true' version='6' changeset='5666931' lat='49.7773847' lon='11.5428194' />
     376  <node id='21733809' action='delete' timestamp='2009-09-07T19:05:41Z' uid='28476' user='Spoony' visible='true' version='3' changeset='2405545' lat='49.7726935' lon='11.5417753' />
     377  <node id='21733810' action='delete' timestamp='2009-09-07T19:05:41Z' uid='28476' user='Spoony' visible='true' version='3' changeset='2405545' lat='49.7709349' lon='11.5418467' />
     378  <node id='21733811' action='delete' timestamp='2009-02-07T14:15:30Z' uid='89943' user='Bengatzer' visible='true' version='11' changeset='226654' lat='49.7692918' lon='11.5427441' />
     379  <node id='21733812' action='delete' timestamp='2009-09-07T19:05:41Z' uid='28476' user='Spoony' visible='true' version='3' changeset='2405545' lat='49.7676389' lon='11.5442494' />
     380  <node id='26064507' action='delete' timestamp='2010-09-02T23:27:27Z' uid='89943' user='Bengatzer' visible='true' version='4' changeset='5666931' lat='49.7664745' lon='11.5448157' />
     381  <node id='26064508' action='delete' timestamp='2009-09-07T19:05:55Z' uid='28476' user='Spoony' visible='true' version='2' changeset='2405545' lat='49.7681008' lon='11.5438489' />
     382  <node id='26064509' action='delete' timestamp='2009-09-07T19:05:55Z' uid='28476' user='Spoony' visible='true' version='3' changeset='2405545' lat='49.77004' lon='11.5422295' />
     383  <node id='26064510' action='delete' timestamp='2009-09-07T19:05:55Z' uid='28476' user='Spoony' visible='true' version='3' changeset='2405545' lat='49.774951' lon='11.5422142' />
     384  <node id='26064512' action='delete' timestamp='2010-09-02T23:27:16Z' uid='89943' user='Bengatzer' visible='true' version='5' changeset='5666931' lat='49.7789702' lon='11.5448103' />
     385  <node id='298772089' action='delete' timestamp='2010-09-02T23:28:01Z' uid='89943' user='Bengatzer' visible='true' version='9' changeset='5666931' lat='49.7776779' lon='11.5429928' />
     386  <node id='298772147' action='delete' timestamp='2010-09-02T23:27:30Z' uid='89943' user='Bengatzer' visible='true' version='4' changeset='5666931' lat='49.7792716' lon='11.5461912' />
     387  <node id='298773429' action='delete' timestamp='2010-09-02T23:28:11Z' uid='89943' user='Bengatzer' visible='true' version='5' changeset='5666931' lat='49.7791426' lon='11.545449' />
     388  <node id='298773430' action='delete' timestamp='2010-09-02T23:27:30Z' uid='89943' user='Bengatzer' visible='true' version='4' changeset='5666931' lat='49.7786712' lon='11.54416' />
     389  <node id='300919273' action='modify' timestamp='2010-09-03T11:42:06Z' uid='89943' user='Bengatzer' visible='true' version='8' changeset='5669948' lat='1.2427834174932362' lon='-0.8478851741990798' />
     390  <node id='332209785' action='modify' timestamp='2010-09-02T23:28:02Z' uid='89943' user='Bengatzer' visible='true' version='4' changeset='5666931' lat='1.2942742408155512' lon='-0.8476231998474472' />
     391  <node id='332209790' action='delete' timestamp='2009-01-15T12:12:50Z' uid='89943' user='Bengatzer' visible='true' version='1' changeset='790294' lat='49.7758506' lon='11.5423957' />
     392  <node id='332209792' action='delete' timestamp='2009-01-15T12:12:50Z' uid='89943' user='Bengatzer' visible='true' version='1' changeset='790294' lat='49.7719111' lon='11.5417254' />
     393  <node id='332209794' action='delete' timestamp='2009-01-15T12:12:51Z' uid='89943' user='Bengatzer' visible='true' version='1' changeset='790294' lat='49.7714184' lon='11.5417458' />
     394  <node id='332209798' action='delete' timestamp='2009-01-15T12:12:52Z' uid='89943' user='Bengatzer' visible='true' version='1' changeset='790294' lat='49.769719' lon='11.5424267' />
     395  <node id='332209799' action='delete' timestamp='2010-09-02T23:27:54Z' uid='89943' user='Bengatzer' visible='true' version='2' changeset='5666931' lat='49.7670525' lon='11.5445844' />
     396  <node id='332209808' action='delete' timestamp='2010-09-02T23:27:28Z' uid='89943' user='Bengatzer' visible='true' version='6' changeset='5666931' lat='49.7782704' lon='11.543549' />
     397  <node id='385823326' action='delete' timestamp='2009-04-27T11:10:41Z' uid='89943' user='Bengatzer' visible='true' version='1' changeset='988256' lat='49.7668926' lon='11.544656' />
     398  <node id='385823357' action='delete' timestamp='2010-09-02T23:28:15Z' uid='89943' user='Bengatzer' visible='true' version='2' changeset='5666931' lat='49.7679263' lon='11.5440256' />
     399  <node id='893542805' action='delete' timestamp='2010-09-02T23:26:58Z' uid='89943' user='Bengatzer' visible='true' version='1' changeset='5666931' lat='49.7731997' lon='11.5418756' />
     400  <node id='893542831' action='delete' timestamp='2010-09-02T23:26:59Z' uid='89943' user='Bengatzer' visible='true' version='1' changeset='5666931' lat='49.77418' lon='11.5420643' />
     401  <node id='893542841' action='delete' timestamp='2010-09-02T23:26:59Z' uid='89943' user='Bengatzer' visible='true' version='1' changeset='5666931' lat='49.7691137' lon='11.5429093' />
     402  <node id='893542874' action='delete' timestamp='2010-09-02T23:27:01Z' uid='89943' user='Bengatzer' visible='true' version='1' changeset='5666931' lat='49.77561' lon='11.5423471' />
     403  <node id='893542944' action='delete' timestamp='2010-09-02T23:27:03Z' uid='89943' user='Bengatzer' visible='true' version='1' changeset='5666931' lat='49.7779982' lon='11.5432679' />
     404  <node id='893542950' action='delete' timestamp='2010-09-02T23:27:03Z' uid='89943' user='Bengatzer' visible='true' version='1' changeset='5666931' lat='1.1671778106571937' lon='0.03790392551329174' />
     405  <node id='893542980' action='delete' timestamp='2010-09-02T23:27:04Z' uid='89943' user='Bengatzer' visible='true' version='1' changeset='5666931' lat='49.7673709' lon='11.5444068' />
     406  <node id='893543065' action='delete' timestamp='2010-09-02T23:27:07Z' uid='89943' user='Bengatzer' visible='true' version='1' changeset='5666931' lat='49.7710574' lon='11.5418211' />
     407  <way id='-3559' timestamp='2010-07-27T09:49:02Z' visible='true'>
     408    <nd ref='-3543' />
     409    <nd ref='-3548' />
     410  </way>
     411  <way id='-3558' timestamp='2010-07-27T08:34:21Z' visible='true'>
     412    <nd ref='-3546' />
     413    <nd ref='-3556' />
     414  </way>
     415  <way id='-3557' action='modify' timestamp='2010-07-29T14:09:05Z' visible='true'>
     416    <nd ref='-3538' />
     417    <nd ref='-3544' />
     418  </way>
     419  <way id='-3555' timestamp='2010-07-27T09:49:02Z' visible='true'>
     420    <nd ref='-3556' />
     421    <nd ref='-3552' />
     422  </way>
     423  <way id='-3554' timestamp='2010-07-29T14:09:05Z' visible='true'>
     424    <nd ref='-3546' />
     425    <nd ref='-3537' />
     426  </way>
     427  <way id='-3551' timestamp='2010-07-27T09:49:02Z' visible='true'>
     428    <nd ref='-3552' />
     429    <nd ref='-3553' />
     430  </way>
     431  <way id='-3550' timestamp='2010-09-14T14:43:02Z' visible='true'>
     432    <nd ref='-3544' />
     433    <nd ref='-3540' />
     434  </way>
     435  <way id='-3547' timestamp='2010-07-27T09:49:02Z' visible='true'>
     436    <nd ref='-3548' />
     437    <nd ref='-3549' />
     438  </way>
     439  <way id='-3545' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     440    <nd ref='-3541' />
     441    <nd ref='-3546' />
     442  </way>
     443  <way id='-3542' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     444    <nd ref='-3543' />
     445    <nd ref='-3544' />
     446  </way>
     447  <way id='-3539' action='modify' timestamp='2010-07-29T14:09:05Z' visible='true'>
     448    <nd ref='-3560' />
     449    <nd ref='-3541' />
     450  </way>
     451  <way id='-3536' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     452    <nd ref='-3537' />
     453    <nd ref='-3538' />
     454  </way>
     455  <way id='-3499' timestamp='2010-07-27T08:34:21Z' visible='true'>
     456    <nd ref='-3482' />
     457    <nd ref='-3479' />
     458  </way>
     459  <way id='-3498' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     460    <nd ref='-3485' />
     461    <nd ref='-3483' />
     462  </way>
     463  <way id='-3497' timestamp='2010-07-27T09:49:02Z' visible='true'>
     464    <nd ref='-3486' />
     465    <nd ref='-3484' />
     466  </way>
     467  <way id='-3496' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     468    <nd ref='-3481' />
     469    <nd ref='-3480' />
     470  </way>
     471  <way id='-3495' timestamp='2010-07-27T09:49:02Z' visible='true'>
     472    <nd ref='-3481' />
     473    <nd ref='-3476' />
     474  </way>
     475  <way id='-3494' timestamp='2010-09-14T14:43:02Z' visible='true'>
     476    <nd ref='-3480' />
     477    <nd ref='-3478' />
     478  </way>
     479  <way id='-3493' timestamp='2010-07-27T09:49:02Z' visible='true'>
     480    <nd ref='-3479' />
     481    <nd ref='-3486' />
     482  </way>
     483  <way id='-3492' action='modify' timestamp='2010-07-29T14:09:05Z' visible='true'>
     484    <nd ref='-3483' />
     485    <nd ref='-3480' />
     486  </way>
     487  <way id='-3491' timestamp='2010-07-27T09:49:02Z' visible='true'>
     488    <nd ref='-3476' />
     489    <nd ref='-3487' />
     490  </way>
     491  <way id='-3490' timestamp='2010-07-29T14:09:05Z' visible='true'>
     492    <nd ref='-3478' />
     493    <nd ref='-3477' />
     494  </way>
     495  <way id='-3489' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     496    <nd ref='-3477' />
     497    <nd ref='-3482' />
     498  </way>
     499  <way id='-3488' timestamp='2010-07-29T14:09:05Z' visible='true'>
     500    <nd ref='-3482' />
     501    <nd ref='-3485' />
     502  </way>
     503  <way id='-3316' action='modify' visible='true'>
     504    <nd ref='-3313' />
     505    <nd ref='-3315' />
     506    <nd ref='-3318' />
     507    <nd ref='-3321' />
     508    <nd ref='-3324' />
     509    <tag k='type' v='grid' />
     510  </way>
     511  <way id='-3267' action='modify' visible='true'>
     512    <nd ref='-3264' />
     513    <nd ref='-3266' />
     514    <nd ref='-3272' />
     515    <nd ref='-3275' />
     516    <nd ref='-3269' />
     517    <tag k='type' v='grid' />
     518  </way>
     519  <way id='-3252' action='modify' visible='true'>
     520    <nd ref='-3249' />
     521    <nd ref='-3251' />
     522    <nd ref='-3254' />
     523    <nd ref='-3257' />
     524    <nd ref='-3260' />
     525    <tag k='type' v='grid' />
     526  </way>
     527  <way id='-3169' action='modify' visible='true'>
     528    <nd ref='-3166' />
     529    <nd ref='-3278' />
     530    <nd ref='-3216' />
     531    <nd ref='-3213' />
     532    <nd ref='-3168' />
     533    <tag k='type' v='grid' />
     534  </way>
     535  <way id='-3164' action='modify' visible='true'>
     536    <nd ref='-3161' />
     537    <nd ref='-3281' />
     538    <nd ref='-3219' />
     539    <nd ref='-3210' />
     540    <nd ref='-3163' />
     541    <tag k='type' v='grid' />
     542  </way>
     543  <way id='-3159' action='modify' visible='true'>
     544    <nd ref='-3156' />
     545    <nd ref='-3284' />
     546    <nd ref='-3222' />
     547    <nd ref='-3207' />
     548    <nd ref='-3158' />
     549    <tag k='type' v='grid' />
     550  </way>
     551  <way id='-3154' action='modify' visible='true'>
     552    <nd ref='-3151' />
     553    <nd ref='-3287' />
     554    <nd ref='-3225' />
     555    <nd ref='-3204' />
     556    <nd ref='-3153' />
     557    <tag k='type' v='grid' />
     558  </way>
     559  <way id='-3149' action='modify' visible='true'>
     560    <nd ref='-3146' />
     561    <nd ref='-3290' />
     562    <nd ref='-3228' />
     563    <nd ref='-3201' />
     564    <nd ref='-3148' />
     565    <tag k='type' v='grid' />
     566  </way>
     567  <way id='-3144' action='modify' visible='true'>
     568    <nd ref='-3141' />
     569    <nd ref='-3293' />
     570    <nd ref='-3231' />
     571    <nd ref='-3198' />
     572    <nd ref='-3143' />
     573    <tag k='type' v='grid' />
     574  </way>
     575  <way id='-3139' action='modify' visible='true'>
     576    <nd ref='-3136' />
     577    <nd ref='-3296' />
     578    <nd ref='-3234' />
     579    <nd ref='-3195' />
     580    <nd ref='-3138' />
     581    <tag k='type' v='grid' />
     582  </way>
     583  <way id='-3134' action='modify' visible='true'>
     584    <nd ref='-3131' />
     585    <nd ref='-3308' />
     586    <nd ref='-3305' />
     587    <nd ref='-3302' />
     588    <nd ref='-3299' />
     589    <nd ref='-3296' />
     590    <nd ref='-3293' />
     591    <nd ref='-3290' />
     592    <nd ref='-3287' />
     593    <nd ref='-3284' />
     594    <nd ref='-3281' />
     595    <nd ref='-3278' />
     596    <nd ref='-3315' />
     597    <nd ref='-3251' />
     598    <nd ref='-3275' />
     599    <nd ref='-3133' />
     600    <tag k='type' v='grid' />
     601  </way>
     602  <way id='-3129' action='modify' visible='true'>
     603    <nd ref='-3126' />
     604    <nd ref='-3192' />
     605    <nd ref='-3237' />
     606    <nd ref='-3299' />
     607    <nd ref='-3128' />
     608    <tag k='type' v='grid' />
     609  </way>
     610  <way id='-3124' action='modify' visible='true'>
     611    <nd ref='-3121' />
     612    <nd ref='-3189' />
     613    <nd ref='-3240' />
     614    <nd ref='-3302' />
     615    <nd ref='-3123' />
     616    <tag k='type' v='grid' />
     617  </way>
     618  <way id='-3119' action='modify' visible='true'>
     619    <nd ref='-3116' />
     620    <nd ref='-3305' />
     621    <nd ref='-3243' />
     622    <nd ref='-3186' />
     623    <nd ref='-3118' />
     624    <tag k='type' v='grid' />
     625  </way>
     626  <way id='-3111' action='modify' visible='true'>
     627    <nd ref='-3108' />
     628    <nd ref='-3110' />
     629    <nd ref='-3186' />
     630    <nd ref='-3189' />
     631    <nd ref='-3192' />
     632    <nd ref='-3195' />
     633    <nd ref='-3198' />
     634    <nd ref='-3201' />
     635    <nd ref='-3204' />
     636    <nd ref='-3207' />
     637    <nd ref='-3210' />
     638    <nd ref='-3213' />
     639    <nd ref='-3321' />
     640    <nd ref='-3257' />
     641    <nd ref='-3266' />
     642    <nd ref='-3113' />
     643    <tag k='type' v='grid' />
     644  </way>
     645  <way id='-3103' action='modify' visible='true'>
     646    <nd ref='-3100' />
     647    <nd ref='-3102' />
     648    <nd ref='-3243' />
     649    <nd ref='-3240' />
     650    <nd ref='-3237' />
     651    <nd ref='-3234' />
     652    <nd ref='-3231' />
     653    <nd ref='-3228' />
     654    <nd ref='-3225' />
     655    <nd ref='-3222' />
     656    <nd ref='-3219' />
     657    <nd ref='-3216' />
     658    <nd ref='-3318' />
     659    <nd ref='-3254' />
     660    <nd ref='-3272' />
     661    <nd ref='-3105' />
     662    <tag k='type' v='grid' />
     663  </way>
     664  <way id='-3098' action='modify' visible='true'>
     665    <nd ref='-3095' />
     666    <nd ref='-3308' />
     667    <nd ref='-3102' />
     668    <nd ref='-3110' />
     669    <nd ref='-3097' />
     670    <tag k='type' v='grid' />
     671  </way>
     672  <way id='-3089' action='modify' visible='true'>
     673    <nd ref='-3087' />
     674    <nd ref='-3131' />
     675    <nd ref='-3100' />
     676    <nd ref='-3108' />
     677    <nd ref='-3088' />
     678    <nd ref='-3097' />
     679    <nd ref='-3118' />
     680    <nd ref='-3121' />
     681    <nd ref='-3126' />
     682    <nd ref='-3138' />
     683    <nd ref='-3143' />
     684    <nd ref='-3148' />
     685    <nd ref='-3153' />
     686    <nd ref='-3158' />
     687    <nd ref='-3163' />
     688    <nd ref='-3168' />
     689    <nd ref='-3324' />
     690    <nd ref='-3260' />
     691    <nd ref='-3264' />
     692    <nd ref='-3090' />
     693    <nd ref='-3113' />
     694    <nd ref='-3105' />
     695    <nd ref='-3133' />
     696    <nd ref='-3092' />
     697    <nd ref='-3269' />
     698    <nd ref='-3249' />
     699    <nd ref='-3313' />
     700    <nd ref='-3166' />
     701    <nd ref='-3161' />
     702    <nd ref='-3156' />
     703    <nd ref='-3151' />
     704    <nd ref='-3146' />
     705    <nd ref='-3141' />
     706    <nd ref='-3136' />
     707    <nd ref='-3128' />
     708    <nd ref='-3123' />
     709    <nd ref='-3116' />
     710    <nd ref='-3095' />
     711    <nd ref='-3087' />
     712    <tag k='type' v='grid' />
     713  </way>
     714  <way id='-3016' timestamp='2010-07-29T14:09:05Z' visible='true'>
     715    <nd ref='-2636' />
     716    <nd ref='-2678' />
     717  </way>
     718  <way id='-3015' action='modify' timestamp='2010-12-25T10:26:34Z' visible='true'>
     719    <nd ref='-2755' />
     720    <nd ref='-2631' />
     721  </way>
     722  <way id='-3014' timestamp='2010-07-27T09:49:02Z' visible='true'>
     723    <nd ref='-2656' />
     724    <nd ref='-2697' />
     725  </way>
     726  <way id='-3013' timestamp='2010-07-27T08:34:21Z' visible='true'>
     727    <nd ref='-2753' />
     728    <nd ref='-2721' />
     729  </way>
     730  <way id='-3012' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true'>
     731    <nd ref='-2735' />
     732    <nd ref='-2816' />
     733  </way>
     734  <way id='-3011' timestamp='2010-07-29T14:09:05Z' visible='true'>
     735    <nd ref='-2798' />
     736    <nd ref='-2670' />
     737  </way>
     738  <way id='-3010' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     739    <nd ref='-2628' />
     740    <nd ref='-2714' />
     741  </way>
     742  <way id='-3009' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     743    <nd ref='-2633' />
     744    <nd ref='-2629' />
     745  </way>
     746  <way id='-3008' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true'>
     747    <nd ref='-2808' />
     748    <nd ref='-2687' />
     749  </way>
     750  <way id='-3007' timestamp='2011-01-07T10:51:09Z' visible='true'>
     751    <nd ref='-2751' />
     752    <nd ref='-2710' />
     753  </way>
     754  <way id='-3006' action='modify' timestamp='2010-09-22T13:12:44Z' visible='true'>
     755    <nd ref='-2661' />
     756    <nd ref='-2703' />
     757  </way>
     758  <way id='-3005' timestamp='2010-07-27T08:34:21Z' visible='true'>
     759    <nd ref='-2748' />
     760    <nd ref='-2799' />
     761  </way>
     762  <way id='-3004' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true'>
     763    <nd ref='-2816' />
     764    <nd ref='-2732' />
     765  </way>
     766  <way id='-3002' timestamp='2010-07-27T09:49:02Z' visible='true'>
     767    <nd ref='-2752' />
     768    <nd ref='-2701' />
     769  </way>
     770  <way id='-3001' timestamp='2010-07-27T08:34:21Z' visible='true'>
     771    <nd ref='-2696' />
     772    <nd ref='-2655' />
     773  </way>
     774  <way id='-2999' timestamp='2010-07-27T08:34:21Z' visible='true'>
     775    <nd ref='-2809' />
     776    <nd ref='-2641' />
     777  </way>
     778  <way id='-2998' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     779    <nd ref='-2779' />
     780    <nd ref='-2814' />
     781  </way>
     782  <way id='-2996' timestamp='2010-07-27T12:36:40Z' visible='true'>
     783    <nd ref='-2679' />
     784    <nd ref='-2644' />
     785  </way>
     786  <way id='-2995' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     787    <nd ref='-2655' />
     788    <nd ref='-2698' />
     789  </way>
     790  <way id='-2994' timestamp='2010-07-27T09:29:05Z' visible='true'>
     791    <nd ref='-2795' />
     792    <nd ref='-2764' />
     793  </way>
     794  <way id='-2993' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     795    <nd ref='-2649' />
     796    <nd ref='-2696' />
     797  </way>
     798  <way id='-2992' timestamp='2010-07-28T12:06:45Z' visible='true'>
     799    <nd ref='-2653' />
     800    <nd ref='-2647' />
     801  </way>
     802  <way id='-2991' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true'>
     803    <nd ref='-2742' />
     804    <nd ref='-2781' />
     805  </way>
     806  <way id='-2990' timestamp='2011-01-07T11:23:54Z' visible='true'>
     807    <nd ref='-2754' />
     808    <nd ref='-2786' />
     809  </way>
     810  <way id='-2989' timestamp='2010-07-27T08:34:21Z' visible='true'>
     811    <nd ref='-2689' />
     812    <nd ref='-2812' />
     813  </way>
     814  <way id='-2988' action='modify' timestamp='2010-09-20T10:45:24Z' visible='true'>
     815    <nd ref='-2781' />
     816    <nd ref='-2749' />
     817  </way>
     818  <way id='-2987' timestamp='2011-01-07T11:23:54Z' visible='true'>
     819    <nd ref='-2624' />
     820    <nd ref='-2790' />
     821  </way>
     822  <way id='-2986' timestamp='2011-01-12T11:14:40Z' visible='true'>
     823    <nd ref='-2695' />
     824    <nd ref='-2737' />
     825  </way>
     826  <way id='-2985' timestamp='2010-07-27T08:34:21Z' visible='true'>
     827    <nd ref='-2650' />
     828    <nd ref='-2773' />
     829  </way>
     830  <way id='-2984' action='modify' timestamp='2010-09-20T10:45:24Z' visible='true'>
     831    <nd ref='-2749' />
     832    <nd ref='-2664' />
     833  </way>
     834  <way id='-2983' timestamp='2011-01-07T11:23:54Z' visible='true'>
     835    <nd ref='-2790' />
     836    <nd ref='-2707' />
     837  </way>
     838  <way id='-2982' timestamp='2010-09-22T13:12:44Z' visible='true'>
     839    <nd ref='-2706' />
     840    <nd ref='-2746' />
     841  </way>
     842  <way id='-2981' timestamp='2010-07-27T09:49:02Z' visible='true'>
     843    <nd ref='-2617' />
     844    <nd ref='-2663' />
     845  </way>
     846  <way id='-2980' timestamp='2010-07-27T08:34:21Z' visible='true'>
     847    <nd ref='-2658' />
     848    <nd ref='-2820' />
     849  </way>
     850  <way id='-2979' timestamp='2010-07-27T08:34:21Z' visible='true'>
     851    <nd ref='-2638' />
     852    <nd ref='-2761' />
     853  </way>
     854  <way id='-2978' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     855    <nd ref='-2678' />
     856    <nd ref='-2798' />
     857  </way>
     858  <way id='-2977' timestamp='2010-07-27T09:49:02Z' visible='true'>
     859    <nd ref='-2623' />
     860    <nd ref='-2669' />
     861  </way>
     862  <way id='-2976' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     863    <nd ref='-2780' />
     864    <nd ref='-2741' />
     865  </way>
     866  <way id='-2975' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     867    <nd ref='-2753' />
     868    <nd ref='-2626' />
     869  </way>
     870  <way id='-2974' timestamp='2010-09-22T07:22:37Z' visible='true'>
     871    <nd ref='-2652' />
     872    <nd ref='-2816' />
     873  </way>
     874  <way id='-2973' timestamp='2011-01-04T18:56:52Z' visible='true'>
     875    <nd ref='-2719' />
     876    <nd ref='-2802' />
     877  </way>
     878  <way id='-2972' timestamp='2010-07-27T08:34:21Z' visible='true'>
     879    <nd ref='-2758' />
     880    <nd ref='-2797' />
     881  </way>
     882  <way id='-2971' action='modify' timestamp='2010-07-29T14:09:05Z' visible='true'>
     883    <nd ref='-2699' />
     884    <nd ref='-2741' />
     885  </way>
     886  <way id='-2970' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     887    <nd ref='-2629' />
     888    <nd ref='-2671' />
     889  </way>
     890  <way id='-2969' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true'>
     891    <nd ref='-2732' />
     892    <nd ref='-2729' />
     893  </way>
     894  <way id='-2968' timestamp='2011-01-07T10:51:09Z' visible='true'>
     895    <nd ref='-2627' />
     896    <nd ref='-2751' />
     897  </way>
     898  <way id='-2967' timestamp='2010-09-14T14:43:02Z' visible='true'>
     899    <nd ref='-2665' />
     900    <nd ref='-2793' />
     901  </way>
     902  <way id='-2966' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     903    <nd ref='-2708' />
     904    <nd ref='-2675' />
     905  </way>
     906  <way id='-2965' timestamp='2010-09-22T07:22:37Z' visible='true'>
     907    <nd ref='-2769' />
     908    <nd ref='-2646' />
     909  </way>
     910  <way id='-2963' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     911    <nd ref='-2783' />
     912    <nd ref='-2815' />
     913  </way>
     914  <way id='-2962' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     915    <nd ref='-2681' />
     916    <nd ref='-2685' />
     917  </way>
     918  <way id='-2960' timestamp='2010-07-27T08:34:21Z' visible='true'>
     919    <nd ref='-2770' />
     920    <nd ref='-2809' />
     921  </way>
     922  <way id='-2959' timestamp='2010-07-27T08:34:21Z' visible='true'>
     923    <nd ref='-2698' />
     924    <nd ref='-2819' />
     925  </way>
     926  <way id='-2957' timestamp='2010-07-27T12:36:40Z' visible='true'>
     927    <nd ref='-2644' />
     928    <nd ref='-2686' />
     929  </way>
     930  <way id='-2956' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     931    <nd ref='-2740' />
     932    <nd ref='-2774' />
     933  </way>
     934  <way id='-2955' action='modify' timestamp='2010-12-25T10:26:34Z' visible='true'>
     935    <nd ref='-2755' />
     936    <nd ref='-2801' />
     937  </way>
     938  <way id='-2954' action='modify' timestamp='2010-07-27T09:29:05Z' visible='true'>
     939    <nd ref='-2675' />
     940    <nd ref='-2760' />
     941  </way>
     942  <way id='-2953' timestamp='2010-07-27T08:34:21Z' visible='true'>
     943    <nd ref='-2691' />
     944    <nd ref='-2698' />
     945  </way>
     946  <way id='-2952' timestamp='2010-07-28T12:06:45Z' visible='true'>
     947    <nd ref='-2817' />
     948    <nd ref='-2739' />
     949  </way>
     950  <way id='-2951' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     951    <nd ref='-2757' />
     952    <nd ref='-2792' />
     953  </way>
     954  <way id='-2950' timestamp='2011-01-12T11:14:40Z' visible='true'>
     955    <nd ref='-2818' />
     956    <nd ref='-2654' />
     957  </way>
     958  <way id='-2949' timestamp='2010-07-27T08:34:21Z' visible='true'>
     959    <nd ref='-2692' />
     960    <nd ref='-2689' />
     961  </way>
     962  <way id='-2948' action='modify' timestamp='2010-07-29T14:09:05Z' visible='true'>
     963    <nd ref='-2815' />
     964    <nd ref='-2712' />
     965    <nd ref='-2788' />
     966  </way>
     967  <way id='-2947' timestamp='2011-01-07T11:23:54Z' visible='true'>
     968    <nd ref='-2620' />
     969    <nd ref='-2624' />
     970  </way>
     971  <way id='-2946' timestamp='2011-01-12T11:14:40Z' visible='true'>
     972    <nd ref='-2737' />
     973    <nd ref='-2818' />
     974  </way>
     975  <way id='-2945' timestamp='2010-07-27T08:34:21Z' visible='true'>
     976    <nd ref='-2733' />
     977    <nd ref='-2650' />
     978  </way>
     979  <way id='-2944' timestamp='2010-09-20T10:45:24Z' visible='true'>
     980    <nd ref='-2668' />
     981    <nd ref='-2657' />
     982  </way>
     983  <way id='-2943' timestamp='2011-01-07T11:23:54Z' visible='true'>
     984    <nd ref='-2666' />
     985    <nd ref='-2700' />
     986  </way>
     987  <way id='-2942' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     988    <nd ref='-2770' />
     989    <nd ref='-2767' />
     990  </way>
     991  <way id='-2941' timestamp='2010-07-27T09:49:02Z' visible='true'>
     992    <nd ref='-2701' />
     993    <nd ref='-2659' />
     994  </way>
     995  <way id='-2940' timestamp='2011-01-07T11:23:54Z' visible='true'>
     996    <nd ref='-2700' />
     997    <nd ref='-2624' />
     998  </way>
     999  <way id='-2939' timestamp='2010-07-27T09:49:02Z' visible='true'>
     1000    <nd ref='-2780' />
     1001    <nd ref='-2656' />
     1002  </way>
     1003  <way id='-2938' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1004    <nd ref='-2800' />
     1005    <nd ref='-2634' />
     1006  </way>
     1007  <way id='-2937' timestamp='2010-07-29T14:09:05Z' visible='true'>
     1008    <nd ref='-2759' />
     1009    <nd ref='-2681' />
     1010  </way>
     1011  <way id='-2936' timestamp='2010-07-27T09:49:02Z' visible='true'>
     1012    <nd ref='-2677' />
     1013    <nd ref='-2718' />
     1014  </way>
     1015  <way id='-2935' timestamp='2010-07-29T14:09:05Z' visible='true'>
     1016    <nd ref='-2658' />
     1017    <nd ref='-2616' />
     1018  </way>
     1019  <way id='-2934' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1020    <nd ref='-2713' />
     1021    <nd ref='-2626' />
     1022  </way>
     1023  <way id='-2933' action='modify' timestamp='2010-07-29T14:09:05Z' visible='true'>
     1024    <nd ref='-2763' />
     1025    <nd ref='-2802' />
     1026  </way>
     1027  <way id='-2932' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1028    <nd ref='-2789' />
     1029    <nd ref='-2750' />
     1030  </way>
     1031  <way id='-2931' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1032    <nd ref='-2616' />
     1033    <nd ref='-2699' />
     1034  </way>
     1035  <way id='-2930' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1036    <nd ref='-2799' />
     1037    <nd ref='-2716' />
     1038  </way>
     1039  <way id='-2929' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true'>
     1040    <nd ref='-2729' />
     1041    <nd ref='-2772' />
     1042  </way>
     1043  <way id='-2928' timestamp='2011-01-07T10:51:09Z' visible='true'>
     1044    <nd ref='-2715' />
     1045    <nd ref='-2673' />
     1046  </way>
     1047  <way id='-2927' action='modify' timestamp='2010-07-29T14:09:05Z' visible='true'>
     1048    <nd ref='-2750' />
     1049    <nd ref='-2665' />
     1050  </way>
     1051  <way id='-2926' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1052    <nd ref='-2716' />
     1053    <nd ref='-2675' />
     1054  </way>
     1055  <way id='-2925' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true'>
     1056    <nd ref='-2687' />
     1057    <nd ref='-2729' />
     1058    <nd ref='-2693' />
     1059  </way>
     1060  <way id='-2924' timestamp='2010-09-22T13:12:44Z' visible='true'>
     1061    <nd ref='-2703' />
     1062    <nd ref='-2782' />
     1063  </way>
     1064  <way id='-2923' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1065    <nd ref='-2633' />
     1066    <nd ref='-2748' />
     1067  </way>
     1068  <way id='-2922' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true'>
     1069    <nd ref='-2769' />
     1070    <nd ref='-2808' />
     1071  </way>
     1072  <way id='-2920' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1073    <nd ref='-2806' />
     1074    <nd ref='-2770' />
     1075  </way>
     1076  <way id='-2919' timestamp='2010-09-20T10:45:24Z' visible='true'>
     1077    <nd ref='-2618' />
     1078    <nd ref='-2660' />
     1079  </way>
     1080  <way id='-2918' action='modify' timestamp='2010-12-25T10:26:34Z' visible='true'>
     1081    <nd ref='-2682' />
     1082    <nd ref='-2635' />
     1083  </way>
     1084  <way id='-2917' timestamp='2010-07-27T10:28:17Z' visible='true'>
     1085    <nd ref='-2667' />
     1086    <nd ref='-2756' />
     1087  </way>
     1088  <way id='-2916' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1089    <nd ref='-2774' />
     1090    <nd ref='-2814' />
     1091  </way>
     1092  <way id='-2915' action='modify' timestamp='2010-12-25T10:26:34Z' visible='true'>
     1093    <nd ref='-2635' />
     1094    <nd ref='-2755' />
     1095  </way>
     1096  <way id='-2914' timestamp='2010-07-27T09:29:05Z' visible='true'>
     1097    <nd ref='-2760' />
     1098    <nd ref='-2708' />
     1099  </way>
     1100  <way id='-2913' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1101    <nd ref='-2819' />
     1102    <nd ref='-2740' />
     1103  </way>
     1104  <way id='-2912' timestamp='2010-07-27T09:29:05Z' visible='true'>
     1105    <nd ref='-2764' />
     1106    <nd ref='-2803' />
     1107  </way>
     1108  <way id='-2911' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1109    <nd ref='-2792' />
     1110    <nd ref='-2796' />
     1111  </way>
     1112  <way id='-2910' timestamp='2011-01-12T11:14:40Z' visible='true'>
     1113    <nd ref='-2654' />
     1114    <nd ref='-2690' />
     1115  </way>
     1116  <way id='-2909' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1117    <nd ref='-2730' />
     1118    <nd ref='-2692' />
     1119  </way>
     1120  <way id='-2908' timestamp='2010-07-27T10:49:22Z' visible='true'>
     1121    <nd ref='-2676' />
     1122    <nd ref='-2626' />
     1123  </way>
     1124  <way id='-2907' timestamp='2011-01-07T10:51:09Z' visible='true'>
     1125    <nd ref='-2794' />
     1126    <nd ref='-2627' />
     1127  </way>
     1128  <way id='-2906' timestamp='2011-01-12T11:14:40Z' visible='true'>
     1129    <nd ref='-2690' />
     1130    <nd ref='-2731' />
     1131  </way>
     1132  <way id='-2905' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1133    <nd ref='-2812' />
     1134    <nd ref='-2733' />
     1135  </way>
     1136  <way id='-2904' timestamp='2010-09-20T10:45:24Z' visible='true'>
     1137    <nd ref='-2657' />
     1138    <nd ref='-2615' />
     1139  </way>
     1140  <way id='-2903' timestamp='2011-01-07T11:23:54Z' visible='true'>
     1141    <nd ref='-2754' />
     1142    <nd ref='-2666' />
     1143  </way>
     1144  <way id='-2902' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1145    <nd ref='-2727' />
     1146    <nd ref='-2770' />
     1147  </way>
     1148  <way id='-2901' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1149    <nd ref='-2744' />
     1150    <nd ref='-2704' />
     1151  </way>
     1152  <way id='-2900' action='modify' timestamp='2010-09-22T13:12:44Z' visible='true'>
     1153    <nd ref='-2743' />
     1154    <nd ref='-2706' />
     1155  </way>
     1156  <way id='-2899' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1157    <nd ref='-2744' />
     1158    <nd ref='-2634' />
     1159  </way>
     1160  <way id='-2898' timestamp='2010-09-14T14:43:02Z' visible='true'>
     1161    <nd ref='-2726' />
     1162    <nd ref='-2642' />
     1163  </way>
     1164  <way id='-2897' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1165    <nd ref='-2736' />
     1166    <nd ref='-2658' />
     1167  </way>
     1168  <way id='-2896' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1169    <nd ref='-2676' />
     1170    <nd ref='-2638' />
     1171  </way>
     1172  <way id='-2895' timestamp='2010-09-14T14:43:02Z' visible='true'>
     1173    <nd ref='-2802' />
     1174    <nd ref='-2636' />
     1175  </way>
     1176  <way id='-2894' timestamp='2010-07-29T14:09:05Z' visible='true'>
     1177    <nd ref='-2758' />
     1178    <nd ref='-2789' />
     1179  </way>
     1180  <way id='-2893' timestamp='2010-07-30T09:00:52Z' visible='true'>
     1181    <nd ref='-2792' />
     1182    <nd ref='-2672' />
     1183  </way>
     1184  <way id='-2892' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1185    <nd ref='-2799' />
     1186    <nd ref='-2633' />
     1187  </way>
     1188  <way id='-2891' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1189    <nd ref='-2740' />
     1190    <nd ref='-2691' />
     1191  </way>
     1192  <way id='-2890' timestamp='2011-01-07T10:51:09Z' visible='true'>
     1193    <nd ref='-2710' />
     1194    <nd ref='-2715' />
     1195  </way>
     1196  <way id='-2889' timestamp='2010-07-29T14:09:05Z' visible='true'>
     1197    <nd ref='-2793' />
     1198    <nd ref='-2628' />
     1199  </way>
     1200  <way id='-2888' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1201    <nd ref='-2671' />
     1202    <nd ref='-2787' />
     1203  </way>
     1204  <way id='-2887' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true'>
     1205    <nd ref='-2693' />
     1206    <nd ref='-2735' />
     1207  </way>
     1208  <way id='-2886' timestamp='2010-07-27T09:49:02Z' visible='true'>
     1209    <nd ref='-2669' />
     1210    <nd ref='-2711' />
     1211  </way>
     1212  <way id='-2885' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1213    <nd ref='-2787' />
     1214    <nd ref='-2633' />
     1215  </way>
     1216  <way id='-2884' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1217    <nd ref='-2766' />
     1218    <nd ref='-2759' />
     1219  </way>
     1220  <way id='-2882' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1221    <nd ref='-2625' />
     1222    <nd ref='-2791' />
     1223    <nd ref='-2783' />
     1224  </way>
     1225  <way id='-2881' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true'>
     1226    <nd ref='-2618' />
     1227    <nd ref='-2784' />
     1228    <nd ref='-2742' />
     1229    <nd ref='-2702' />
     1230    <nd ref='-2618' />
     1231  </way>
     1232  <way id='-2880' timestamp='2010-12-25T10:26:34Z' visible='true'>
     1233    <nd ref='-2765' />
     1234    <nd ref='-2722' />
     1235  </way>
     1236  <way id='-2879' timestamp='2010-07-27T12:36:40Z' visible='true'>
     1237    <nd ref='-2637' />
     1238    <nd ref='-2679' />
     1239  </way>
     1240  <way id='-2878' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1241    <nd ref='-2738' />
     1242    <nd ref='-2740' />
     1243  </way>
     1244  <way id='-2877' action='modify' timestamp='2010-12-25T10:26:34Z' visible='true'>
     1245    <nd ref='-2674' />
     1246    <nd ref='-2639' />
     1247    <nd ref='-2682' />
     1248    <nd ref='-2640' />
     1249    <nd ref='-2765' />
     1250    <nd ref='-2805' />
     1251    <nd ref='-2674' />
     1252    <tag k='junction' v='roundabout' />
     1253  </way>
     1254  <way id='-2876' timestamp='2010-07-27T09:29:05Z' visible='true'>
     1255    <nd ref='-2683' />
     1256    <nd ref='-2724' />
     1257  </way>
     1258  <way id='-2875' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1259    <nd ref='-2696' />
     1260    <nd ref='-2779' />
     1261  </way>
     1262  <way id='-2874' timestamp='2010-07-27T09:29:05Z' visible='true'>
     1263    <nd ref='-2803' />
     1264    <nd ref='-2683' />
     1265  </way>
     1266  <way id='-2873' timestamp='2010-07-27T10:49:22Z' visible='true'>
     1267    <nd ref='-2744' />
     1268    <nd ref='-2761' />
     1269  </way>
     1270  <way id='-2872' action='modify' timestamp='2010-07-29T13:40:01Z' visible='true'>
     1271    <nd ref='-2778' />
     1272    <nd ref='-2653' />
     1273    <nd ref='-2776' />
     1274    <nd ref='-2739' />
     1275    <nd ref='-2778' />
     1276    <tag k='junction' v='roundabout' />
     1277  </way>
     1278  <way id='-2871' timestamp='2010-07-27T10:49:22Z' visible='true'>
     1279    <nd ref='-2721' />
     1280    <nd ref='-2630' />
     1281  </way>
     1282  <way id='-2870' timestamp='2011-01-07T10:51:09Z' visible='true'>
     1283    <nd ref='-2673' />
     1284    <nd ref='-2794' />
     1285  </way>
     1286  <way id='-2869' timestamp='2011-01-12T11:14:40Z' visible='true'>
     1287    <nd ref='-2731' />
     1288    <nd ref='-2695' />
     1289  </way>
     1290  <way id='-2868' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1291    <nd ref='-2773' />
     1292    <nd ref='-2812' />
     1293  </way>
     1294  <way id='-2867' timestamp='2010-07-29T14:09:05Z' visible='true'>
     1295    <nd ref='-2788' />
     1296    <nd ref='-2625' />
     1297  </way>
     1298  <way id='-2866' timestamp='2011-01-07T11:23:54Z' visible='true'>
     1299    <nd ref='-2662' />
     1300    <nd ref='-2786' />
     1301  </way>
     1302  <way id='-2865' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1303    <nd ref='-2650' />
     1304    <nd ref='-2727' />
     1305  </way>
     1306  <way id='-2864' timestamp='2010-07-27T09:49:02Z' visible='true'>
     1307    <nd ref='-2663' />
     1308    <nd ref='-2621' />
     1309  </way>
     1310  <way id='-2863' timestamp='2010-09-22T13:12:44Z' visible='true'>
     1311    <nd ref='-2746' />
     1312    <nd ref='-2743' />
     1313  </way>
     1314  <way id='-2862' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1315    <nd ref='-2717' />
     1316    <nd ref='-2800' />
     1317  </way>
     1318  <way id='-2861' action='modify' timestamp='2010-07-29T14:09:05Z' visible='true'>
     1319    <nd ref='-2685' />
     1320    <nd ref='-2726' />
     1321  </way>
     1322  <way id='-2860' timestamp='2010-07-27T09:49:02Z' visible='true'>
     1323    <nd ref='-2785' />
     1324    <nd ref='-2619' />
     1325  </way>
     1326  <way id='-2859' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1327    <nd ref='-2680' />
     1328    <nd ref='-2676' />
     1329  </way>
     1330  <way id='-2858' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1331    <nd ref='-2759' />
     1332    <nd ref='-2632' />
     1333  </way>
     1334  <way id='-2857' timestamp='2010-07-27T09:49:02Z' visible='true'>
     1335    <nd ref='-2797' />
     1336    <nd ref='-2677' />
     1337  </way>
     1338  <way id='-2856' timestamp='2010-07-29T14:09:05Z' visible='true'>
     1339    <nd ref='-2694' />
     1340    <nd ref='-2736' />
     1341  </way>
     1342  <way id='-2855' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1343    <nd ref='-2713' />
     1344    <nd ref='-2721' />
     1345  </way>
     1346  <way id='-2854' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1347    <nd ref='-2814' />
     1348    <nd ref='-2649' />
     1349  </way>
     1350  <way id='-2853' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1351    <nd ref='-2670' />
     1352    <nd ref='-2763' />
     1353  </way>
     1354  <way id='-2852' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1355    <nd ref='-2623' />
     1356    <nd ref='-2665' />
     1357  </way>
     1358  <way id='-2851' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1359    <nd ref='-2708' />
     1360    <nd ref='-2667' />
     1361  </way>
     1362  <way id='-2850' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true'>
     1363    <nd ref='-2772' />
     1364    <nd ref='-2769' />
     1365  </way>
     1366  <way id='-2849' timestamp='2010-09-22T13:12:44Z' visible='true'>
     1367    <nd ref='-2782' />
     1368    <nd ref='-2661' />
     1369  </way>
     1370  <way id='-2848' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1371    <nd ref='-2752' />
     1372    <nd ref='-2712' />
     1373  </way>
     1374  <way id='-2847' timestamp='2010-07-29T14:09:05Z' visible='true'>
     1375    <nd ref='-2642' />
     1376    <nd ref='-2766' />
     1377  </way>
     1378  <way id='-2846' timestamp='2011-01-12T11:14:40Z' visible='true'>
     1379    <nd ref='-2810' />
     1380    <nd ref='-2690' />
     1381  </way>
     1382  <way id='-2845' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1383    <nd ref='-2791' />
     1384    <nd ref='-2617' />
     1385  </way>
     1386  <way id='-2844' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1387    <nd ref='-2777' />
     1388    <nd ref='-2696' />
     1389  </way>
     1390  <way id='-2842' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1391    <nd ref='-2641' />
     1392    <nd ref='-2806' />
     1393  </way>
     1394  <way id='-2841' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1395    <nd ref='-2698' />
     1396    <nd ref='-2777' />
     1397  </way>
     1398  <way id='-2840' timestamp='2010-12-25T10:26:34Z' visible='true'>
     1399    <nd ref='-2631' />
     1400    <nd ref='-2674' />
     1401  </way>
     1402  <way id='-2839' timestamp='2010-07-27T09:29:05Z' visible='true'>
     1403    <nd ref='-2724' />
     1404    <nd ref='-2720' />
     1405  </way>
     1406  <way id='-2838' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1407    <nd ref='-2814' />
     1408    <nd ref='-2738' />
     1409  </way>
     1410  <way id='-2837' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1411    <nd ref='-2756' />
     1412    <nd ref='-2671' />
     1413  </way>
     1414  <way id='-2836' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1415    <nd ref='-2672' />
     1416    <nd ref='-2630' />
     1417  </way>
     1418  <way id='-2835' timestamp='2010-07-30T09:00:52Z' visible='true'>
     1419    <nd ref='-2630' />
     1420    <nd ref='-2757' />
     1421  </way>
     1422  <way id='-2834' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true'>
     1423    <nd ref='-2622' />
     1424    <nd ref='-2709' />
     1425    <nd ref='-2705' />
     1426    <nd ref='-2745' />
     1427    <nd ref='-2622' />
     1428  </way>
     1429  <way id='-2833' timestamp='2011-01-07T11:23:54Z' visible='true'>
     1430    <nd ref='-2786' />
     1431    <nd ref='-2747' />
     1432  </way>
     1433  <way id='-2832' timestamp='2011-01-12T11:14:40Z' visible='true'>
     1434    <nd ref='-2731' />
     1435    <nd ref='-2651' />
     1436  </way>
     1437  <way id='-2831' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1438    <nd ref='-2812' />
     1439    <nd ref='-2730' />
     1440  </way>
     1441  <way id='-2830' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true'>
     1442    <nd ref='-2705' />
     1443    <nd ref='-2668' />
     1444  </way>
     1445  <way id='-2829' action='modify' timestamp='2011-01-07T11:23:54Z' visible='true'>
     1446    <nd ref='-2747' />
     1447    <nd ref='-2662' />
     1448  </way>
     1449  <way id='-2828' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1450    <nd ref='-2767' />
     1451    <nd ref='-2650' />
     1452  </way>
     1453  <way id='-2827' timestamp='2010-09-20T10:45:24Z' visible='true'>
     1454    <nd ref='-2664' />
     1455    <nd ref='-2622' />
     1456  </way>
     1457  <way id='-2826' timestamp='2011-01-07T11:23:54Z' visible='true'>
     1458    <nd ref='-2707' />
     1459    <nd ref='-2754' />
     1460  </way>
     1461  <way id='-2825' timestamp='2010-09-14T14:43:02Z' visible='true'>
     1462    <nd ref='-2741' />
     1463    <nd ref='-2694' />
     1464  </way>
     1465  <way id='-2824' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1466    <nd ref='-2800' />
     1467    <nd ref='-2704' />
     1468  </way>
     1469  <way id='-2823' action='modify' timestamp='2010-07-27T09:49:02Z' visible='true'>
     1470    <nd ref='-2632' />
     1471    <nd ref='-2719' />
     1472  </way>
     1473  <way id='-2822' timestamp='2010-07-27T09:49:02Z' visible='true'>
     1474    <nd ref='-2820' />
     1475    <nd ref='-2785' />
     1476  </way>
     1477  <way id='-2821' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1478    <nd ref='-2761' />
     1479    <nd ref='-2680' />
     1480  </way>
     1481  <way id='25622133' action='modify' timestamp='2010-09-02T23:27:50Z' uid='89943' user='Bengatzer' visible='true' version='14' changeset='5666931'>
     1482    <nd ref='332209785' />
     1483    <nd ref='300919273' />
     1484  </way>
     1485  <way id='30146592' action='delete' timestamp='2010-09-02T23:27:18Z' uid='89943' user='Bengatzer' visible='true' version='5' changeset='5666931'>
     1486  </way>
     1487  <way id='49747643' action='delete' timestamp='2010-09-02T23:28:06Z' uid='89943' user='Bengatzer' visible='true' version='2' changeset='5666931'>
     1488  </way>
     1489  <way id='49747644' action='delete' timestamp='2010-09-02T23:28:15Z' uid='89943' user='Bengatzer' visible='true' version='2' changeset='5666931'>
     1490  </way>
     1491  <way id='75689743' action='delete' timestamp='2010-09-02T23:27:14Z' uid='89943' user='Bengatzer' visible='true' version='1' changeset='5666931'>
     1492  </way>
     1493  <relation id='-3535' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1494    <member type='way' ref='-3547' role='' />
     1495    <member type='way' ref='-3559' role='' />
     1496    <member type='way' ref='-3542' role='' />
     1497    <member type='way' ref='-3550' role='forward' />
     1498    <member type='way' ref='-3539' role='forward' />
     1499    <member type='way' ref='-3545' role='forward' />
     1500    <member type='way' ref='-3557' role='forward' />
     1501    <member type='way' ref='-3536' role='forward' />
     1502    <member type='way' ref='-3554' role='forward' />
     1503    <member type='way' ref='-3558' role='' />
     1504    <member type='way' ref='-3555' role='' />
     1505    <member type='way' ref='-3551' role='' />
     1506    <tag k='name' v='pokus' />
     1507  </relation>
     1508  <relation id='-3501' action='modify' timestamp='2011-01-12T12:08:32Z' visible='true'>
     1509    <member type='way' ref='-3491' role='' />
     1510    <member type='way' ref='-3495' role='' />
     1511    <member type='way' ref='-3496' role='' />
     1512    <member type='way' ref='-3494' role='forward' />
     1513    <member type='way' ref='-3489' role='forward' />
     1514    <member type='way' ref='-3490' role='forward' />
     1515    <member type='way' ref='-3492' role='forward' />
     1516    <member type='way' ref='-3498' role='forward' />
     1517    <member type='way' ref='-3488' role='forward' />
     1518    <member type='way' ref='-3499' role='' />
     1519    <member type='way' ref='-3493' role='' />
     1520    <member type='way' ref='-3497' role='' />
     1521    <tag k='name' v='ex2' />
     1522  </relation>
     1523  <relation id='-3500' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1524    <member type='way' ref='-3491' role='' />
     1525    <member type='way' ref='-3495' role='' />
     1526    <member type='way' ref='-3496' role='' />
     1527    <member type='way' ref='-3492' role='forward' />
     1528    <member type='way' ref='-3498' role='forward' />
     1529    <member type='way' ref='-3488' role='forward' />
     1530    <member type='way' ref='-3494' role='forward' />
     1531    <member type='way' ref='-3490' role='forward' />
     1532    <member type='way' ref='-3489' role='forward' />
     1533    <member type='way' ref='-3499' role='' />
     1534    <member type='way' ref='-3493' role='' />
     1535    <member type='way' ref='-3497' role='' />
     1536    <tag k='name' v='ex1' />
     1537  </relation>
     1538  <relation id='-3035' action='modify' timestamp='2011-01-07T10:51:09Z' visible='true'>
     1539    <member type='way' ref='-3007' role='forward' />
     1540    <member type='way' ref='-2907' role='forward' />
     1541    <member type='way' ref='-2928' role='forward' />
     1542    <member type='way' ref='-2890' role='forward' />
     1543    <member type='way' ref='-2968' role='forward' />
     1544    <member type='way' ref='-2870' role='forward' />
     1545    <tag k='name' v='pokus' />
     1546  </relation>
     1547  <relation id='-3034' action='modify' timestamp='2010-07-27T10:49:23Z' visible='true'>
     1548    <member type='way' ref='-2911' role='' />
     1549    <member type='way' ref='-2975' role='backward' />
     1550    <member type='way' ref='-2873' role='' />
     1551    <member type='way' ref='-2979' role='backward' />
     1552    <member type='way' ref='-2836' role='forward' />
     1553    <member type='way' ref='-2859' role='backward' />
     1554    <member type='way' ref='-2899' role='forward' />
     1555    <member type='way' ref='-2938' role='backward' />
     1556    <member type='way' ref='-2871' role='' />
     1557    <member type='way' ref='-2855' role='backward' />
     1558    <member type='way' ref='-2908' role='' />
     1559    <member type='way' ref='-2896' role='backward' />
     1560    <member type='way' ref='-2821' role='backward' />
     1561    <member type='way' ref='-2934' role='forward' />
     1562    <member type='way' ref='-2901' role='backward' />
     1563    <member type='way' ref='-2824' role='forward' />
     1564    <member type='way' ref='-2893' role='forward' />
     1565    <member type='way' ref='-3013' role='forward' />
     1566    <member type='way' ref='-2951' role='forward' />
     1567    <member type='way' ref='-2835' role='forward' />
     1568    <member type='way' ref='-2862' role='' />
     1569    <tag k='name' v='pokus' />
     1570  </relation>
     1571  <relation id='-3033' action='modify' timestamp='2010-07-27T20:07:30Z' visible='true'>
     1572    <member type='way' ref='-2960' role='forward' />
     1573    <member type='way' ref='-2920' role='forward' />
     1574    <member type='way' ref='-2842' role='forward' />
     1575    <member type='way' ref='-2868' role='forward' />
     1576    <member type='way' ref='-2949' role='forward' />
     1577    <member type='way' ref='-2828' role='forward' />
     1578    <member type='way' ref='-2999' role='forward' />
     1579    <member type='way' ref='-2985' role='forward' />
     1580    <member type='way' ref='-2945' role='forward' />
     1581    <member type='way' ref='-2905' role='forward' />
     1582    <member type='way' ref='-2909' role='forward' />
     1583    <member type='way' ref='-2902' role='forward' />
     1584    <member type='way' ref='-2942' role='forward' />
     1585    <member type='way' ref='-2989' role='forward' />
     1586    <member type='way' ref='-2865' role='forward' />
     1587    <member type='way' ref='-2831' role='forward' />
     1588    <tag k='name' v='pokus' />
     1589  </relation>
     1590  <relation id='-3032' action='modify' timestamp='2010-12-25T10:26:34Z' visible='true'>
     1591    <member type='way' ref='-2840' role='forward' />
     1592    <member type='way' ref='-2955' role='' />
     1593    <member type='way' ref='-2918' role='forward' />
     1594    <member type='way' ref='-2877' role='' />
     1595    <member type='way' ref='-2880' role='' />
     1596    <member type='way' ref='-2915' role='forward' />
     1597    <member type='way' ref='-3015' role='forward' />
     1598    <tag k='name' v='pokus' />
     1599  </relation>
     1600  <relation id='-3031' timestamp='2011-01-07T11:23:54Z' visible='true'>
     1601    <member type='way' ref='-2947' role='' />
     1602    <member type='way' ref='-2987' role='forward' />
     1603    <member type='way' ref='-2983' role='forward' />
     1604    <member type='way' ref='-2826' role='forward' />
     1605    <member type='way' ref='-2940' role='forward' />
     1606    <member type='way' ref='-2943' role='forward' />
     1607    <member type='way' ref='-2903' role='forward' />
     1608    <member type='way' ref='-2990' role='' />
     1609    <member type='way' ref='-2833' role='forward' />
     1610    <member type='way' ref='-2829' role='forward' />
     1611    <member type='way' ref='-2866' role='forward' />
     1612    <tag k='name' v='pokus' />
     1613  </relation>
     1614  <relation id='-3030' action='modify' timestamp='2010-07-28T12:06:45Z' visible='true'>
     1615    <member type='way' ref='-2834' role='forward' />
     1616    <member type='way' ref='-2944' role='' />
     1617    <member type='way' ref='-2919' role='' />
     1618    <member type='way' ref='-2904' role='' />
     1619    <member type='way' ref='-2988' role='' />
     1620    <member type='way' ref='-2830' role='' />
     1621    <member type='way' ref='-2827' role='' />
     1622    <member type='way' ref='-2881' role='forward' />
     1623    <member type='way' ref='-2984' role='' />
     1624    <member type='way' ref='-2991' role='' />
     1625    <tag k='name' v='pokus' />
     1626  </relation>
     1627  <relation id='-3029' timestamp='2010-07-27T12:36:40Z' visible='true'>
     1628    <member type='way' ref='-2879' role='' />
     1629    <member type='way' ref='-2957' role='' />
     1630    <member type='way' ref='-2996' role='forward' />
     1631    <tag k='name' v='pokus' />
     1632  </relation>
     1633  <relation id='-3028' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1634    <member type='way' ref='-2936' role='' />
     1635    <member type='way' ref='-2857' role='' />
     1636    <member type='way' ref='-2972' role='' />
     1637    <member type='way' ref='-2894' role='forward' />
     1638    <member type='way' ref='-2932' role='forward' />
     1639    <member type='way' ref='-2927' role='forward' />
     1640    <member type='way' ref='-3010' role='forward' />
     1641    <member type='way' ref='-2889' role='forward' />
     1642    <member type='way' ref='-2967' role='forward' />
     1643    <member type='way' ref='-2852' role='' />
     1644    <member type='way' ref='-2977' role='' />
     1645    <member type='way' ref='-2886' role='' />
     1646    <tag k='name' v='pokus' />
     1647  </relation>
     1648  <relation id='-3027' action='modify' timestamp='2010-07-27T20:07:30Z' visible='true'>
     1649    <member type='way' ref='-3001' role='forward' />
     1650    <member type='way' ref='-2844' role='forward' />
     1651    <member type='way' ref='-2841' role='forward' />
     1652    <member type='way' ref='-2878' role='forward' />
     1653    <member type='way' ref='-2959' role='forward' />
     1654    <member type='way' ref='-2998' role='forward' />
     1655    <member type='way' ref='-2995' role='forward' />
     1656    <member type='way' ref='-2838' role='forward' />
     1657    <member type='way' ref='-2916' role='forward' />
     1658    <member type='way' ref='-2956' role='forward' />
     1659    <member type='way' ref='-2953' role='forward' />
     1660    <member type='way' ref='-2993' role='forward' />
     1661    <member type='way' ref='-2875' role='forward' />
     1662    <member type='way' ref='-2913' role='forward' />
     1663    <member type='way' ref='-2854' role='forward' />
     1664    <member type='way' ref='-2891' role='forward' />
     1665    <tag k='name' v='pokus' />
     1666  </relation>
     1667  <relation id='-3026' timestamp='2010-07-27T09:29:05Z' visible='true'>
     1668    <member type='way' ref='-2912' role='' />
     1669    <member type='way' ref='-2876' role='' />
     1670    <member type='way' ref='-2994' role='' />
     1671    <member type='way' ref='-2839' role='' />
     1672    <member type='way' ref='-2874' role='' />
     1673    <tag k='name' v='pokus' />
     1674  </relation>
     1675  <relation id='-3025' action='modify' timestamp='2010-09-22T13:12:44Z' visible='true'>
     1676    <member type='way' ref='-3006' role='forward' />
     1677    <member type='way' ref='-2982' role='forward' />
     1678    <member type='way' ref='-2924' role='forward' />
     1679    <member type='way' ref='-2863' role='forward' />
     1680    <member type='way' ref='-2849' role='forward' />
     1681    <member type='way' ref='-2900' role='forward' />
     1682    <tag k='name' v='pokus' />
     1683  </relation>
     1684  <relation id='-3024' action='modify' timestamp='2010-09-22T07:22:37Z' visible='true'>
     1685    <member type='way' ref='-3012' role='forward' />
     1686    <member type='way' ref='-2974' role='' />
     1687    <member type='way' ref='-2887' role='forward' />
     1688    <member type='way' ref='-2969' role='forward' />
     1689    <member type='way' ref='-2850' role='forward' />
     1690    <member type='way' ref='-2929' role='forward' />
     1691    <member type='way' ref='-2922' role='forward' />
     1692    <member type='way' ref='-3008' role='forward' />
     1693    <member type='way' ref='-2925' role='forward' />
     1694    <member type='way' ref='-3004' role='forward' />
     1695    <member type='way' ref='-2965' role='' />
     1696    <tag k='name' v='pokus' />
     1697  </relation>
     1698  <relation id='-3023' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1699    <member type='way' ref='-2867' role='forward' />
     1700    <member type='way' ref='-2864' role='' />
     1701    <member type='way' ref='-2963' role='forward' />
     1702    <member type='way' ref='-2845' role='' />
     1703    <member type='way' ref='-2981' role='' />
     1704    <member type='way' ref='-2882' role='forward' />
     1705    <member type='way' ref='-2941' role='' />
     1706    <member type='way' ref='-2848' role='' />
     1707    <member type='way' ref='-2948' role='forward' />
     1708    <member type='way' ref='-3002' role='' />
     1709    <tag k='name' v='pokus' />
     1710  </relation>
     1711  <relation id='-3022' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1712    <member type='way' ref='-2931' role='forward' />
     1713    <member type='way' ref='-2856' role='forward' />
     1714    <member type='way' ref='-2976' role='' />
     1715    <member type='way' ref='-2897' role='forward' />
     1716    <member type='way' ref='-3014' role='' />
     1717    <member type='way' ref='-2825' role='forward' />
     1718    <member type='way' ref='-2860' role='' />
     1719    <member type='way' ref='-2935' role='forward' />
     1720    <member type='way' ref='-2822' role='' />
     1721    <member type='way' ref='-2971' role='forward' />
     1722    <member type='way' ref='-2980' role='' />
     1723    <member type='way' ref='-2939' role='' />
     1724    <tag k='name' v='pokus' />
     1725  </relation>
     1726  <relation id='-3021' action='modify' timestamp='2011-01-12T11:14:41Z' visible='true'>
     1727    <member type='way' ref='-2846' role='' />
     1728    <member type='way' ref='-2906' role='' />
     1729    <member type='way' ref='-2869' role='' />
     1730    <member type='way' ref='-2986' role='' />
     1731    <member type='way' ref='-2946' role='' />
     1732    <member type='way' ref='-2950' role='' />
     1733    <member type='way' ref='-2910' role='' />
     1734    <member type='way' ref='-2906' role='' />
     1735    <member type='way' ref='-2832' role='' />
     1736    <tag k='name' v='pokus' />
     1737  </relation>
     1738  <relation id='-3020' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1739    <member type='way' ref='-2978' role='forward' />
     1740    <member type='way' ref='-2847' role='forward' />
     1741    <member type='way' ref='-2858' role='' />
     1742    <member type='way' ref='-2861' role='forward' />
     1743    <member type='way' ref='-2962' role='forward' />
     1744    <member type='way' ref='-2823' role='' />
     1745    <member type='way' ref='-2933' role='forward' />
     1746    <member type='way' ref='-2937' role='forward' />
     1747    <member type='way' ref='-3016' role='forward' />
     1748    <member type='way' ref='-2973' role='' />
     1749    <member type='way' ref='-2895' role='forward' />
     1750    <member type='way' ref='-2853' role='forward' />
     1751    <member type='way' ref='-3011' role='forward' />
     1752    <member type='way' ref='-2884' role='forward' />
     1753    <member type='way' ref='-2898' role='forward' />
     1754    <tag k='name' v='pokus' />
     1755  </relation>
     1756  <relation id='-3019' action='modify' timestamp='2010-07-27T08:34:21Z' visible='true'>
     1757    <member type='way' ref='-2923' role='forward' />
     1758    <member type='way' ref='-3005' role='forward' />
     1759    <member type='way' ref='-2914' role='forward' />
     1760    <member type='way' ref='-2837' role='' />
     1761    <member type='way' ref='-2917' role='' />
     1762    <member type='way' ref='-2970' role='forward' />
     1763    <member type='way' ref='-2851' role=' ' />
     1764    <member type='way' ref='-2926' role='' />
     1765    <member type='way' ref='-3009' role='forward' />
     1766    <member type='way' ref='-2930' role='' />
     1767    <member type='way' ref='-2954' role='forward' />
     1768    <member type='way' ref='-2892' role='forward' />
     1769    <member type='way' ref='-2966' role='forward' />
     1770    <member type='way' ref='-2888' role='forward' />
     1771    <member type='way' ref='-2885' role='forward' />
     1772    <tag k='name' v='pokus' />
     1773  </relation>
     1774  <relation id='-3018' action='modify' timestamp='2010-07-29T13:40:01Z' visible='true'>
     1775    <member type='way' ref='-2952' role='' />
     1776    <member type='way' ref='-2992' role='' />
     1777    <member type='way' ref='-2872' role='' />
     1778    <tag k='name' v='pokus' />
     1779  </relation>
     1780  <relation id='-3017' action='modify' timestamp='2010-12-25T10:26:34Z' visible='true'>
     1781    <tag k='name' v='pokus' />
     1782  </relation>
     1783  <relation id='51857' action='modify' timestamp='2011-01-07T15:55:33Z' uid='132895' user='msbuettn' visible='true' version='974' changeset='6893860'>
     1784    <member type='way' ref='38423471' role='' />
     1785    <member type='way' ref='25622133' role='' />
     1786  </relation>
     1787</osm>
  • src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableLinkedCellRenderer.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableLinkedCellRenderer.java b/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableLinkedCellRenderer.java
    index 6a25ec7..9b3e784 100644
    a b  
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.gui.dialogs.relation;
    33
     4import java.awt.BasicStroke;
    45import java.awt.Color;
    56import java.awt.Component;
    67import java.awt.Graphics;
     8import java.awt.Graphics2D;
    79import java.awt.Image;
    810
    911import javax.swing.JTable;
    public class MemberTableLinkedCellRenderer extends MemberTableCellRenderer {  
    3941            return;
    4042
    4143        int ymax=this.getSize().height - 1;
    42         int xloop = 8;
     44        int xloop = 10;
     45        int xowloop = 0;
     46        if(value.isOnewayLoopForwardPart) xowloop = -3;
     47        if(value.isOnewayLoopBackwardPart) xowloop = 3;
     48       
    4349        int xoff = this.getSize().width / 2;
    4450        if (value.isLoop) {
    4551            xoff -= xloop / 2 - 1;
    public class MemberTableLinkedCellRenderer extends MemberTableCellRenderer {  
    5157
    5258        if (value.linkPrev) {
    5359            g.setColor(Color.black);
    54             g.fillRect(xoff - 1, 0, 3, 1);
     60            if(value.isOnewayHead)
     61                g.fillRect(xoff - 1, 0, 3, 1);
     62            else
     63                g.fillRect(xoff - 1 + xowloop, 0, 3, 1);
    5564            y1 = 0;
    5665        } else {
    5766            if (value.isLoop) {
    public class MemberTableLinkedCellRenderer extends MemberTableCellRenderer {  
    6372            }
    6473            else {
    6574                g.setColor(Color.red);
    66                 g.drawRect(xoff-1, p - 1 - w, w, w);
     75                if(value.isOnewayHead)
     76                    g.drawRect(xoff-1, p - 3 - w, w, w);
     77                else
     78                    g.drawRect(xoff-1 + xowloop, p - 1 - w, w, w);
    6779                y1 = p;
    6880            }
    6981        }
    7082
    7183        if (value.linkNext) {
    7284            g.setColor(Color.black);
    73             g.fillRect(xoff - 1, ymax, 3, 1);
     85            if(value.isOnewayTail)
     86                g.fillRect(xoff - 1, ymax, 3, 1);
     87            else
     88                g.fillRect(xoff - 1 + xowloop, ymax, 3, 1);
    7489            y2 = ymax;
    7590        } else {
    7691            if (value.isLoop) {
    public class MemberTableLinkedCellRenderer extends MemberTableCellRenderer {  
    8398            }
    8499            else {
    85100                g.setColor(Color.red);
    86                 g.drawRect(xoff-1, ymax - p + 1, w, w);
     101                if(value.isOnewayTail)
     102                    g.drawRect(xoff-1, ymax - p + 3, w, w);
     103                else
     104                    g.drawRect(xoff-1 + xowloop, ymax - p + 1, w, w);
    87105                y2 = ymax - p;
    88106            }
    89107        }
    90108
    91109        /* vertical lines */
    92110        g.setColor(Color.black);
    93         g.drawLine(xoff, y1, xoff, y2);
    94111        if (value.isLoop) {
    95112            g.drawLine(xoff+xloop, y1, xoff+xloop, y2);
    96113        }
    97114
     115        if (value.isOnewayHead) {
     116            setDotted(g);
     117            y1 = 7;
     118
     119            int xValues [] = {xoff - xowloop + 1, xoff - xowloop + 1, xoff};
     120            int yValues [] = {ymax, y1+1, 1};
     121            g.drawPolyline(xValues, yValues, 3);
     122            unsetDotted(g);
     123            g.drawLine(xoff + xowloop, y1+1, xoff, 1);
     124        }
     125
     126        if(value.isOnewayTail){
     127            setDotted(g);
     128            y2 = ymax - 7;
     129
     130            int xValues [] = {xoff+1, xoff - xowloop + 1, xoff - xowloop + 1};
     131            int yValues [] = {ymax-1, y2, y1};
     132            g.drawPolyline(xValues, yValues, 3);
     133            unsetDotted(g);
     134            g.drawLine(xoff + xowloop, y2, xoff, ymax-1);
     135        }
     136
     137        if ((value.isOnewayLoopForwardPart || value.isOnewayLoopBackwardPart) && !value.isOnewayTail && !value.isOnewayHead) {
     138            setDotted(g);
     139            g.drawLine(xoff - xowloop+1, y1, xoff - xowloop+1, y2 + 1);
     140            unsetDotted(g);
     141        }
     142
     143        if (!value.isOnewayLoopForwardPart && !value.isOnewayLoopBackwardPart){
     144            g.drawLine(xoff, y1, xoff, y2);
     145        }
     146       
     147        g.drawLine(xoff+xowloop, y1, xoff+xowloop, y2);
     148     
    98149        /* special icons */
    99150        Image arrow = null;
    100151        switch (value.direction) {
    public class MemberTableLinkedCellRenderer extends MemberTableCellRenderer {  
    105156            arrow = arrowUp;
    106157            break;
    107158        }
    108         if ((arrow != null) && (value.linkPrev || value.linkNext)) {
    109             g.drawImage(arrow, xoff-3, (y1 + y2) / 2 - 2, null);
    110         }
    111         else if (value.direction == Direction.ROUNDABOUT_LEFT) {
     159        if (value.direction == Direction.ROUNDABOUT_LEFT) {
    112160            g.drawImage(roundabout_left, xoff-6, 1, null);
    113161        } else if (value.direction == Direction.ROUNDABOUT_RIGHT) {
    114162            g.drawImage(roundabout_right, xoff-6, 1, null);
    115163        }
     164
     165        if (!value.isOnewayLoopForwardPart && !value.isOnewayLoopBackwardPart &&
     166                (arrow != null)) {
     167            g.drawImage(arrow, xoff-3, (y1 + y2) / 2 - 2, null);
     168        }
     169
     170        if (value.isOnewayLoopBackwardPart && value.isOnewayLoopForwardPart) {
     171            if(arrow == arrowDown)
     172                arrow = arrowUp;
     173            else if (arrow == arrowUp)
     174                arrow = arrowDown;
     175        }
     176
     177        if ((arrow != null)) {
     178            g.drawImage(arrow, xoff+xowloop-3, (y1 + y2) / 2 - 2, null);
     179        }
     180    }
     181
     182    private void setDotted(Graphics g) {
     183        ((Graphics2D)g).setStroke(new BasicStroke(
     184              1f,
     185              BasicStroke.CAP_BUTT,
     186              BasicStroke.CAP_BUTT,
     187              5f,
     188              new float[] {1f, 2f},
     189              0f));
     190    }
     191
     192    private void unsetDotted(Graphics g) {
     193        ((Graphics2D)g).setStroke(new BasicStroke());
    116194    }
    117195}
  • src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java b/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java
    index beb01aa..137e43d 100644
    a b  
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.gui.dialogs.relation;
    33
    4 import static org.openstreetmap.josm.gui.dialogs.relation.WayConnectionType.Direction.BACKWARD;
    5 import static org.openstreetmap.josm.gui.dialogs.relation.WayConnectionType.Direction.FORWARD;
    6 import static org.openstreetmap.josm.gui.dialogs.relation.WayConnectionType.Direction.NONE;
    7 import static org.openstreetmap.josm.gui.dialogs.relation.WayConnectionType.Direction.ROUNDABOUT_LEFT;
    8 import static org.openstreetmap.josm.gui.dialogs.relation.WayConnectionType.Direction.ROUNDABOUT_RIGHT;
     4import static org.openstreetmap.josm.gui.dialogs.relation.WayConnectionType.Direction.*;
    95
    106import java.util.ArrayList;
    117import java.util.Arrays;
    public class MemberTableModel extends AbstractTableModel implements TableModelLi  
    5753    private CopyOnWriteArrayList<IMemberModelListener> listeners;
    5854    private OsmDataLayer layer;
    5955
     56    private final int UNCONNECTED = Integer.MIN_VALUE;
     57
    6058    /**
    6159     * constructor
    6260     */
    public class MemberTableModel extends AbstractTableModel implements TableModelLi  
    786784        setSelectedMembers(sortedMembers);
    787785    }
    788786
     787    private Direction determineDirection(int ref_i, Direction ref_direction, int k) {
     788        return determineDirection(ref_i, ref_direction, k, false);
     789    }
    789790    /**
    790791     * Determines the direction of way k with respect to the way ref_i.
    791792     * The way ref_i is assumed to have the direction ref_direction and
    public class MemberTableModel extends AbstractTableModel implements TableModelLi  
    795796     *
    796797     * Else the direction is given as follows:
    797798     * Let the relation be a route of oneway streets, and someone travels them in the given order.
    798      * Direction is FORWARD if it is legel and BACKWARD if it is illegal to do so for the given way.
     799     * Direction is FORWARD if it is legal and BACKWARD if it is illegal to do so for the given way.
    799800     *
    800801     **/
    801     private Direction determineDirection(int ref_i,Direction ref_direction, int k) {
     802    private Direction determineDirection(int ref_i, final Direction ref_direction, int k, boolean reversed) {
    802803        if (ref_i < 0 || k < 0 || ref_i >= members.size() || k >= members.size())
    803804            return NONE;
    804805        if (ref_direction == NONE)
    805806            return NONE;
    806807
    807         RelationMember m_ref = members.get(ref_i);
    808         RelationMember m = members.get(k);
     808        final RelationMember m_ref = members.get(ref_i);
     809        final RelationMember m = members.get(k);
    809810        Way way_ref = null;
    810811        Way way = null;
    811812
    public class MemberTableModel extends AbstractTableModel implements TableModelLi  
    847848                    if (n == nn)
    848849                        return roundaboutType(k);
    849850                }
     851            } else if(isOneway(m)) {
     852                if (n == RelationNodeMap.firstOnewayNode(m) && !reversed) {
     853                    if(isBackward(m))
     854                        return BACKWARD;
     855                    else
     856                        return FORWARD;
     857                }
     858                if (n == RelationNodeMap.lastOnewayNode(m) && reversed) {
     859                    if(isBackward(m))
     860                        return FORWARD;
     861                    else
     862                        return BACKWARD;
     863                }
    850864            } else {
    851865                if (n == way.firstNode())
    852866                    return FORWARD;
    public class MemberTableModel extends AbstractTableModel implements TableModelLi  
    931945     */
    932946    public void updateLinks() {
    933947        connectionType = null;
    934         ArrayList<WayConnectionType> con = new ArrayList<WayConnectionType>();
     948        final List<WayConnectionType> con = new ArrayList<WayConnectionType>();
    935949
    936950        for (int i=0; i<members.size(); ++i) {
    937951            con.add(null);
    938952        }
    939953
    940954        int firstGroupIdx=0;
    941         boolean resetFirstGoupIdx=false;
    942955
    943         for (int i=0; i<members.size(); ++i) {
    944             if (resetFirstGoupIdx) {
    945                 firstGroupIdx = i;
    946                 resetFirstGoupIdx = false;
    947             }
     956        lastForwardWay = UNCONNECTED;
     957        lastBackwardWay = UNCONNECTED;
     958        onewayBeginning = false;
     959        WayConnectionType lastWct = null;
    948960
    949             RelationMember m = members.get(i);
     961        for (int i=0; i<members.size(); ++i) {
     962            final RelationMember m = members.get(i);
    950963            if (! m.isWay()) {
    951964                con.set(i, new WayConnectionType());
    952                 resetFirstGoupIdx = true;
     965                firstGroupIdx = i;
    953966                continue;
    954967            }
    955968
    956             Way w = m.getWay();
     969            final Way w = m.getWay();
    957970            if (w == null || w.isIncomplete()) {
    958971                con.set(i, new WayConnectionType());
    959                 resetFirstGoupIdx = true;
     972                firstGroupIdx = i;
    960973                continue;
    961974            }
    962 
    963             boolean linkPrev = (i != firstGroupIdx);
    964             boolean linkNext;
    965             Direction dir;
    966             if (linkPrev) {
    967                 dir = determineDirection(i-1, con.get(i-1).direction, i);
    968                 linkNext = (determineDirection(i, dir, i+1) != NONE);
    969             }
    970             else {
    971                 if (roundaboutType(i) != NONE) {
    972                     dir = determineDirection(i, roundaboutType(i), i+1) != NONE ? roundaboutType(i) : NONE;
    973                 } else { /** guess the direction and see if it fits with the next member */
    974                     dir = determineDirection(i, FORWARD, i+1) != NONE ? FORWARD : NONE;
    975                     if (dir == NONE) {
    976                         dir = determineDirection(i, BACKWARD, i+1) != NONE ? BACKWARD : NONE;
    977                     }
     975         
     976            WayConnectionType wct = new WayConnectionType(false);
     977            wct.linkPrev = i>0 && con.get(i-1) != null && con.get(i-1).isValid();
     978            wct.direction = NONE;
     979
     980            if(isOneway(m)){
     981                if(lastWct != null && lastWct.isOnewayTail)
     982                    wct.isOnewayHead = true;
     983                if(lastBackwardWay == UNCONNECTED && lastForwardWay == UNCONNECTED){ //Beginning of new oneway
     984                    wct.isOnewayHead = true;
     985                    lastForwardWay = i-1;
     986                    lastBackwardWay = i;
     987                    onewayBeginning = true;
    978988                }
    979                 linkNext = (dir != NONE);
    980                 if (dir == NONE) {
    981                     if (roundaboutType(i) != NONE) {
    982                         dir = roundaboutType(i);
    983                     }
     989            }           
     990
     991            if (wct.linkPrev) {
     992                if(lastBackwardWay != UNCONNECTED && lastForwardWay != UNCONNECTED) {
     993                    wct = determineOnewayConnectionType(con, m, i, wct);
     994                    if(!wct.linkPrev)
     995                        firstGroupIdx = i;
    984996                }
    985997
     998                if(!isOneway(m)) {
     999                    wct.direction = determineDirection(i-1, lastWct.direction, i);
     1000                    wct.linkPrev = (wct.direction != NONE);
     1001                }                   
     1002            }
     1003           
     1004            if (!wct.linkPrev) {
     1005                wct.direction = determineDirectionOfFirst(i, m);
     1006                if(isOneway(m)){
     1007                    wct.isOnewayLoopForwardPart = true;
     1008                    lastForwardWay = i;
     1009                }
    9861010            }
    9871011
    988             con.set(i, new WayConnectionType(linkPrev, linkNext, dir));
     1012            wct.linkNext = false;
     1013            if(lastWct != null)
     1014                lastWct.linkNext = wct.linkPrev;
     1015            con.set(i, wct);
     1016            lastWct = wct;
    9891017
    990             if (! linkNext) {
    991                 boolean loop;
    992                 if (i == firstGroupIdx) {
    993                     loop = determineDirection(i, FORWARD, i) == FORWARD;
    994                 } else {
    995                     loop = determineDirection(i, dir, firstGroupIdx) == con.get(firstGroupIdx).direction;
    996                 }
    997                 if (loop) {
    998                     for (int j=firstGroupIdx; j <= i; ++j) {
    999                         con.get(j).isLoop = true;
    1000                     }
    1001                 }
    1002                 resetFirstGoupIdx = true;
     1018            if(!wct.linkPrev) {
     1019                if(i > 0) makeLoopIfNeeded(con, i-1, firstGroupIdx);
     1020                firstGroupIdx = i;
    10031021            }
    10041022        }
     1023        makeLoopIfNeeded(con, members.size()-1, firstGroupIdx);
    10051024        connectionType = con;
    10061025        //        for (int i=0; i<con.size(); ++i) {
    10071026        //            System.err.println(con.get(i));
    10081027        //        }
    10091028    }
     1029
     1030//    private static void unconnectPreviousLink(List<WayConnectionType> con, int beg, boolean backward){
     1031//        int i = beg;
     1032//        while(true){
     1033//            WayConnectionType t = con.get(i--);
     1034//            t.isOnewayOppositeConnected = false;
     1035//            if(backward && t.isOnewayLoopBackwardPart) break;
     1036//            if(!backward && t.isOnewayLoopForwardPart) break;
     1037//        }
     1038//    }
     1039
     1040    private static Direction reverse(final Direction dir){
     1041        if(dir == FORWARD) return BACKWARD;
     1042        if(dir == BACKWARD) return FORWARD;
     1043        return dir;
     1044    }
     1045
     1046    private static boolean isBackward(final RelationMember member){
     1047        return member.getRole().equals("backward");
     1048    }
     1049
     1050    private static boolean isForward(final RelationMember member){
     1051        return member.getRole().equals("forward");
     1052    }
     1053   
     1054    public static boolean isOneway(final RelationMember member){
     1055        return isForward(member) || isBackward(member);
     1056    }
     1057
     1058    private void makeLoopIfNeeded(final List<WayConnectionType> con, final int i, final int firstGroupIdx) {
     1059        boolean loop;
     1060        if (i == firstGroupIdx) { //is primitive loop
     1061            loop = determineDirection(i, FORWARD, i) == FORWARD;
     1062        } else {
     1063            loop = determineDirection(i, con.get(i).direction, firstGroupIdx) == con.get(firstGroupIdx).direction;
     1064        }
     1065        if (loop) {
     1066            for (int j=firstGroupIdx; j <= i; ++j) {
     1067                con.get(j).isLoop = true;
     1068            }
     1069        }
     1070    }
     1071
     1072    private Direction determineDirectionOfFirst(final int i, final RelationMember m) {
     1073        if (roundaboutType(i) != NONE) {
     1074            return roundaboutType(i);
     1075        }
     1076       
     1077        if (isOneway(m)){
     1078            if(isBackward(m)) return BACKWARD;
     1079            else return FORWARD;
     1080        } else { /** guess the direction and see if it fits with the next member */
     1081            if(determineDirection(i, FORWARD, i+1) != NONE) return FORWARD;
     1082            if(determineDirection(i, BACKWARD, i+1) != NONE) return BACKWARD;
     1083        }
     1084        return NONE;
     1085    }
     1086
     1087    int lastForwardWay, lastBackwardWay;
     1088    boolean onewayBeginning;
     1089    private WayConnectionType determineOnewayConnectionType(final List<WayConnectionType> con,
     1090            RelationMember m, int i, final WayConnectionType wct) {
     1091        Direction dirFW = determineDirection(lastForwardWay, con.get(lastForwardWay).direction, i);
     1092        Direction dirBW = NONE;
     1093        if(onewayBeginning) {
     1094            if(lastBackwardWay != i)
     1095                dirBW = determineDirection(lastBackwardWay, reverse(con.get(lastBackwardWay).direction), i, true);
     1096            if(dirBW != NONE)
     1097                onewayBeginning = false;
     1098        } else
     1099            dirBW = determineDirection(lastBackwardWay, con.get(lastBackwardWay).direction, i, true);
     1100
     1101        if(isOneway(m)) {
     1102            if(dirBW != NONE){
     1103                wct.direction = dirBW;
     1104                lastBackwardWay = i;
     1105                wct.isOnewayLoopBackwardPart = true;
     1106            }
     1107            if(dirFW != NONE){
     1108                wct.direction = dirFW;
     1109                lastForwardWay = i;
     1110                wct.isOnewayLoopForwardPart = true;
     1111            }
     1112            if(dirFW == NONE && dirBW == NONE) { //Not connected to previous
     1113//                        unconnectPreviousLink(con, i, true);
     1114//                        unconnectPreviousLink(con, i, false);
     1115                wct.linkPrev = false;
     1116                if(isOneway(m)){
     1117                    wct.isOnewayHead = true;
     1118                    lastForwardWay = i-1;
     1119                    lastBackwardWay = i;
     1120                } else {
     1121                    lastForwardWay = UNCONNECTED;
     1122                    lastBackwardWay = UNCONNECTED;
     1123                }
     1124                onewayBeginning = true;
     1125            }
     1126
     1127            if(dirFW != NONE && dirBW != NONE) { //End of oneway loop
     1128                if(i+1<members.size() && determineDirection(i, dirFW, i+1) != NONE) {
     1129                    wct.isOnewayLoopBackwardPart = false;
     1130                    dirBW = NONE;
     1131                    wct.direction = dirFW;
     1132                } else {
     1133                    wct.isOnewayLoopForwardPart = false;
     1134                    dirFW = NONE;
     1135                    wct.direction = dirBW;
     1136                }
     1137
     1138                wct.isOnewayTail = true;
     1139            }
     1140
     1141        } else {
     1142            lastForwardWay = UNCONNECTED;
     1143            lastBackwardWay = UNCONNECTED;
     1144            if(dirFW == NONE || dirBW == NONE)
     1145                wct.linkPrev = false;
     1146        }
     1147        return wct;
     1148    }
    10101149}
  • src/org/openstreetmap/josm/gui/dialogs/relation/RelationNodeMap.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/RelationNodeMap.java b/src/org/openstreetmap/josm/gui/dialogs/relation/RelationNodeMap.java
    index d6e1d8d..1f4b388 100644
    a b package org.openstreetmap.josm.gui.dialogs.relation;  
    44import static org.openstreetmap.josm.gui.dialogs.relation.WayConnectionType.Direction.NONE;
    55
    66import java.util.ArrayList;
    7 import java.util.Iterator;
    87import java.util.List;
    98import java.util.Map;
     9import java.util.Set;
    1010import java.util.TreeMap;
    1111import java.util.TreeSet;
    1212
    import org.openstreetmap.josm.data.osm.Way;  
    2929 *
    3030 */
    3131public class RelationNodeMap {
     32    private class NodesWays{
     33        public Map<Node, Set<Integer>> nodes = new TreeMap<Node, Set<Integer>>();
     34        public Map<Integer, Set<Node>> ways = new TreeMap<Integer, Set<Node>>();
     35        public boolean oneWay;
     36        public NodesWays(boolean oneWay){
     37            this.oneWay = oneWay;
     38        }
     39    }
     40
    3241    /*
    3342     * the maps. (Need TreeMap for efficiency.)
    3443     */
    35     private TreeMap<Node, TreeSet<Integer>> nodesMap;
    36     private TreeMap<Integer, TreeSet<Node>> waysMap;
     44    private NodesWays map = new NodesWays(false);
     45    /*
     46     * Maps for oneways (forward/backward roles)
     47     */
     48
     49    private NodesWays onewayMap = new NodesWays(true);
     50    private NodesWays onewayReverseMap = new NodesWays(true);
    3751    /*
    3852     * Used to keep track of what members are done.
    3953     */
    40     private TreeSet<Integer> remaining;
     54    private Set<Integer> remaining;
     55    private Map<Integer, Set<Node>> remainingOneway = new TreeMap<Integer, Set<Node>>();;
    4156
    4257    /**
    4358     * All members that are incomplete or not a way
    4459     */
    4560    private List<Integer> notSortable = new ArrayList<Integer>();
    4661
     62    public static Node firstOnewayNode(RelationMember m){
     63        if(!m.isWay()) return null;
     64        if(m.getRole().equals("backward")) return m.getWay().lastNode();
     65        return m.getWay().firstNode();
     66    }
     67
     68    public static Node lastOnewayNode(RelationMember m){
     69        if(!m.isWay()) return null;
     70        if(m.getRole().equals("backward")) return m.getWay().firstNode();
     71        return m.getWay().lastNode();
     72    }
     73
    4774    RelationNodeMap(List<RelationMember> members) {
    48         nodesMap = new TreeMap<Node, TreeSet<Integer>>();
    49         waysMap = new TreeMap<Integer, TreeSet<Node>>();
     75        map.nodes = new TreeMap<Node, Set<Integer>>();
     76        map.ways = new TreeMap<Integer, Set<Node>>();
    5077
    5178        for (int i = 0; i < members.size(); ++i) {
    5279            RelationMember m = members.get(i);
    53             if (m.getMember().isIncomplete() || !m.isWay())
    54             {
     80            if (m.getMember().isIncomplete() || !m.isWay()) {
    5581                notSortable.add(i);
     82                continue;
    5683            }
    57             else {
    58                 Way w = m.getWay();
    59                 if (MemberTableModel.roundaboutType(w) != NONE) {
    60                     for (Node nd : w.getNodes()) {
    61                         addPair(nd, i);
    62                     }
    63                 } else {
    64                     addPair(w.firstNode(), i);
    65                     addPair(w.lastNode(), i);
     84
     85            Way w = m.getWay();
     86            if ((MemberTableModel.roundaboutType(w) != NONE)) {
     87                for (Node nd : w.getNodes()) {
     88                    addPair(nd, i);
    6689                }
     90            } else if(MemberTableModel.isOneway(m)) {
     91                addNodeWayMap(firstOnewayNode(m), i);
     92                addWayNodeMap(lastOnewayNode(m), i);
     93                addNodeWayMapReverse(lastOnewayNode(m), i);
     94                addWayNodeMapReverse(firstOnewayNode(m), i);
     95                addRemainingForward(firstOnewayNode(m), i);
     96                addRemainingForward(lastOnewayNode(m), i);
     97            } else {
     98                addPair(w.firstNode(), i);
     99                addPair(w.lastNode(), i);
    67100            }
    68101        }
    69102
    70103        remaining = new TreeSet<Integer>();
    71         for (Integer k : waysMap.keySet()) {
    72             remaining.add(k);
    73         }
     104        remaining.addAll(map.ways.keySet());
    74105
    75106        /*
    76107         * Clean up the maps, i.e. remove nodes from roundabouts and dead ends that
    77108         * cannot be used in future. (only for performance)
    78109         */
    79         Iterator<Map.Entry<Node,TreeSet<Integer>>> it = nodesMap.entrySet().iterator();
    80         while (it.hasNext()) {
    81             Map.Entry<Node,TreeSet<Integer>> nodeLinks = it.next();
     110//        Iterator<Map.Entry<Node,TreeSet<Integer>>> it = map.nodes.entrySet().iterator();
     111//        while (it.hasNext()) {
     112//            Map.Entry<Node,TreeSet<Integer>> nodeLinks = it.next();
     113//
     114//            if (nodeLinks.getValue().size() < 2) {
     115//                if (nodeLinks.getValue().size() != 1) throw new AssertionError();
     116//
     117//                Integer d_way = nodeLinks.getValue().iterator().next();
     118//                TreeSet<Node> d_way_nodes = map.ways.get(d_way);
     119//                d_way_nodes.remove(nodeLinks.getKey());
     120//
     121//                it.remove();
     122//                continue;
     123//            }
     124//        }
     125            }
    82126
    83             if (nodeLinks.getValue().size() < 2) {
    84                 if (nodeLinks.getValue().size() != 1) throw new AssertionError();
     127    private void addPair(Node n, int i) {
     128        Set<Integer> ts = map.nodes.get(n);
     129        if (ts == null) {
     130            ts = new TreeSet<Integer>();
     131            map.nodes.put(n, ts);
     132        }
     133        ts.add(i);
    85134
    86                 Integer d_way = nodeLinks.getValue().iterator().next();
    87                 TreeSet<Node> d_way_nodes = waysMap.get(d_way);
    88                 d_way_nodes.remove(nodeLinks.getKey());
     135        Set<Node> ts2 = map.ways.get(i);
     136        if (ts2 == null) {
     137            ts2 = new TreeSet<Node>();
     138            map.ways.put(i, ts2);
     139        }
     140        ts2.add(n);
     141    }
    89142
    90                 it.remove();
    91                 continue;
    92             }
     143    private void addNodeWayMap(Node n, int i) {
     144        Set<Integer> ts = onewayMap.nodes.get(n);
     145        if (ts == null) {
     146            ts = new TreeSet<Integer>();
     147            onewayMap.nodes.put(n, ts);
    93148        }
     149        ts.add(i);
    94150    }
    95151
    96     private void addPair(Node n, int i) {
    97         TreeSet<Integer> ts = nodesMap.get(n);
     152    private void addWayNodeMap(Node n, int i) {
     153        Set<Node> ts2 = onewayMap.ways.get(i);
     154        if (ts2 == null) {
     155            ts2 = new TreeSet<Node>();
     156            onewayMap.ways.put(i, ts2);
     157        }
     158        ts2.add(n);
     159    }
     160
     161    private void addNodeWayMapReverse(Node n, int i) {
     162        Set<Integer> ts = onewayReverseMap.nodes.get(n);
    98163        if (ts == null) {
    99164            ts = new TreeSet<Integer>();
    100             nodesMap.put(n, ts);
     165            onewayReverseMap.nodes.put(n, ts);
    101166        }
    102167        ts.add(i);
     168    }
    103169
    104         TreeSet<Node> ts2 = waysMap.get(i);
     170    private void addWayNodeMapReverse(Node n, int i) {
     171        Set<Node> ts2 = onewayReverseMap.ways.get(i);
    105172        if (ts2 == null) {
    106173            ts2 = new TreeSet<Node>();
    107             waysMap.put(i, ts2);
     174            onewayReverseMap.ways.put(i, ts2);
    108175        }
    109176        ts2.add(n);
    110177    }
    111178
     179    private void addRemainingForward(Node n, int i) {
     180        Set<Node> ts2 = remainingOneway.get(i);
     181        if (ts2 == null) {
     182            ts2 = new TreeSet<Node>();
     183            remainingOneway.put(i, ts2);
     184        }
     185        ts2.add(n);
     186    }
     187
     188    Integer firstOneway = null;
     189    Node lastOnewayNode = null;
     190    Node firstCircular = null;
     191
    112192    /**
    113193     * Return a relation member that is linked to the
    114      * member 'i', but has not been popped jet.
     194     * member 'i', but has not been popped yet.
    115195     * Return null if there is no such member left.
    116196     */
    117     public Integer popAdjacent(Integer i) {
    118         TreeSet<Node> nodes = waysMap.get(i);
    119         for (Node n : nodes) {
    120             TreeSet<Integer> adj = nodesMap.get(n);
    121             if (!adj.isEmpty()) {
    122                 Integer j = adj.iterator().next();
    123                 done(j);
    124                 waysMap.get(j).remove(n);
    125                 return j;
     197    public Integer popAdjacent(Integer way) {
     198        if (lastOnewayNode != null) return popBackwardOnewayPart(way);
     199        if (firstOneway != null) return popForwardOnewayPart(way);
     200
     201        if (map.ways.containsKey(way)){
     202            for (Node n : map.ways.get(way)) {
     203                Integer i = deleteAndGetAdjacentNode(map, n);
     204                if(i != null) return i;
     205
     206                Integer j = deleteAndGetAdjacentNode(onewayMap, n);
     207                if(j != null) {
     208                    firstOneway = j;
     209                    return j;
     210                }
     211            }
     212        }
     213       
     214        firstOneway = way;
     215        return popForwardOnewayPart(way);
     216    }
     217
     218    private Integer popForwardOnewayPart(Integer way) {
     219        if(onewayMap.ways.containsKey(way)) {
     220            for (Node n : onewayMap.ways.get(way)) {
     221                Integer i = findAdjacentWay(onewayMap, n);
     222                if(i == null) continue;
     223
     224                lastOnewayNode = processBackwardIfEndOfLoopReached(i);
     225                if(lastOnewayNode != null){
     226                    return popBackwardOnewayPart(firstOneway);
     227                }
     228
     229                deleteWayNode(onewayMap, i, n);
     230                return i;
     231            }
     232        }
     233       
     234        firstOneway = null;
     235        return null;
     236    }
     237
     238    private Node processBackwardIfEndOfLoopReached(Integer way) { //find if we didn't reach end of the loop (and process backward part)
     239        if (onewayReverseMap.ways.containsKey(way)) {
     240            for (Node n : onewayReverseMap.ways.get(way)) {
     241                if((map.nodes.containsKey(n))
     242                        || (onewayMap.nodes.containsKey(n) && onewayMap.nodes.get(n).size() > 1)) {
     243                    return n;
     244                }
     245                if(firstCircular != null && firstCircular == n) {
     246                    return firstCircular;
     247                }
     248            }
     249        }
     250        return null;
     251    }
     252   
     253    private Integer popBackwardOnewayPart(int way){
     254        if (lastOnewayNode != null) {
     255            TreeSet<Node> nodes = new TreeSet<Node>();
     256            if (onewayReverseMap.ways.containsKey(way)) nodes.addAll(onewayReverseMap.ways.get(way));
     257            if (map.ways.containsKey(way)) nodes.addAll(map.ways.get(way));
     258            for (Node n : nodes) {
     259                if(n == lastOnewayNode) { //if oneway part ends
     260                    firstOneway = null;
     261                    lastOnewayNode = null;
     262                    Integer j = deleteAndGetAdjacentNode(map, n);
     263                    if(j != null) return j;
     264
     265                    Integer k = deleteAndGetAdjacentNode(onewayMap, n);
     266                    if(k != null) {
     267                        firstOneway = k;
     268                        return k;
     269                    }
     270                }
     271
     272                Integer j = deleteAndGetAdjacentNode(onewayReverseMap, n);
     273                if(j != null) return j;
    126274            }
    127275        }
     276
     277        firstOneway = null;
     278        lastOnewayNode = null;
     279       
    128280        return null;
    129281    }
    130282
    131283    /**
     284     * find next node in nw NodeWays structure, if the node is found delete and return it
     285     * @param nw
     286     * @param n
     287     * @return node next to n
     288     */
     289    private Integer deleteAndGetAdjacentNode(NodesWays nw, Node n){
     290        Integer j = findAdjacentWay(nw, n);
     291        if(j == null) return null;
     292        deleteWayNode(nw, j, n);
     293        return j;
     294    }
     295
     296    private Integer findAdjacentWay(NodesWays nw, Node n) {
     297        Set<Integer> adj = nw.nodes.get(n);
     298        if (adj == null || adj.isEmpty()) return null;
     299        Integer j = adj.iterator().next();
     300        return j;
     301    }
     302
     303    private void deleteWayNode(NodesWays nw, Integer way, Node n){
     304        if(nw.oneWay)
     305            doneOneway(way);
     306        else
     307            done(way);
     308        nw.ways.get(way).remove(n);
     309    }
     310
     311    /**
    132312     * Returns some remaining member or null if
    133313     * every sortable member has been processed.
    134314     */
    135315    public Integer pop() {
    136         if (remaining.isEmpty()) return null;
    137         Integer i = remaining.iterator().next();
    138         done(i);
     316        if (!remaining.isEmpty()){
     317            Integer i = remaining.iterator().next();
     318            done(i);
     319            return i;
     320        }
     321
     322        if (remainingOneway.isEmpty()) return null;
     323        for(Integer i :remainingOneway.keySet()){ //find oneway, whic is connected to more than one way (is between two oneway loops)
     324            for(Node n : onewayReverseMap.ways.get(i)){
     325                if(onewayReverseMap.nodes.containsKey(n) && onewayReverseMap.nodes.get(n).size() > 1) {
     326                    doneOneway(i);
     327                    firstCircular = n;
     328                    return i;
     329                }
     330            }
     331        }
     332
     333        Integer i = remainingOneway.keySet().iterator().next();
     334        doneOneway(i);
    139335        return i;
    140336    }
    141337
    142338    /**
    143339     * This relation member has been processed.
    144      * Remove references in the nodesMap.
     340     * Remove references in the map.nodes.
    145341     */
     342    private void doneOneway(Integer i) {
     343        Set<Node> nodesForward = remainingOneway.get(i);
     344        for (Node n : nodesForward) {
     345            if(onewayMap.nodes.containsKey(n)) onewayMap.nodes.get(n).remove(i);
     346            if(onewayReverseMap.nodes.containsKey(n)) onewayReverseMap.nodes.get(n).remove(i);
     347        }
     348        remainingOneway.remove(i);
     349    }
     350
    146351    private void done(Integer i) {
    147352        remaining.remove(i);
    148         TreeSet<Node> nodes = waysMap.get(i);
     353        Set<Node> nodes = map.ways.get(i);
    149354        for (Node n : nodes) {
    150             boolean result = nodesMap.get(n).remove(i);
     355            boolean result = map.nodes.get(n).remove(i);
    151356            if (!result) throw new AssertionError();
    152357        }
    153358    }
  • src/org/openstreetmap/josm/gui/dialogs/relation/WayConnectionType.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/WayConnectionType.java b/src/org/openstreetmap/josm/gui/dialogs/relation/WayConnectionType.java
    index 347c722..275669f 100644
    a b public class WayConnectionType {  
    1010    private final boolean invalid;
    1111
    1212    /** True, if linked to the previous / next member.  */
    13     public final boolean linkPrev;
    14     public final boolean linkNext;
     13    public boolean linkPrev;
     14    public boolean linkNext;
    1515
    1616    /**
    1717     * direction is FORWARD if the first node of this way is connected to the previous way
    public class WayConnectionType {  
    2222     * If there is no connection to the previous or next member, then
    2323     * direction has the value NONE.
    2424     */
    25     public final Direction direction;
     25    public Direction direction;
    2626
    2727    public enum Direction {
    2828        FORWARD, BACKWARD, ROUNDABOUT_LEFT, ROUNDABOUT_RIGHT, NONE;
    public class WayConnectionType {  
    3535    /** True, if the element is part of a closed loop of ways. */
    3636    public boolean isLoop;
    3737
    38     public boolean isRoundabout = false;
     38    public boolean isOnewayLoopForwardPart = false;
     39    public boolean isOnewayLoopBackwardPart = false;
     40    public boolean isOnewayHead = false;
     41    public boolean isOnewayTail = false;
     42//    public boolean isOnewayOppositeConnected = true;
    3943
    4044    public WayConnectionType(boolean linkPrev, boolean linkNext, Direction direction) {
    4145        this.linkPrev = linkPrev;
    public class WayConnectionType {  
    4549        invalid = false;
    4650    }
    4751
     52    public WayConnectionType(boolean invalid){
     53        this.invalid = invalid;
     54    }
     55
    4856    /** construct invalid instance */
    4957    public WayConnectionType() {
    5058        this.linkPrev = false;
    public class WayConnectionType {  
    6068
    6169    @Override
    6270    public String toString() {
    63         return "[P "+linkPrev+" ;N "+linkNext+" ;D "+direction+" ;L "+isLoop+"]";
     71        return "[P "+linkPrev+" ;N "+linkNext+" ;D "+direction+" ;L "+isLoop+
     72                " ;FP " + isOnewayLoopForwardPart+";BP " + isOnewayLoopBackwardPart+
     73                ";OH " + isOnewayHead+";OT " + isOnewayTail+"]";
    6474    }
    6575
    6676    public String getToolTip() {