Changeset 3230 in josm for trunk


Ignore:
Timestamp:
2010-05-11T08:41:44+02:00 (9 years ago)
Author:
stoecker
Message:

fix #4995 - improve area joinging reliability

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/data_nodist/Join Areas Tests.osm

    r2576 r3230  
    11<?xml version='1.0' encoding='UTF-8'?>
    22<osm version='0.5' generator='JOSM'>
    3   <bounds minlat='49.6358455937926' minlon='8.97891998291015' maxlat='49.6659612524238' maxlon='9.01926040649414' origin='JOSM' />
    4   <bounds minlat='51.0727784461145' minlon='13.7410855293274' maxlat='51.07443677101' maxlon='13.743531703949' origin='OpenStreetMap server' />
    5   <node id='-1' visible='true' lat='49.665557350679464' lon='8.980018030697323'>
     3  <bounds minlat='49.62' minlon='8.978' maxlat='49.666' maxlon='9.02' origin='JOSM' />
     4  <node id='-484' visible='true' lat='49.665557350679464' lon='8.980018030697323'>
    65    <tag k='name' v='Multipolygon' />
    76  </node>
    8   <node id='-2' visible='true' lat='49.66293444373006' lon='8.979904268383734' />
    9   <node id='-3' visible='true' lat='49.66309431357888' lon='8.98771163350794' />
    10   <node id='-4' visible='true' lat='49.66550322539429' lon='8.987481709734286' />
    11   <node id='-5' visible='true' lat='49.661140812390876' lon='8.980754551545285' />
    12   <node id='-6' visible='true' lat='49.66414787714609' lon='8.98167662069808' />
    13   <node id='-7' visible='true' lat='49.66193599760082' lon='8.983668051096597' />
    14   <node id='-8' visible='true' lat='49.66423062929877' lon='8.985896954118042' />
    15   <node id='-9' visible='true' lat='49.66122094281029' lon='8.987593944961972' />
    16   <node id='-10' visible='true' lat='49.665246272951265' lon='8.996673744036638'>
     7  <node id='-482' visible='true' lat='49.66293444373006' lon='8.979904268383734' />
     8  <node id='-480' visible='true' lat='49.66309431357888' lon='8.98771163350794' />
     9  <node id='-478' visible='true' lat='49.66550322539429' lon='8.987481709734286' />
     10  <node id='-476' visible='true' lat='49.661140812390876' lon='8.980754551545285' />
     11  <node id='-474' visible='true' lat='49.66414787714609' lon='8.98167662069808' />
     12  <node id='-472' visible='true' lat='49.66193599760082' lon='8.983668051096597' />
     13  <node id='-470' visible='true' lat='49.66423062929877' lon='8.985896954118042' />
     14  <node id='-468' visible='true' lat='49.66122094281029' lon='8.987593944961972' />
     15  <node id='-466' visible='true' lat='49.665246272951265' lon='8.996673744036638'>
    1716    <tag k='name' v='No Additional Inner Nodes' />
    1817  </node>
    19   <node id='-11' visible='true' lat='49.66260897027721' lon='8.996995205661822' />
    20   <node id='-12' visible='true' lat='49.66247822670222' lon='9.006405902938653' />
    21   <node id='-13' visible='true' lat='49.66509579743186' lon='9.006492938770437' />
    22   <node id='-14' visible='true' lat='49.663673852556485' lon='9.001872836660935' />
    23   <node id='-15' visible='true' lat='49.66356462957665' lon='9.003786018319271' />
    24   <node id='-16' visible='true' lat='49.659381328509475' lon='9.002998050852923' />
    25   <node id='-17' visible='true' lat='49.658143795735675' lon='9.001321365825214' />
    26   <node id='-18' visible='true' lat='49.66102960777179' lon='9.004102187558955' />
    27   <node id='-19' visible='true' lat='49.65966007592634' lon='8.995756927212474'>
     18  <node id='-464' visible='true' lat='49.66260897027721' lon='8.996995205661822' />
     19  <node id='-462' visible='true' lat='49.66247822670222' lon='9.006405902938653' />
     20  <node id='-460' visible='true' lat='49.66509579743186' lon='9.006492938770437' />
     21  <node id='-458' visible='true' lat='49.663673852556485' lon='9.001872836660935' />
     22  <node id='-456' visible='true' lat='49.66356462957665' lon='9.003786018319271' />
     23  <node id='-454' visible='true' lat='49.659381328509475' lon='9.002998050852923' />
     24  <node id='-452' visible='true' lat='49.658143795735675' lon='9.001321365825214' />
     25  <node id='-450' visible='true' lat='49.66102960777179' lon='9.004102187558955' />
     26  <node id='-448' visible='true' lat='49.65966007592634' lon='8.995756927212474'>
    2827    <tag k='name' v='With Inner Nodes, resolve tag conflicts beforehand' />
    2928  </node>
    30   <node id='-20' visible='true' lat='49.65470614469758' lon='9.000967096568774' />
    31   <node id='-21' visible='true' lat='49.658215448844345' lon='8.998101909487305' />
    32   <node id='-22' visible='true' lat='49.65482452933729' lon='8.99800181533644' />
    33   <node id='-23' visible='true' lat='49.65622420968986' lon='8.999630518959972' />
    34   <node id='-24' visible='true' lat='49.656334599426415' lon='8.99596685442522' />
    35   <node id='-25' visible='true' lat='49.664767306664714' lon='9.00358600531296' />
    36   <node id='-26' visible='true' lat='49.65595437351232' lon='9.002670090930014' />
    37   <node id='-27' visible='true' lat='49.66298227683501' lon='9.007574342263663' />
    38   <node id='-28' visible='true' lat='49.652897713964435' lon='8.995398194580462'>
     29  <node id='-446' visible='true' lat='49.65470614469758' lon='9.000967096568774' />
     30  <node id='-444' visible='true' lat='49.658215448844345' lon='8.998101909487305' />
     31  <node id='-442' visible='true' lat='49.65482452933729' lon='8.99800181533644' />
     32  <node id='-440' visible='true' lat='49.65622420968986' lon='8.999630518959972' />
     33  <node id='-438' visible='true' lat='49.656334599426415' lon='8.99596685442522' />
     34  <node id='-436' visible='true' lat='49.664767306664714' lon='9.00358600531296' />
     35  <node id='-434' visible='true' lat='49.65595437351232' lon='9.002670090930014' />
     36  <node id='-432' visible='true' lat='49.66298227683501' lon='9.007574342263663' />
     37  <node id='-430' visible='true' lat='49.652897713964435' lon='8.995398194580462'>
    3938    <tag k='name' v='Overlapping Itself' />
    4039  </node>
    41   <node id='-29' visible='true' lat='49.64759565941927' lon='8.995601060044594' />
    42   <node id='-30' visible='true' lat='49.657294551336726' lon='9.005523880219158' />
    43   <node id='-31' visible='true' lat='49.65131105391522' lon='9.00298658642922' />
    44   <node id='-32' visible='true' lat='49.659323888301465' lon='9.00052935158495' />
    45   <node id='-33' visible='true' lat='49.65151745640557' lon='8.997992057795011' />
    46   <node id='-34' visible='true' lat='49.648042897844014' lon='9.003942985529385' />
    47   <node id='-35' visible='true' lat='49.64965980248303' lon='9.003039719712563' />
    48   <node id='-36' visible='true' lat='49.647526853143034' lon='8.99921412331189' />
    49   <node id='-37' visible='true' lat='49.64862774189198' lon='8.99756699152827' />
    50   <node id='-38' visible='true' lat='49.650123242376026' lon='8.984223634986959' />
    51   <node id='-39' visible='true' lat='49.6534782364111' lon='9.003730452396017' />
    52   <node id='-40' visible='true' lat='49.64965980248303' lon='8.997301325111557' />
    53   <node id='-41' visible='true' lat='49.648702988205066' lon='8.99108732452821' />
    54   <node id='-42' visible='true' lat='49.6498411096278' lon='8.989584718400737' />
    55   <node id='-43' visible='true' lat='49.64837612802103' lon='8.982669694368326' />
    56   <node id='-44' visible='true' lat='49.65267519581664' lon='8.982531354736969'>
     40  <node id='-428' visible='true' lat='49.64759565941927' lon='8.995601060044594' />
     41  <node id='-426' visible='true' lat='49.657294551336726' lon='9.005523880219158' />
     42  <node id='-424' visible='true' lat='49.65131105391522' lon='9.00298658642922' />
     43  <node id='-422' visible='true' lat='49.659323888301465' lon='9.00052935158495' />
     44  <node id='-420' visible='true' lat='49.65151745640557' lon='8.997992057795011' />
     45  <node id='-418' visible='true' lat='49.648042897844014' lon='9.003942985529385' />
     46  <node id='-416' visible='true' lat='49.64965980248303' lon='9.003039719712563' />
     47  <node id='-414' visible='true' lat='49.647526853143034' lon='8.99921412331189' />
     48  <node id='-412' visible='true' lat='49.64862774189198' lon='8.99756699152827' />
     49  <node id='-410' visible='true' lat='49.650123242376026' lon='8.984223634986959' />
     50  <node id='-408' visible='true' lat='49.6534782364111' lon='9.003730452396017' />
     51  <node id='-406' visible='true' lat='49.64965980248303' lon='8.997301325111557' />
     52  <node id='-404' visible='true' lat='49.648702988205066' lon='8.99108732452821' />
     53  <node id='-402' visible='true' lat='49.6498411096278' lon='8.989584718400737' />
     54  <node id='-400' visible='true' lat='49.64837612802103' lon='8.982669694368326' />
     55  <node id='-398' visible='true' lat='49.65267519581664' lon='8.982531354736969'>
    5756    <tag k='name' v='Joining an two areas with self-overlap' />
    5857  </node>
    59   <node id='-45' visible='true' lat='49.64821655131596' lon='8.986618619738293' />
    60   <node id='-46' visible='true' lat='49.65263419499493' lon='8.992015874465995' />
    61   <node id='-47' visible='true' lat='49.65180728142213' lon='8.98635078159476' />
    62   <node id='-48' visible='true' lat='49.65154365880048' lon='8.989894759403137' />
    63   <node id='-49' visible='true' lat='49.664258008517386' lon='8.994834196254615' />
    64   <node id='-50' visible='true' lat='49.66111564855195' lon='8.994837077867599' />
    65   <node id='-51' visible='true' lat='49.661575265881794' lon='9.002417415068946' />
    66   <node id='-52' visible='true' lat='49.64910487989931' lon='8.98434746261959' />
    67   <node id='-53' visible='true' lat='49.66439890567706' lon='9.000253362850133' />
    68   <node id='-54' visible='true' lat='49.66336086872286' lon='9.000172520579218' />
    69   <node id='-55' visible='true' lat='49.66163205844883' lon='8.996182583343169' />
    70   <node id='-56' visible='true' lat='49.66327697326473' lon='8.996037451903568' />
    71   <node id='-57' visible='true' lat='49.65366266054767' lon='8.983765181752341' />
    72   <node id='-58' visible='true' lat='49.65093842995153' lon='8.98362536207706' />
    73   <node id='-59' visible='true' lat='49.65083240952062' lon='8.981009751040055' />
    74   <node id='-60' visible='true' lat='49.653656418352305' lon='8.980925219001294' />
    75   <node id='-61' visible='true' lat='49.65918199608578' lon='8.97945358407826'>
     58  <node id='-396' visible='true' lat='49.64821655131596' lon='8.986618619738293' />
     59  <node id='-394' visible='true' lat='49.65263419499493' lon='8.992015874465995' />
     60  <node id='-392' visible='true' lat='49.65180728142213' lon='8.98635078159476' />
     61  <node id='-390' visible='true' lat='49.65154365880048' lon='8.989894759403137' />
     62  <node id='-388' visible='true' lat='49.664258008517386' lon='8.994834196254615' />
     63  <node id='-386' visible='true' lat='49.66111564855195' lon='8.994837077867599' />
     64  <node id='-384' visible='true' lat='49.661575265881794' lon='9.002417415068946' />
     65  <node id='-382' visible='true' lat='49.64910487989931' lon='8.98434746261959' />
     66  <node id='-380' visible='true' lat='49.66439890567706' lon='9.000253362850133' />
     67  <node id='-378' visible='true' lat='49.66336086872286' lon='9.000172520579218' />
     68  <node id='-376' visible='true' lat='49.66163205844883' lon='8.996182583343169' />
     69  <node id='-374' visible='true' lat='49.66327697326473' lon='8.996037451903568' />
     70  <node id='-372' visible='true' lat='49.65366266054767' lon='8.983765181752341' />
     71  <node id='-370' visible='true' lat='49.65093842995153' lon='8.98362536207706' />
     72  <node id='-368' visible='true' lat='49.65083240952062' lon='8.981009751040055' />
     73  <node id='-366' visible='true' lat='49.653656418352305' lon='8.980925219001294' />
     74  <node id='-364' visible='true' lat='49.65918199608578' lon='8.97945358407826'>
    7675    <tag k='name' v='Intersection already have nodes added' />
    7776  </node>
    78   <node id='-62' visible='true' lat='49.65687579780412' lon='8.979558364399258' />
    79   <node id='-63' visible='true' lat='49.65684188230803' lon='8.984902160770126' />
    80   <node id='-64' visible='true' lat='49.65918199608578' lon='8.984744990288629' />
    81   <node id='-65' visible='true' lat='49.65687579780412' lon='8.980815728251226' />
    82   <node id='-66' visible='true' lat='49.65809673992071' lon='8.980815728251226' />
    83   <node id='-67' visible='true' lat='49.65792716645855' lon='8.983382846115664' />
    84   <node id='-68' visible='true' lat='49.65701145955204' lon='8.98306850515267' />
    85   <node id='-69' visible='true' lat='49.65545132661812' lon='8.981025288893223' />
    86   <node id='-70' visible='true' lat='49.65558501959522' lon='8.988437026602341' />
    87   <node id='-71' visible='true' lat='49.65931567881406' lon='8.986865321787379'>
     77  <node id='-362' visible='true' lat='49.65687579780412' lon='8.979558364399258' />
     78  <node id='-360' visible='true' lat='49.65684188230803' lon='8.984902160770126' />
     79  <node id='-358' visible='true' lat='49.65918199608578' lon='8.984744990288629' />
     80  <node id='-356' visible='true' lat='49.65687579780412' lon='8.980815728251226' />
     81  <node id='-354' visible='true' lat='49.65809673992071' lon='8.980815728251226' />
     82  <node id='-352' visible='true' lat='49.65792716645855' lon='8.983382846115664' />
     83  <node id='-350' visible='true' lat='49.65701145955204' lon='8.98306850515267' />
     84  <node id='-348' visible='true' lat='49.65545132661812' lon='8.981025288893223' />
     85  <node id='-346' visible='true' lat='49.65558501959522' lon='8.988437026602341' />
     86  <node id='-344' visible='true' lat='49.65931567881406' lon='8.986865321787379'>
    8887    <tag k='name' v='SOME Intersection already have nodes added' />
    8988  </node>
    90   <node id='-72' visible='true' lat='49.65700948686801' lon='8.986970102108378' />
    91   <node id='-73' visible='true' lat='49.65823042563044' lon='8.988227465960346' />
    92   <node id='-74' visible='true' lat='49.65931567881406' lon='8.992156727997747' />
    93   <node id='-75' visible='true' lat='49.65697557146509' lon='8.992313898479246' />
    94   <node id='-76' visible='true' lat='49.65806085263415' lon='8.990794583824783' />
    95   <node id='-77' visible='true' lat='49.65700948686801' lon='8.988227465960346' />
    96   <node id='-78' visible='true' lat='49.660221488976575' lon='8.977137289660517' />
    97   <node id='-79' visible='true' lat='49.66019710027813' lon='9.021519330497165' />
    98   <node id='-80' visible='true' lat='49.66824309940781' lon='8.99379608098765' />
    99   <node id='-81' visible='true' lat='49.665325869211465' lon='9.010629016616129'>
     89  <node id='-342' visible='true' lat='49.65700948686801' lon='8.986970102108378' />
     90  <node id='-340' visible='true' lat='49.65823042563044' lon='8.988227465960346' />
     91  <node id='-338' visible='true' lat='49.65931567881406' lon='8.992156727997747' />
     92  <node id='-336' visible='true' lat='49.65697557146509' lon='8.992313898479246' />
     93  <node id='-334' visible='true' lat='49.65806085263415' lon='8.990794583824783' />
     94  <node id='-332' visible='true' lat='49.65700948686801' lon='8.988227465960346' />
     95  <node id='-330' visible='true' lat='49.660221488976575' lon='8.977137289660517' />
     96  <node id='-328' visible='true' lat='49.66019710027813' lon='9.021519330497165' />
     97  <node id='-326' visible='true' lat='49.66824309940781' lon='8.99379608098765' />
     98  <node id='-324' visible='true' lat='49.665325869211465' lon='9.010629016616129'>
    10099    <tag k='name' v='Member of some (i.e. not multigon) relation' />
    101100  </node>
    102   <node id='-82' visible='true' lat='49.65418064466472' lon='9.02166564057246' />
    103   <node id='-83' visible='true' lat='49.66084008723247' lon='9.01744447037755' />
    104   <node id='-84' visible='true' lat='49.66089950426598' lon='9.010651964271892' />
    105   <node id='-85' visible='true' lat='49.66770174614116' lon='9.008788568211484' />
    106   <node id='-86' action='modify' visible='true' lat='49.6353930124394' lon='8.99395938766279' />
    107   <node id='-87' visible='true' lat='49.654142227092336' lon='8.97793106762297' />
    108   <node id='-88' action='modify' visible='true' lat='49.63560427014124' lon='9.009633761966247' />
    109   <node id='-89' visible='true' lat='49.66149367061061' lon='9.016824883671967' />
    110   <node id='-90' visible='true' lat='49.66156794089354' lon='9.014644856374543' />
    111   <node id='-91' visible='true' lat='49.6657566013461' lon='9.017559208656362' />
    112   <node id='-92' visible='true' lat='49.665266457583265' lon='9.016733093048918' />
    113   <node id='-93' visible='true' lat='49.662236368338334' lon='9.011707556436962' />
    114   <node id='-94' visible='true' lat='49.66210268358402' lon='9.017513313344837' />
    115   <node id='-95' visible='true' lat='49.663929676767346' lon='9.01471369934183' />
    116   <node id='-96' visible='true' lat='49.663989090028004' lon='9.01179934706001' />
    117   <node id='-97' visible='true' lat='49.656561909834345' lon='9.011712617586559' />
    118   <node id='-98' visible='true' lat='49.65825541574074' lon='9.014718760491427' />
    119   <node id='-99' visible='true' lat='49.65507724377221' lon='9.016274166792183' />
    120   <node id='-100' visible='true' lat='49.65831483593041' lon='9.011804408209608' />
    121   <node id='-101' visible='true' lat='49.65954150350348' lon='9.010225255249217'>
     101  <node id='-322' visible='true' lat='49.65418064466472' lon='9.02166564057246' />
     102  <node id='-320' visible='true' lat='49.66084008723247' lon='9.01744447037755' />
     103  <node id='-318' visible='true' lat='49.66089950426598' lon='9.010651964271892' />
     104  <node id='-316' visible='true' lat='49.66770174614116' lon='9.008788568211484' />
     105  <node id='-314' visible='true' lat='49.61790602056547' lon='8.993872862460284' />
     106  <node id='-312' visible='true' lat='49.654142227092336' lon='8.97793106762297' />
     107  <node id='-310' visible='true' lat='49.6179783304037' lon='9.009806812371261' />
     108  <node id='-308' visible='true' lat='49.66149367061061' lon='9.016824883671967' />
     109  <node id='-306' visible='true' lat='49.66156794089354' lon='9.014644856374543' />
     110  <node id='-304' visible='true' lat='49.6657566013461' lon='9.017559208656362' />
     111  <node id='-302' visible='true' lat='49.665266457583265' lon='9.016733093048918' />
     112  <node id='-300' visible='true' lat='49.662236368338334' lon='9.011707556436962' />
     113  <node id='-298' visible='true' lat='49.66210268358402' lon='9.017513313344837' />
     114  <node id='-296' visible='true' lat='49.663929676767346' lon='9.01471369934183' />
     115  <node id='-294' visible='true' lat='49.663989090028004' lon='9.01179934706001' />
     116  <node id='-292' visible='true' lat='49.656561909834345' lon='9.011712617586559' />
     117  <node id='-290' visible='true' lat='49.65825541574074' lon='9.014718760491427' />
     118  <node id='-288' visible='true' lat='49.65507724377221' lon='9.016274166792183' />
     119  <node id='-286' visible='true' lat='49.65831483593041' lon='9.011804408209608' />
     120  <node id='-284' visible='true' lat='49.65954150350348' lon='9.010225255249217'>
    122121    <tag k='name' v='One Area already part of multipolygon (as outer)' />
    123122  </node>
    124   <node id='-102' visible='true' lat='49.65948208481168' lon='9.016329331682007' />
    125   <node id='-103' visible='true' lat='49.66572689580407' lon='9.018683643788718' />
    126   <node id='-104' visible='true' lat='49.66467233731082' lon='9.018729539100242' />
    127   <node id='-105' visible='true' lat='49.650467504431084' lon='9.01556653387284' />
    128   <node id='-106' visible='true' lat='49.650467504431084' lon='9.012653673442712' />
    129   <node id='-107' visible='true' lat='49.6577783879124' lon='9.01859068072843' />
    130   <node id='-108' visible='true' lat='49.659950690584154' lon='9.018522543642344' />
    131   <node id='-109' visible='true' lat='49.659983770585875' lon='9.015660786026782' />
    132   <node id='-110' visible='true' lat='49.65777838791238' lon='9.0156778202983' />
    133   <node id='-111' visible='true' lat='49.655114612313845' lon='9.01024820290498' />
    134   <node id='-112' visible='true' lat='49.65649630973553' lon='9.01456121513066' />
    135   <node id='-113' visible='true' lat='49.649790825127035' lon='9.010994229724082' />
    136   <node id='-114' visible='true' lat='49.64907390166997' lon='9.010241166221228' />
    137   <node id='-115' visible='true' lat='49.64972521590133' lon='9.013842827268181' />
    138   <node id='-116' visible='true' lat='49.652640133446276' lon='9.015498396786755' />
    139   <node id='-117' visible='true' lat='49.65267321841768' lon='9.012636639171191' />
    140   <node id='-118' visible='true' lat='49.653441916259965' lon='9.016322294998254' />
    141   <node id='-119' visible='true' lat='49.651484566652904' lon='9.01400037262895' />
    142   <node id='-120' visible='true' lat='49.649036528490285' lon='9.01626713010843' />
    143   <node id='-121' visible='true' lat='49.64474487637503' lon='9.013313148784425' />
    144   <node id='-122' visible='true' lat='49.64329477394559' lon='9.00982115694612' />
    145   <node id='-123' visible='true' lat='49.64633804682556' lon='9.016044421132413' />
    146   <node id='-124' visible='true' lat='49.6440995060445' lon='9.015089670434026' />
    147   <node id='-125' visible='true' lat='49.64698953060391' lon='8.97763933322747' />
    148   <node id='-126' visible='true' lat='49.64702795382207' lon='9.021373906176958' />
    149   <node id='-127' visible='true' lat='49.651543995109876' lon='9.011086020347133' />
    150   <node id='-128' visible='true' lat='49.65350134232707' lon='9.010218218565463'>
     123  <node id='-282' visible='true' lat='49.65948208481168' lon='9.016329331682007' />
     124  <node id='-280' visible='true' lat='49.66572689580407' lon='9.018683643788718' />
     125  <node id='-278' visible='true' lat='49.66467233731082' lon='9.018729539100242' />
     126  <node id='-276' visible='true' lat='49.650467504431084' lon='9.01556653387284' />
     127  <node id='-274' visible='true' lat='49.650467504431084' lon='9.012653673442712' />
     128  <node id='-272' visible='true' lat='49.6577783879124' lon='9.01859068072843' />
     129  <node id='-270' visible='true' lat='49.659950690584154' lon='9.018522543642344' />
     130  <node id='-268' visible='true' lat='49.659983770585875' lon='9.015660786026782' />
     131  <node id='-266' visible='true' lat='49.65777838791238' lon='9.0156778202983' />
     132  <node id='-264' visible='true' lat='49.655114612313845' lon='9.01024820290498' />
     133  <node id='-262' visible='true' lat='49.65649630973553' lon='9.01456121513066' />
     134  <node id='-260' visible='true' lat='49.649790825127035' lon='9.010994229724082' />
     135  <node id='-258' visible='true' lat='49.64907390166997' lon='9.010241166221228' />
     136  <node id='-256' visible='true' lat='49.64972521590133' lon='9.013842827268181' />
     137  <node id='-254' visible='true' lat='49.652640133446276' lon='9.015498396786755' />
     138  <node id='-252' visible='true' lat='49.65267321841768' lon='9.012636639171191' />
     139  <node id='-250' visible='true' lat='49.653441916259965' lon='9.016322294998254' />
     140  <node id='-248' visible='true' lat='49.651484566652904' lon='9.01400037262895' />
     141  <node id='-246' visible='true' lat='49.649036528490285' lon='9.01626713010843' />
     142  <node id='-244' visible='true' lat='49.64474487637503' lon='9.013313148784425' />
     143  <node id='-242' visible='true' lat='49.64329477394559' lon='9.00982115694612' />
     144  <node id='-240' visible='true' lat='49.64633804682556' lon='9.016044421132413' />
     145  <node id='-238' visible='true' lat='49.6440995060445' lon='9.015089670434026' />
     146  <node id='-236' visible='true' lat='49.64698953060391' lon='8.97763933322747' />
     147  <node id='-234' visible='true' lat='49.64702795382207' lon='9.021373906176958' />
     148  <node id='-232' visible='true' lat='49.651543995109876' lon='9.011086020347133' />
     149  <node id='-230' visible='true' lat='49.65350134232707' lon='9.010218218565463'>
    151150    <tag k='name' v='One Area already part of multipolygon (as inner)' />
    152151  </node>
    153   <node id='-129' visible='true' lat='49.64442618533402' lon='9.018507236795525' />
    154   <node id='-130' visible='true' lat='49.64634787643868' lon='9.01859251804108' />
    155   <node id='-131' visible='true' lat='49.646377327053195' lon='9.017591884759854' />
    156   <node id='-132' visible='true' lat='49.64446300005248' lon='9.017591884759854' />
    157   <node id='-133' action='modify' visible='true' lat='49.644279396738646' lon='8.99701844322583' />
    158   <node id='-134' action='modify' visible='true' lat='49.645108516691536' lon='9.00501200093294' />
    159   <node id='-135' action='modify' visible='true' lat='49.64579713321828' lon='9.001725329495672' />
    160   <node id='-136' action='modify' visible='true' lat='49.643570600890634' lon='9.005424239693767' />
    161   <node id='-137' visible='true' lat='49.645694403782294' lon='9.012131348650524' />
    162   <node id='-138' visible='true' lat='49.646452701397266' lon='9.00974135512665'>
     152  <node id='-228' visible='true' lat='49.64442618533402' lon='9.018507236795525' />
     153  <node id='-226' visible='true' lat='49.64634787643868' lon='9.01859251804108' />
     154  <node id='-224' visible='true' lat='49.646377327053195' lon='9.017591884759854' />
     155  <node id='-222' visible='true' lat='49.64446300005248' lon='9.017591884759854' />
     156  <node id='-220' visible='true' lat='49.644279396738646' lon='8.99701844322583' />
     157  <node id='-218' visible='true' lat='49.645108516691536' lon='9.00501200093294' />
     158  <node id='-216' visible='true' lat='49.64579713321828' lon='9.001725329495672' />
     159  <node id='-214' visible='true' lat='49.643570600890634' lon='9.005424239693767' />
     160  <node id='-212' visible='true' lat='49.645694403782294' lon='9.012131348650524' />
     161  <node id='-210' visible='true' lat='49.646452701397266' lon='9.00974135512665'>
    163162    <tag k='name' v='Both part of other relations' />
    164163  </node>
    165   <node id='-139' visible='true' lat='49.64566131406722' lon='9.01503858959705' />
    166   <node id='-140' visible='true' lat='49.64477854294109' lon='9.010865000644996' />
    167   <node id='-141' visible='true' lat='49.6436516438452' lon='9.013337536747516' />
    168   <node id='-142' visible='true' lat='49.64333102750582' lon='9.015932402078883' />
    169   <node id='-143' visible='true' lat='49.64364363066422' lon='9.010830064185653' />
    170   <node id='-144' visible='true' lat='49.6440995060445' lon='9.012176810003897' />
    171   <node id='-145' action='modify' visible='true' lat='49.644215448513066' lon='8.987601210318644' />
    172   <node id='-146' action='modify' visible='true' lat='49.64509437228782' lon='8.985632145182455' />
    173   <node id='-147' action='modify' visible='true' lat='49.64512070290696' lon='8.990191229749867' />
    174   <node id='-148' action='modify' visible='true' lat='49.64400653203681' lon='8.985527741087623' />
    175   <node id='-149' action='modify' visible='true' lat='49.64362715512701' lon='8.983795590458412' />
    176   <node id='-150' action='modify' visible='true' lat='49.6438359138228' lon='8.988873075900425' />
    177   <node id='-151' action='modify' visible='true' lat='49.64624752120218' lon='8.990209078516749' />
    178   <node id='-152' action='modify' visible='true' lat='49.64561767902291' lon='8.987111582364214' />
    179   <node id='-153' action='modify' visible='true' lat='49.645870282835396' lon='9.000573288940334' />
    180   <node id='-154' action='modify' visible='true' lat='49.644533441390884' lon='9.001738472218983' />
    181   <node id='-155' action='modify' visible='true' lat='49.64620102922634' lon='8.995285052653605' />
    182   <node id='-156' action='modify' visible='true' lat='49.645549394972946' lon='8.997512960693886' />
    183   <node id='-157' action='modify' visible='true' lat='49.64390917555046' lon='9.00236900726505' />
    184   <node id='-158' action='modify' visible='true' lat='49.643583272941804' lon='8.996426078862356' />
    185   <node id='-159' action='modify' visible='true' lat='49.645064815871' lon='8.999528632035787' />
    186   <node id='-160' action='modify' visible='true' lat='49.64660348405886' lon='9.007804150387257' />
    187   <node id='-161' visible='true' lat='49.67180165588925' lon='9.019276197911166'>
     164  <node id='-208' visible='true' lat='49.64566131406722' lon='9.01503858959705' />
     165  <node id='-206' visible='true' lat='49.64477854294109' lon='9.010865000644996' />
     166  <node id='-204' visible='true' lat='49.6436516438452' lon='9.013337536747516' />
     167  <node id='-202' visible='true' lat='49.64333102750582' lon='9.015932402078883' />
     168  <node id='-200' visible='true' lat='49.64364363066422' lon='9.010830064185653' />
     169  <node id='-198' visible='true' lat='49.6440995060445' lon='9.012176810003897' />
     170  <node id='-196' visible='true' lat='49.644215448513066' lon='8.987601210318644' />
     171  <node id='-194' visible='true' lat='49.64509437228782' lon='8.985632145182455' />
     172  <node id='-192' visible='true' lat='49.64512070290696' lon='8.990191229749867' />
     173  <node id='-190' visible='true' lat='49.64400653203681' lon='8.985527741087623' />
     174  <node id='-188' visible='true' lat='49.64362715512701' lon='8.983795590458412' />
     175  <node id='-186' visible='true' lat='49.6438359138228' lon='8.988873075900425' />
     176  <node id='-184' visible='true' lat='49.64624752120218' lon='8.990209078516749' />
     177  <node id='-182' visible='true' lat='49.64561767902291' lon='8.987111582364214' />
     178  <node id='-180' visible='true' lat='49.645870282835396' lon='9.000573288940334' />
     179  <node id='-178' visible='true' lat='49.644533441390884' lon='9.001738472218983' />
     180  <node id='-176' visible='true' lat='49.64620102922634' lon='8.995285052653605' />
     181  <node id='-174' visible='true' lat='49.645549394972946' lon='8.997512960693886' />
     182  <node id='-172' visible='true' lat='49.64390917555046' lon='9.00236900726505' />
     183  <node id='-170' visible='true' lat='49.643583272941804' lon='8.996426078862356' />
     184  <node id='-168' visible='true' lat='49.645064815871' lon='8.999528632035787' />
     185  <node id='-166' visible='true' lat='49.64660348405886' lon='9.007804150387257' />
     186  <node id='-164' visible='true' lat='49.67180165588925' lon='9.019276197911166'>
    188187    <tag k='name' v='out of bounds' />
    189188  </node>
    190189  <node id='-162' visible='true' lat='49.66726589111355' lon='9.018808975183893' />
    191   <node id='-163' action='modify' visible='true' lat='49.64294039575888' lon='8.98264180269116' />
    192   <node id='-164' action='modify' visible='true' lat='49.64654691824636' lon='8.982418392157395' />
    193   <node id='-165' action='modify' visible='true' lat='49.6465677851024' lon='8.992596999330347' />
    194   <node id='-166' action='modify' visible='true' lat='49.64305580574678' lon='8.992869020494213' />
    195   <node id='-167' visible='true' lat='49.66722269132057' lon='9.026351284924155' />
    196   <node id='-168' visible='true' lat='49.671931242953896' lon='9.026017554404675' />
    197   <node id='-169' visible='true' lat='49.66903704959538' lon='9.022880487521558' />
    198   <node id='-170' visible='true' lat='49.664846643627826' lon='9.02334771024883' />
    199   <node id='-171' action='modify' visible='true' lat='49.64619224514668' lon='8.984061673983168' />
    200   <node id='-172' action='modify' visible='true' lat='49.64560080131112' lon='8.988407502515859' />
    201   <node id='-173' visible='true' lat='49.66476023970688' lon='9.029688590118962' />
    202   <node id='-174' visible='true' lat='49.6687778596993' lon='9.028553906352727' />
    203   <node id='-175' action='modify' visible='true' lat='49.64226790264086' lon='9.020479682913138' />
    204   <node id='-176' action='modify' visible='true' lat='49.64222947566583' lon='8.976745109963648' />
    205   <node id='-177' visible='true' lat='49.63766059241029' lon='8.985426371428245' />
    206   <node id='-178' action='modify' visible='true' lat='49.64113713627012' lon='8.99764014460778' />
    207   <node id='-179' visible='true' lat='49.63620969614912' lon='8.984267584902272' />
    208   <node id='-180' visible='true' lat='49.63831098015055' lon='8.986005764691233' />
    209   <node id='-181' action='modify' visible='true' lat='49.63833608786159' lon='9.001965476258553' />
    210   <node id='-182' action='modify' visible='true' lat='49.63866179944343' lon='9.001060174285136' />
    211   <node id='-183' action='modify' visible='true' lat='49.636707497273726' lon='8.996902491147958' />
    212   <node id='-184' action='modify' visible='true' lat='49.63672921217317' lon='9.001496060420484' />
    213   <node id='-185' visible='true' lat='49.64166284075567' lon='8.990370527272402' />
    214   <node id='-186' visible='true' lat='49.64038715981111' lon='8.984846978165258' />
    215   <node id='-187' visible='true' lat='49.63635979087037' lon='8.9920314546263' />
    216   <node id='-188' visible='true' lat='49.63665997892509' lon='8.979825569886037' />
    217   <node id='-189' visible='true' lat='49.64158780162527' lon='8.984460715989934' />
    218   <node id='-190' visible='true' lat='49.63671001008765' lon='8.985696754950974' />
    219   <node id='-191' visible='true' lat='49.639336573937996' lon='8.985619502515908' />
    220   <node id='-192' visible='true' lat='49.64153777547409' lon='8.98052084180162' />
    221   <node id='-193' action='modify' visible='true' lat='49.63919649619353' lon='9.000021094269913' />
    222   <node id='-194' visible='true' lat='49.63655427055324' lon='9.003685105162774' />
    223   <node id='-195' visible='true' lat='49.638889008438305' lon='9.003170088929009' />
    224   <node id='-196' visible='true' lat='49.63766439678692' lon='9.008322826347838' />
    225   <node id='-197' visible='true' lat='49.636803870494575' lon='9.005634441607576' />
    226   <node id='-198' visible='true' lat='49.64135304304343' lon='9.008042625328157' />
    227   <node id='-199' action='modify' visible='true' lat='49.641397690721426' lon='9.002032535663991' />
    228   <node id='-200' visible='true' lat='49.639702839791006' lon='9.002946110514843' />
    229   <node id='-201' visible='true' lat='49.641505032635514' lon='9.005561427326938' />
    230   <node id='-202' action='modify' visible='true' lat='49.640355464550595' lon='9.000557228744347' />
    231   <node id='-203' action='modify' visible='true' lat='49.63983876223289' lon='8.999763400318008' />
    232   <node id='-204' action='modify' visible='true' lat='49.640963432528' lon='9.002300773285747' />
    233   <node id='-205' action='modify' visible='true' lat='49.640355464550595' lon='9.00163017923136' />
    234   <node id='-206' action='modify' visible='true' lat='49.641650361020126' lon='9.011375542032631' />
    235   <node id='-207' action='modify' visible='true' lat='49.63994510769946' lon='9.011537754906723' />
    236   <node id='-208' action='modify' visible='true' lat='49.63989778320692' lon='9.01301762121565' />
    237   <node id='-209' action='modify' timestamp='2008-03-17T23:16:02Z' visible='true' lat='49.63851559945754' lon='9.011923928883068'>
    238     <tag k='created_by' v='Merkaartor 0.10' />
    239   </node>
    240   <node id='-210' action='modify' timestamp='2008-03-17T23:16:00Z' visible='true' lat='49.63931004998166' lon='9.014994879645652'>
    241     <tag k='created_by' v='Merkaartor 0.10' />
    242   </node>
    243   <node id='-211' action='modify' timestamp='2008-03-17T23:16:02Z' visible='true' lat='49.63656290879177' lon='9.01184224653937'>
    244     <tag k='created_by' v='Merkaartor 0.10' />
    245   </node>
    246   <node id='-212' action='modify' timestamp='2008-03-19T00:23:09Z' visible='true' lat='49.638495992538296' lon='9.013041516659012'>
    247     <tag k='created_by' v='Merkaartor 0.10' />
    248   </node>
    249   <node id='-213' action='modify' timestamp='2008-03-17T23:16:00Z' visible='true' lat='49.639297465489946' lon='9.013075043737933'>
    250     <tag k='created_by' v='Merkaartor 0.10' />
    251   </node>
    252   <node id='-214' action='modify' timestamp='2008-03-17T23:16:01Z' visible='true' lat='49.63932787364639' lon='9.011341760369241'>
    253     <tag k='created_by' v='Merkaartor 0.10' />
    254   </node>
    255   <node id='-215' action='modify' timestamp='2008-03-17T23:16:00Z' visible='true' lat='49.6362341674196' lon='9.011212347946481' />
    256   <node id='-216' action='modify' timestamp='2008-06-18T15:47:24Z' visible='true' lat='49.63846974351432' lon='9.014959728094702' />
    257   <node id='-217' action='modify' timestamp='2008-03-17T23:16:01Z' visible='true' lat='49.639285639926086' lon='9.016386267202325'>
    258     <tag k='created_by' v='Merkaartor 0.10' />
    259   </node>
    260   <node id='-218' action='modify' timestamp='2008-03-17T23:16:01Z' visible='true' lat='49.63614569649766' lon='9.016254920813461'>
    261     <tag k='created_by' v='Merkaartor 0.10' />
    262   </node>
    263   <node id='-219' action='modify' timestamp='2008-03-17T23:16:02Z' visible='true' lat='49.636497278618506' lon='9.01558299248487' />
    264   <node id='-220' action='modify' visible='true' lat='49.64173715249402' lon='9.01288893804428' />
    265   <node id='-221' action='modify' visible='true' lat='49.63997057825359' lon='9.017121223877993' />
    266   <node id='-222' action='modify' visible='true' lat='49.6418769973781' lon='9.016690773382148' />
    267   <node id='-223' action='modify' timestamp='2008-03-17T23:16:02Z' visible='true' lat='49.638457370514' lon='9.015664984322639'>
    268     <tag k='created_by' v='Merkaartor 0.10' />
    269   </node>
    270   <way id='-224' visible='true'>
    271     <nd ref='-171' />
    272     <nd ref='-151' />
    273     <nd ref='-147' />
    274     <nd ref='-146' />
    275     <nd ref='-148' />
    276     <nd ref='-145' />
    277     <nd ref='-152' />
    278     <nd ref='-172' />
    279     <nd ref='-150' />
    280     <nd ref='-149' />
    281     <nd ref='-171' />
     190  <node id='-160' visible='true' lat='49.64294039575888' lon='8.98264180269116' />
     191  <node id='-158' visible='true' lat='49.64654691824636' lon='8.982418392157395' />
     192  <node id='-156' visible='true' lat='49.6465677851024' lon='8.992596999330347' />
     193  <node id='-154' visible='true' lat='49.64305580574678' lon='8.992869020494213' />
     194  <node id='-152' visible='true' lat='49.66722269132057' lon='9.026351284924155' />
     195  <node id='-150' visible='true' lat='49.671931242953896' lon='9.026017554404675' />
     196  <node id='-148' visible='true' lat='49.66903704959538' lon='9.022880487521558' />
     197  <node id='-146' visible='true' lat='49.664846643627826' lon='9.02334771024883' />
     198  <node id='-144' visible='true' lat='49.64619224514668' lon='8.984061673983168' />
     199  <node id='-142' visible='true' lat='49.64560080131112' lon='8.988407502515859' />
     200  <node id='-140' visible='true' lat='49.66476023970688' lon='9.029688590118962' />
     201  <node id='-138' visible='true' lat='49.6687778596993' lon='9.028553906352727' />
     202  <node id='-136' visible='true' lat='49.64226790264086' lon='9.020479682913138' />
     203  <node id='-134' visible='true' lat='49.64222947566583' lon='8.976745109963648' />
     204  <node id='-132' visible='true' lat='49.63766059241029' lon='8.985426371428245' />
     205  <node id='-130' visible='true' lat='49.64113713627012' lon='8.99764014460778' />
     206  <node id='-128' visible='true' lat='49.63620969614912' lon='8.984267584902272' />
     207  <node id='-126' visible='true' lat='49.63831098015055' lon='8.986005764691233' />
     208  <node id='-124' visible='true' lat='49.63833608786159' lon='9.001965476258553' />
     209  <node id='-122' visible='true' lat='49.63866179944343' lon='9.001060174285136' />
     210  <node id='-120' visible='true' lat='49.636707497273726' lon='8.996902491147958' />
     211  <node id='-118' visible='true' lat='49.63672921217317' lon='9.001496060420484' />
     212  <node id='-116' visible='true' lat='49.64166284075567' lon='8.990370527272402' />
     213  <node id='-114' visible='true' lat='49.64038715981111' lon='8.984846978165258' />
     214  <node id='-112' visible='true' lat='49.63635979087037' lon='8.9920314546263' />
     215  <node id='-110' visible='true' lat='49.63665997892509' lon='8.979825569886037' />
     216  <node id='-108' visible='true' lat='49.64158780162527' lon='8.984460715989934' />
     217  <node id='-106' visible='true' lat='49.63671001008765' lon='8.985696754950974' />
     218  <node id='-104' visible='true' lat='49.639336573937996' lon='8.985619502515908' />
     219  <node id='-102' visible='true' lat='49.64153777547409' lon='8.98052084180162' />
     220  <node id='-100' visible='true' lat='49.63919649619353' lon='9.000021094269913' />
     221  <node id='-98' visible='true' lat='49.63655427055324' lon='9.003685105162774' />
     222  <node id='-96' visible='true' lat='49.638889008438305' lon='9.003170088929009' />
     223  <node id='-94' visible='true' lat='49.63766439678692' lon='9.008322826347838' />
     224  <node id='-92' visible='true' lat='49.636803870494575' lon='9.005634441607576' />
     225  <node id='-90' visible='true' lat='49.64135304304343' lon='9.008042625328157' />
     226  <node id='-88' visible='true' lat='49.641397690721426' lon='9.002032535663991' />
     227  <node id='-86' visible='true' lat='49.639702839791006' lon='9.002946110514843' />
     228  <node id='-84' visible='true' lat='49.641505032635514' lon='9.005561427326938' />
     229  <node id='-82' visible='true' lat='49.640355464550595' lon='9.000557228744347' />
     230  <node id='-80' visible='true' lat='49.63983876223289' lon='8.999763400318008' />
     231  <node id='-78' visible='true' lat='49.640963432528' lon='9.002300773285747' />
     232  <node id='-76' visible='true' lat='49.640355464550595' lon='9.00163017923136' />
     233  <node id='-74' visible='true' lat='49.641650361020126' lon='9.011375542032631' />
     234  <node id='-72' visible='true' lat='49.63994510769946' lon='9.011537754906723' />
     235  <node id='-70' visible='true' lat='49.63989778320692' lon='9.01301762121565' />
     236  <node id='-68' visible='true' lat='49.63851559945754' lon='9.011923928883068' />
     237  <node id='-66' visible='true' lat='49.63931004998166' lon='9.014994879645652' />
     238  <node id='-64' visible='true' lat='49.63656290879177' lon='9.01184224653937' />
     239  <node id='-62' visible='true' lat='49.638495992538296' lon='9.013041516659012' />
     240  <node id='-60' visible='true' lat='49.639297465489946' lon='9.013075043737933' />
     241  <node id='-58' visible='true' lat='49.63932787364639' lon='9.011341760369241' />
     242  <node id='-56' visible='true' lat='49.6362341674196' lon='9.011212347946481' />
     243  <node id='-54' visible='true' lat='49.63846974351432' lon='9.014959728094702' />
     244  <node id='-52' visible='true' lat='49.639285639926086' lon='9.016386267202325' />
     245  <node id='-50' visible='true' lat='49.63614569649766' lon='9.016254920813461' />
     246  <node id='-48' visible='true' lat='49.636497278618506' lon='9.01558299248487' />
     247  <node id='-46' visible='true' lat='49.64173715249402' lon='9.01288893804428' />
     248  <node id='-44' visible='true' lat='49.63997057825359' lon='9.017121223877993' />
     249  <node id='-42' visible='true' lat='49.6418769973781' lon='9.016690773382148' />
     250  <node id='-40' visible='true' lat='49.638457370514' lon='9.015664984322639' />
     251  <node id='-38' visible='true' lat='49.631502879910435' lon='8.984843899814363' />
     252  <node id='-36' visible='true' lat='49.63276591351912' lon='8.988186843940152' />
     253  <node id='-34' visible='true' lat='49.63332524651039' lon='8.982503838926318' />
     254  <node id='-32' visible='true' lat='49.631033744799794' lon='8.984788184078935' />
     255  <node id='-30' visible='true' lat='49.63087135082409' lon='8.987936123130721' />
     256  <node id='-28' visible='true' lat='49.632224617411495' lon='8.98487175768208' />
     257  <node id='-26' visible='true' lat='49.63191788028032' lon='8.988911148500739' />
     258  <node id='-24' visible='true' lat='49.63282112167936' lon='8.984873752905482' />
     259  <node id='-22' visible='true' lat='49.629896975600474' lon='8.982336691720024' />
     260  <node id='-20' visible='true' lat='49.633361332289276' lon='8.984899615549795' />
     261  <node id='-18' visible='true' lat='49.63146679275468' lon='8.988019696733868' />
     262  <node id='-16' visible='true' lat='49.63204418403885' lon='8.988131128204722' />
     263  <node id='-14' visible='true' lat='49.629734577834874' lon='8.988799717029881' />
     264  <node id='-12' visible='true' lat='49.62984284307208' lon='8.984760326211225' />
     265  <node id='-10' visible='true' lat='49.633235031946306' lon='8.989050437839317' />
     266  <node id='-8' visible='true' lat='49.634715291319765' lon='8.977209351682495' />
     267  <node id='-6' visible='true' lat='49.6347537242248' lon='9.020943924631984' />
     268  <node id='-4' visible='true' lat='49.62789803392637' lon='8.977125941387275' />
     269  <node id='-2' visible='true' lat='49.62793647221095' lon='9.020860514336768' />
     270  <way id='-588' visible='true'>
     271    <nd ref='-144' />
     272    <nd ref='-184' />
     273    <nd ref='-192' />
     274    <nd ref='-194' />
     275    <nd ref='-190' />
     276    <nd ref='-196' />
     277    <nd ref='-182' />
     278    <nd ref='-142' />
     279    <nd ref='-186' />
     280    <nd ref='-188' />
     281    <nd ref='-144' />
    282282    <tag k='name' v='Thing in the Middle' />
    283283  </way>
    284   <way id='-225' visible='true'>
    285     <nd ref='-164' />
    286     <nd ref='-163' />
     284  <way id='-586' visible='true'>
     285    <nd ref='-158' />
     286    <nd ref='-160' />
     287    <nd ref='-154' />
     288    <nd ref='-156' />
     289    <nd ref='-158' />
     290    <tag k='amenity' v='parking' />
     291    <tag k='name' v='Outer blob' />
     292    <tag k='parking' v='surface' />
     293  </way>
     294  <way id='-584' visible='true'>
     295    <nd ref='-252' />
     296    <nd ref='-274' />
     297    <nd ref='-276' />
     298    <nd ref='-254' />
     299    <nd ref='-252' />
     300  </way>
     301  <way id='-582' visible='true'>
     302    <nd ref='-430' />
     303    <nd ref='-408' />
     304    <nd ref='-418' />
     305    <nd ref='-412' />
     306    <nd ref='-406' />
     307    <nd ref='-416' />
     308    <nd ref='-424' />
     309    <nd ref='-420' />
     310    <nd ref='-414' />
     311    <nd ref='-428' />
     312    <nd ref='-430' />
     313    <tag k='amenity' v='parking' />
     314    <tag k='parking' v='surface' />
     315  </way>
     316  <way id='-580' visible='true'>
     317    <nd ref='-170' />
     318    <nd ref='-176' />
    287319    <nd ref='-166' />
    288     <nd ref='-165' />
    289     <nd ref='-164' />
    290     <tag k='parking' v='surface' />
    291     <tag k='name' v='Outer blob' />
    292     <tag k='amenity' v='parking' />
    293   </way>
    294   <way id='-226' visible='true'>
    295     <nd ref='-117' />
     320    <nd ref='-214' />
     321    <nd ref='-170' />
     322    <tag k='amenity' v='parking' />
     323    <tag k='parking' v='surface' />
     324  </way>
     325  <way id='-578' visible='true'>
     326    <nd ref='-268' />
     327    <nd ref='-266' />
     328    <nd ref='-272' />
     329    <nd ref='-270' />
     330    <nd ref='-268' />
     331  </way>
     332  <way id='-576' visible='true'>
     333    <nd ref='-346' />
     334    <nd ref='-332' />
     335    <nd ref='-340' />
     336    <nd ref='-334' />
     337    <nd ref='-346' />
     338    <tag k='amenity' v='parking' />
     339    <tag k='parking' v='surface' />
     340  </way>
     341  <way id='-574' visible='true'>
     342    <nd ref='-466' />
     343    <nd ref='-464' />
     344    <nd ref='-462' />
     345    <nd ref='-460' />
     346    <nd ref='-466' />
     347    <tag k='amenity' v='parking' />
     348    <tag k='parking' v='surface' />
     349  </way>
     350  <way id='-572' visible='true'>
     351    <nd ref='-288' />
     352    <nd ref='-282' />
     353    <nd ref='-284' />
     354    <nd ref='-264' />
     355    <nd ref='-288' />
     356    <tag k='amenity' v='parking' />
     357    <tag k='parking' v='surface' />
     358  </way>
     359  <way id='-570' visible='true'>
     360    <nd ref='-90' />
     361    <nd ref='-84' />
     362    <nd ref='-88' />
     363    <nd ref='-78' />
     364    <nd ref='-76' />
     365    <nd ref='-86' />
     366    <nd ref='-96' />
     367    <nd ref='-124' />
     368    <nd ref='-118' />
     369    <nd ref='-98' />
     370    <nd ref='-92' />
     371    <nd ref='-94' />
     372    <nd ref='-90' />
     373    <tag k='amenity' v='parking' />
     374    <tag k='parking' v='surface' />
     375  </way>
     376  <way id='-568' visible='true'>
     377    <nd ref='-364' />
     378    <nd ref='-362' />
     379    <nd ref='-356' />
     380    <nd ref='-350' />
     381    <nd ref='-360' />
     382    <nd ref='-358' />
     383    <nd ref='-364' />
     384    <tag k='amenity' v='parking' />
     385    <tag k='parking' v='surface' />
     386  </way>
     387  <way id='-566' visible='true'>
     388    <nd ref='-324' />
     389    <nd ref='-318' />
     390    <nd ref='-320' />
     391    <nd ref='-298' />
     392    <nd ref='-300' />
     393    <nd ref='-294' />
     394    <nd ref='-296' />
     395    <nd ref='-306' />
     396    <nd ref='-308' />
     397    <nd ref='-302' />
     398    <nd ref='-324' />
     399    <tag k='amenity' v='parking' />
     400    <tag k='parking' v='surface' />
     401  </way>
     402  <way id='-564' visible='true'>
     403    <nd ref='-398' />
     404    <nd ref='-394' />
     405    <nd ref='-404' />
     406    <nd ref='-382' />
     407    <nd ref='-410' />
     408    <nd ref='-402' />
     409    <nd ref='-390' />
     410    <nd ref='-392' />
     411    <nd ref='-396' />
     412    <nd ref='-400' />
     413    <nd ref='-398' />
     414    <tag k='amenity' v='parking' />
     415    <tag k='parking' v='surface' />
     416  </way>
     417  <way id='-562' visible='true'>
     418    <nd ref='-262' />
     419    <nd ref='-292' />
     420    <nd ref='-286' />
     421    <nd ref='-290' />
     422    <nd ref='-262' />
     423  </way>
     424  <way id='-560' visible='true'>
     425    <nd ref='-246' />
     426    <nd ref='-250' />
     427    <nd ref='-230' />
     428    <nd ref='-258' />
     429    <nd ref='-246' />
     430    <tag k='amenity' v='parking' />
     431    <tag k='parking' v='surface' />
     432  </way>
     433  <way id='-558' visible='true'>
     434    <nd ref='-330' />
     435    <nd ref='-328' />
     436    <tag k='highway' v='motorway' />
     437    <tag k='lanes' v='5' />
     438  </way>
     439  <way id='-556' visible='true'>
     440    <nd ref='-436' />
     441    <nd ref='-456' />
     442    <nd ref='-432' />
     443    <tag k='highway' v='footway' />
     444  </way>
     445  <way id='-554' visible='true'>
     446    <nd ref='-236' />
     447    <nd ref='-234' />
     448    <tag k='highway' v='motorway' />
     449    <tag k='lanes' v='5' />
     450  </way>
     451  <way id='-552' visible='true'>
     452    <nd ref='-102' />
     453    <nd ref='-108' />
     454    <nd ref='-114' />
     455    <nd ref='-104' />
     456    <nd ref='-126' />
     457    <nd ref='-132' />
    296458    <nd ref='-106' />
    297     <nd ref='-105' />
     459    <nd ref='-128' />
     460    <nd ref='-110' />
     461    <nd ref='-102' />
     462    <tag k='amenity' v='parking' />
     463  </way>
     464  <way id='-550' visible='true'>
     465    <nd ref='-366' />
     466    <nd ref='-368' />
     467    <nd ref='-370' />
     468    <nd ref='-372' />
     469    <nd ref='-366' />
     470    <tag k='amenity' v='parking' />
     471    <tag k='parking' v='surface' />
     472  </way>
     473  <way id='-548' visible='true'>
     474    <nd ref='-304' />
     475    <nd ref='-280' />
     476    <nd ref='-278' />
     477  </way>
     478  <way id='-546' visible='true'>
     479    <nd ref='-70' />
     480    <nd ref='-44' />
     481    <nd ref='-42' />
     482    <nd ref='-46' />
     483    <nd ref='-70' />
     484    <tag k='amenity' v='parking' />
     485    <tag k='parking' v='surface' />
     486  </way>
     487  <way id='-544' visible='true'>
     488    <nd ref='-442' />
     489    <nd ref='-444' />
     490    <nd ref='-452' />
     491    <nd ref='-446' />
     492    <nd ref='-442' />
     493    <tag k='landuse' v='basin' />
     494  </way>
     495  <way id='-542' visible='true'>
    298496    <nd ref='-116' />
    299     <nd ref='-117' />
    300   </way>
    301   <way id='-227' visible='true'>
    302     <nd ref='-28' />
    303     <nd ref='-39' />
    304     <nd ref='-34' />
    305     <nd ref='-37' />
    306     <nd ref='-40' />
    307     <nd ref='-35' />
    308     <nd ref='-31' />
    309     <nd ref='-33' />
    310     <nd ref='-36' />
    311     <nd ref='-29' />
    312     <nd ref='-28' />
    313     <tag k='parking' v='surface' />
    314     <tag k='amenity' v='parking' />
    315   </way>
    316   <way id='-228' visible='true'>
    317     <nd ref='-158' />
    318     <nd ref='-155' />
    319     <nd ref='-160' />
    320     <nd ref='-136' />
    321     <nd ref='-158' />
    322     <tag k='parking' v='surface' />
    323     <tag k='amenity' v='parking' />
    324   </way>
    325   <way id='-229' visible='true'>
    326     <nd ref='-109' />
    327     <nd ref='-110' />
    328     <nd ref='-107' />
    329497    <nd ref='-108' />
    330     <nd ref='-109' />
    331   </way>
    332   <way id='-230' visible='true'>
    333     <nd ref='-70' />
    334     <nd ref='-77' />
    335     <nd ref='-73' />
    336     <nd ref='-76' />
    337     <nd ref='-70' />
    338     <tag k='parking' v='surface' />
    339     <tag k='amenity' v='parking' />
    340   </way>
    341   <way id='-231' visible='true'>
    342     <nd ref='-10' />
    343     <nd ref='-11' />
    344     <nd ref='-12' />
    345     <nd ref='-13' />
    346     <nd ref='-10' />
    347     <tag k='parking' v='surface' />
    348     <tag k='amenity' v='parking' />
    349   </way>
    350   <way id='-232' visible='true'>
    351     <nd ref='-99' />
    352     <nd ref='-102' />
    353     <nd ref='-101' />
    354     <nd ref='-111' />
    355     <nd ref='-99' />
    356     <tag k='parking' v='surface' />
    357     <tag k='amenity' v='parking' />
    358   </way>
    359   <way id='-233' action='modify' visible='true'>
    360     <nd ref='-198' />
    361     <nd ref='-201' />
    362     <nd ref='-199' />
    363     <nd ref='-204' />
    364     <nd ref='-205' />
    365     <nd ref='-200' />
    366     <nd ref='-195' />
    367     <nd ref='-181' />
    368     <nd ref='-184' />
    369     <nd ref='-194' />
    370     <nd ref='-197' />
    371     <nd ref='-196' />
    372     <nd ref='-198' />
    373     <tag k='parking' v='surface' />
    374     <tag k='amenity' v='parking' />
    375   </way>
    376   <way id='-234' visible='true'>
    377     <nd ref='-61' />
     498    <nd ref='-114' />
     499    <nd ref='-104' />
     500    <nd ref='-126' />
     501    <nd ref='-132' />
     502    <nd ref='-106' />
     503    <nd ref='-128' />
     504    <nd ref='-112' />
     505    <nd ref='-116' />
     506    <tag k='amenity' v='parking' />
     507  </way>
     508  <way id='-540' visible='true'>
     509    <nd ref='-476' />
     510    <nd ref='-474' />
     511    <nd ref='-472' />
     512    <nd ref='-470' />
     513    <nd ref='-468' />
     514    <nd ref='-476' />
     515    <tag k='amenity' v='parking' />
     516    <tag k='parking' v='surface' />
     517  </way>
     518  <way id='-538' visible='true'>
     519    <nd ref='-54' />
     520    <nd ref='-66' />
     521    <nd ref='-60' />
    378522    <nd ref='-62' />
    379     <nd ref='-65' />
    380     <nd ref='-68' />
    381     <nd ref='-63' />
    382     <nd ref='-64' />
    383     <nd ref='-61' />
    384     <tag k='parking' v='surface' />
    385     <tag k='amenity' v='parking' />
    386   </way>
    387   <way id='-235' visible='true'>
    388     <nd ref='-81' />
    389     <nd ref='-84' />
    390     <nd ref='-83' />
    391     <nd ref='-94' />
    392     <nd ref='-93' />
    393     <nd ref='-96' />
    394     <nd ref='-95' />
    395     <nd ref='-90' />
    396     <nd ref='-89' />
    397     <nd ref='-92' />
    398     <nd ref='-81' />
    399     <tag k='parking' v='surface' />
    400     <tag k='amenity' v='parking' />
    401   </way>
    402   <way id='-236' visible='true'>
    403     <nd ref='-44' />
    404     <nd ref='-46' />
    405     <nd ref='-41' />
    406     <nd ref='-52' />
    407     <nd ref='-38' />
    408     <nd ref='-42' />
    409     <nd ref='-48' />
    410     <nd ref='-47' />
    411     <nd ref='-45' />
    412     <nd ref='-43' />
    413     <nd ref='-44' />
    414     <tag k='parking' v='surface' />
    415     <tag k='amenity' v='parking' />
    416   </way>
    417   <way id='-237' visible='true'>
    418     <nd ref='-112' />
    419     <nd ref='-97' />
    420     <nd ref='-100' />
    421     <nd ref='-98' />
    422     <nd ref='-112' />
    423   </way>
    424   <way id='-238' visible='true'>
     523    <nd ref='-54' />
     524    <tag k='building' v='yes' />
     525  </way>
     526  <way id='-536' visible='true'>
     527    <nd ref='-130' />
    425528    <nd ref='-120' />
    426529    <nd ref='-118' />
    427     <nd ref='-128' />
    428     <nd ref='-114' />
    429     <nd ref='-120' />
    430     <tag k='parking' v='surface' />
    431     <tag k='amenity' v='parking' />
    432   </way>
    433   <way id='-239' visible='true'>
     530    <nd ref='-124' />
     531    <nd ref='-122' />
     532    <nd ref='-100' />
     533    <nd ref='-80' />
     534    <nd ref='-82' />
     535    <nd ref='-76' />
    434536    <nd ref='-78' />
    435     <nd ref='-79' />
     537    <nd ref='-88' />
     538    <nd ref='-130' />
     539    <tag k='amenity' v='parking' />
     540    <tag k='parking' v='surface' />
     541  </way>
     542  <way id='-534' visible='true'>
     543    <nd ref='-312' />
     544    <nd ref='-322' />
    436545    <tag k='highway' v='motorway' />
    437546    <tag k='lanes' v='5' />
    438547  </way>
    439   <way id='-240' visible='true'>
    440     <nd ref='-25' />
    441     <nd ref='-15' />
    442     <nd ref='-27' />
     548  <way id='-532' visible='true'>
     549    <nd ref='-180' />
     550    <nd ref='-178' />
     551    <nd ref='-220' />
     552    <nd ref='-174' />
     553    <nd ref='-180' />
     554  </way>
     555  <way id='-530' visible='true'>
     556    <nd ref='-226' />
     557    <nd ref='-228' />
     558    <nd ref='-222' />
     559    <nd ref='-224' />
     560    <nd ref='-226' />
     561  </way>
     562  <way id='-528' visible='true'>
     563    <nd ref='-256' />
     564    <nd ref='-260' />
     565    <nd ref='-232' />
     566    <nd ref='-248' />
     567    <nd ref='-256' />
     568  </way>
     569  <way id='-526' visible='true'>
     570    <nd ref='-212' />
     571    <nd ref='-198' />
     572    <nd ref='-238' />
     573    <nd ref='-208' />
     574    <nd ref='-212' />
     575  </way>
     576  <way id='-524' visible='true'>
     577    <nd ref='-422' />
     578    <nd ref='-452' />
     579    <nd ref='-426' />
    443580    <tag k='highway' v='footway' />
    444581  </way>
    445   <way id='-241' visible='true'>
    446     <nd ref='-125' />
    447     <nd ref='-126' />
     582  <way id='-522' visible='true'>
     583    <nd ref='-66' />
     584    <nd ref='-52' />
     585    <nd ref='-50' />
     586    <nd ref='-56' />
     587    <nd ref='-58' />
     588    <nd ref='-60' />
     589    <nd ref='-62' />
     590    <nd ref='-68' />
     591    <nd ref='-64' />
     592    <nd ref='-48' />
     593    <nd ref='-40' />
     594    <nd ref='-54' />
     595    <nd ref='-66' />
     596    <tag k='building' v='yes' />
     597  </way>
     598  <way id='-520' visible='true'>
     599    <nd ref='-164' />
     600    <nd ref='-162' />
     601    <nd ref='-152' />
     602    <nd ref='-150' />
     603    <nd ref='-164' />
     604    <tag k='amenity' v='parking' />
     605    <tag k='parking' v='surface' />
     606  </way>
     607  <way id='-518' visible='true'>
     608    <nd ref='-74' />
     609    <nd ref='-72' />
     610    <nd ref='-70' />
     611    <nd ref='-46' />
     612    <nd ref='-74' />
     613    <tag k='amenity' v='parking' />
     614    <tag k='parking' v='surface' />
     615  </way>
     616  <way id='-516' visible='true'>
     617    <nd ref='-148' />
     618    <nd ref='-146' />
     619    <nd ref='-140' />
     620    <nd ref='-138' />
     621    <nd ref='-148' />
     622    <tag k='amenity' v='parking' />
     623    <tag k='parking' v='surface' />
     624  </way>
     625  <way id='-514' visible='true'>
     626    <nd ref='-168' />
     627    <nd ref='-216' />
     628    <nd ref='-218' />
     629    <nd ref='-172' />
     630    <nd ref='-168' />
     631  </way>
     632  <way id='-512' visible='true'>
     633    <nd ref='-204' />
     634    <nd ref='-200' />
     635    <nd ref='-206' />
     636    <nd ref='-244' />
     637    <nd ref='-204' />
     638  </way>
     639  <way id='-510' visible='true'>
     640    <nd ref='-450' />
     641    <nd ref='-386' />
     642    <nd ref='-388' />
     643    <nd ref='-380' />
     644    <nd ref='-378' />
     645    <nd ref='-374' />
     646    <nd ref='-376' />
     647    <nd ref='-384' />
     648    <nd ref='-458' />
     649    <nd ref='-456' />
     650    <nd ref='-450' />
     651    <tag k='amenity' v='parking' />
     652    <tag k='parking' v='surface' />
     653  </way>
     654  <way id='-508' visible='true'>
     655    <nd ref='-134' />
     656    <nd ref='-136' />
    448657    <tag k='highway' v='motorway' />
    449658    <tag k='lanes' v='5' />
    450659  </way>
    451   <way id='-242' action='modify' visible='true'>
    452     <nd ref='-192' />
    453     <nd ref='-189' />
    454     <nd ref='-186' />
    455     <nd ref='-191' />
    456     <nd ref='-180' />
    457     <nd ref='-177' />
    458     <nd ref='-190' />
    459     <nd ref='-179' />
    460     <nd ref='-188' />
    461     <nd ref='-192' />
    462     <tag k='amenity' v='parking' />
    463   </way>
    464   <way id='-243' visible='true'>
    465     <nd ref='-60' />
    466     <nd ref='-59' />
    467     <nd ref='-58' />
    468     <nd ref='-57' />
    469     <nd ref='-60' />
    470     <tag k='parking' v='surface' />
    471     <tag k='amenity' v='parking' />
    472   </way>
    473   <way id='-244' visible='true'>
    474     <nd ref='-91' />
    475     <nd ref='-103' />
    476     <nd ref='-104' />
    477   </way>
    478   <way id='-245' action='modify' visible='true'>
    479     <nd ref='-208' />
    480     <nd ref='-221' />
    481     <nd ref='-222' />
    482     <nd ref='-220' />
    483     <nd ref='-208' />
    484     <tag k='parking' v='surface' />
    485     <tag k='amenity' v='parking' />
    486   </way>
    487   <way id='-246' visible='true'>
    488     <nd ref='-22' />
    489     <nd ref='-21' />
    490     <nd ref='-17' />
    491     <nd ref='-20' />
    492     <nd ref='-22' />
    493     <tag k='landuse' v='basin' />
    494   </way>
    495   <way id='-247' action='modify' visible='true'>
    496     <nd ref='-185' />
    497     <nd ref='-189' />
    498     <nd ref='-186' />
    499     <nd ref='-191' />
    500     <nd ref='-180' />
    501     <nd ref='-177' />
    502     <nd ref='-190' />
    503     <nd ref='-179' />
    504     <nd ref='-187' />
    505     <nd ref='-185' />
    506     <tag k='amenity' v='parking' />
    507   </way>
    508   <way id='-248' visible='true'>
    509     <nd ref='-5' />
    510     <nd ref='-6' />
    511     <nd ref='-7' />
    512     <nd ref='-8' />
    513     <nd ref='-9' />
    514     <nd ref='-5' />
    515     <tag k='parking' v='surface' />
    516     <tag k='amenity' v='parking' />
    517   </way>
    518   <way id='-249' timestamp='2008-06-18T15:47:24Z' visible='true'>
    519     <nd ref='-216' />
    520     <nd ref='-210' />
    521     <nd ref='-213' />
    522     <nd ref='-212' />
    523     <nd ref='-216' />
    524     <tag k='created_by' v='Potlatch 0.9c' />
    525     <tag k='building' v='yes' />
    526   </way>
    527   <way id='-250' action='modify' visible='true'>
    528     <nd ref='-178' />
    529     <nd ref='-183' />
    530     <nd ref='-184' />
    531     <nd ref='-181' />
    532     <nd ref='-182' />
    533     <nd ref='-193' />
    534     <nd ref='-203' />
    535     <nd ref='-202' />
    536     <nd ref='-205' />
    537     <nd ref='-204' />
    538     <nd ref='-199' />
    539     <nd ref='-178' />
    540     <tag k='parking' v='surface' />
    541     <tag k='amenity' v='parking' />
    542   </way>
    543   <way id='-251' visible='true'>
    544     <nd ref='-87' />
    545     <nd ref='-82' />
     660  <way id='-506' visible='true'>
     661    <nd ref='-434' />
     662    <nd ref='-454' />
     663    <nd ref='-448' />
     664    <nd ref='-438' />
     665    <nd ref='-440' />
     666    <nd ref='-434' />
     667    <tag k='landuse' v='retail' />
     668  </way>
     669  <way id='-504' visible='true'>
     670    <nd ref='-344' />
     671    <nd ref='-342' />
     672    <nd ref='-332' />
     673    <nd ref='-336' />
     674    <nd ref='-338' />
     675    <nd ref='-344' />
     676    <tag k='amenity' v='parking' />
     677    <tag k='parking' v='surface' />
     678  </way>
     679  <way id='-502' visible='true'>
     680    <nd ref='-316' />
     681    <nd ref='-310' />
    546682    <tag k='highway' v='motorway' />
    547683    <tag k='lanes' v='5' />
    548684  </way>
    549   <way id='-252' visible='true'>
    550     <nd ref='-153' />
    551     <nd ref='-154' />
    552     <nd ref='-133' />
    553     <nd ref='-156' />
    554     <nd ref='-153' />
    555   </way>
    556   <way id='-253' visible='true'>
    557     <nd ref='-130' />
    558     <nd ref='-129' />
    559     <nd ref='-132' />
    560     <nd ref='-131' />
    561     <nd ref='-130' />
    562   </way>
    563   <way id='-254' visible='true'>
    564     <nd ref='-115' />
    565     <nd ref='-113' />
    566     <nd ref='-127' />
    567     <nd ref='-119' />
    568     <nd ref='-115' />
    569   </way>
    570   <way id='-255' visible='true'>
    571     <nd ref='-137' />
    572     <nd ref='-144' />
    573     <nd ref='-124' />
    574     <nd ref='-139' />
    575     <nd ref='-137' />
    576   </way>
    577   <way id='-256' visible='true'>
    578     <nd ref='-32' />
    579     <nd ref='-17' />
    580     <nd ref='-30' />
    581     <tag k='highway' v='footway' />
    582   </way>
    583   <way id='-257' timestamp='2008-06-17T03:52:47Z' visible='true'>
    584     <nd ref='-210' />
    585     <nd ref='-217' />
    586     <nd ref='-218' />
    587     <nd ref='-215' />
    588     <nd ref='-214' />
    589     <nd ref='-213' />
    590     <nd ref='-212' />
    591     <nd ref='-209' />
    592     <nd ref='-211' />
    593     <nd ref='-219' />
    594     <nd ref='-223' />
    595     <nd ref='-216' />
    596     <nd ref='-210' />
    597     <tag k='created_by' v='Merkaartor 0.10' />
    598     <tag k='building' v='yes' />
    599   </way>
    600   <way id='-258' visible='true'>
    601     <nd ref='-161' />
    602     <nd ref='-162' />
    603     <nd ref='-167' />
    604     <nd ref='-168' />
    605     <nd ref='-161' />
    606     <tag k='parking' v='surface' />
    607     <tag k='amenity' v='parking' />
    608   </way>
    609   <way id='-259' action='modify' visible='true'>
    610     <nd ref='-206' />
    611     <nd ref='-207' />
    612     <nd ref='-208' />
    613     <nd ref='-220' />
    614     <nd ref='-206' />
    615     <tag k='parking' v='surface' />
    616     <tag k='amenity' v='parking' />
    617   </way>
    618   <way id='-260' visible='true'>
    619     <nd ref='-169' />
    620     <nd ref='-170' />
    621     <nd ref='-173' />
    622     <nd ref='-174' />
    623     <nd ref='-169' />
    624     <tag k='parking' v='surface' />
    625     <tag k='amenity' v='parking' />
    626   </way>
    627   <way id='-261' visible='true'>
    628     <nd ref='-159' />
    629     <nd ref='-135' />
    630     <nd ref='-134' />
    631     <nd ref='-157' />
    632     <nd ref='-159' />
    633   </way>
    634   <way id='-262' visible='true'>
    635     <nd ref='-141' />
    636     <nd ref='-143' />
    637     <nd ref='-140' />
    638     <nd ref='-121' />
    639     <nd ref='-141' />
    640   </way>
    641   <way id='-263' visible='true'>
    642     <nd ref='-18' />
    643     <nd ref='-50' />
    644     <nd ref='-49' />
    645     <nd ref='-53' />
    646     <nd ref='-54' />
    647     <nd ref='-56' />
    648     <nd ref='-55' />
    649     <nd ref='-51' />
    650     <nd ref='-14' />
    651     <nd ref='-15' />
    652     <nd ref='-18' />
    653     <tag k='parking' v='surface' />
    654     <tag k='amenity' v='parking' />
    655   </way>
    656   <way id='-264' visible='true'>
    657     <nd ref='-176' />
    658     <nd ref='-175' />
     685  <way id='-500' visible='true'>
     686    <nd ref='-326' />
     687    <nd ref='-314' />
    659688    <tag k='highway' v='motorway' />
    660689    <tag k='lanes' v='5' />
    661690  </way>
    662   <way id='-265' visible='true'>
     691  <way id='-498' visible='true'>
     692    <nd ref='-202' />
     693    <nd ref='-240' />
     694    <nd ref='-210' />
     695    <nd ref='-242' />
     696    <nd ref='-202' />
     697    <tag k='amenity' v='parking' />
     698    <tag k='parking' v='surface' />
     699  </way>
     700  <way id='-496' visible='true'>
     701    <nd ref='-348' />
     702    <nd ref='-356' />
     703    <nd ref='-354' />
     704    <nd ref='-352' />
     705    <nd ref='-350' />
     706    <nd ref='-348' />
     707    <tag k='amenity' v='parking' />
     708    <tag k='parking' v='surface' />
     709  </way>
     710  <way id='-494' visible='true'>
     711    <nd ref='-484' />
     712    <nd ref='-482' />
     713    <nd ref='-480' />
     714    <nd ref='-478' />
     715    <nd ref='-484' />
     716    <tag k='amenity' v='parking' />
     717    <tag k='parking' v='surface' />
     718  </way>
     719  <way id='-492' visible='true'>
     720    <nd ref='-20' />
     721    <nd ref='-10' />
    663722    <nd ref='-26' />
     723    <nd ref='-14' />
     724    <nd ref='-12' />
     725    <nd ref='-32' />
     726    <nd ref='-30' />
     727    <nd ref='-18' />
     728    <nd ref='-38' />
     729    <nd ref='-28' />
    664730    <nd ref='-16' />
    665     <nd ref='-19' />
     731    <nd ref='-36' />
    666732    <nd ref='-24' />
    667     <nd ref='-23' />
    668     <nd ref='-26' />
    669     <tag k='landuse' v='retail' />
    670   </way>
    671   <way id='-266' visible='true'>
    672     <nd ref='-71' />
    673     <nd ref='-72' />
    674     <nd ref='-77' />
    675     <nd ref='-75' />
    676     <nd ref='-74' />
    677     <nd ref='-71' />
    678     <tag k='parking' v='surface' />
    679     <tag k='amenity' v='parking' />
    680   </way>
    681   <way id='-267' visible='true'>
    682     <nd ref='-85' />
    683     <nd ref='-88' />
     733    <nd ref='-20' />
     734    <tag k='building' v='yes' />
     735  </way>
     736  <way id='-490' visible='true'>
     737    <nd ref='-34' />
     738    <nd ref='-22' />
     739    <nd ref='-12' />
     740    <nd ref='-32' />
     741    <nd ref='-38' />
     742    <nd ref='-28' />
     743    <nd ref='-24' />
     744    <nd ref='-20' />
     745    <nd ref='-34' />
     746    <tag k='building' v='yes' />
     747  </way>
     748  <way id='-488' visible='true'>
     749    <nd ref='-8' />
     750    <nd ref='-6' />
    684751    <tag k='highway' v='motorway' />
    685752    <tag k='lanes' v='5' />
    686753  </way>
    687   <way id='-268' visible='true'>
    688     <nd ref='-80' />
    689     <nd ref='-86' />
     754  <way id='-486' visible='true'>
     755    <nd ref='-4' />
     756    <nd ref='-2' />
    690757    <tag k='highway' v='motorway' />
    691758    <tag k='lanes' v='5' />
    692759  </way>
    693   <way id='-269' visible='true'>
    694     <nd ref='-142' />
    695     <nd ref='-123' />
    696     <nd ref='-138' />
    697     <nd ref='-122' />
    698     <nd ref='-142' />
    699     <tag k='parking' v='surface' />
    700     <tag k='amenity' v='parking' />
    701   </way>
    702   <way id='-270' visible='true'>
    703     <nd ref='-69' />
    704     <nd ref='-65' />
    705     <nd ref='-66' />
    706     <nd ref='-67' />
    707     <nd ref='-68' />
    708     <nd ref='-69' />
    709     <tag k='parking' v='surface' />
    710     <tag k='amenity' v='parking' />
    711   </way>
    712   <way id='-271' visible='true'>
    713     <nd ref='-1' />
    714     <nd ref='-2' />
    715     <nd ref='-3' />
    716     <nd ref='-4' />
    717     <nd ref='-1' />
    718     <tag k='parking' v='surface' />
    719     <tag k='amenity' v='parking' />
    720   </way>
    721   <relation id='-272' visible='true'>
    722     <member type='way' ref='-224' role='inner' />
    723     <member type='way' ref='-225' role='outer' />
     760  <relation id='-604' visible='true'>
     761    <member type='way' ref='-588' role='inner' />
     762    <member type='way' ref='-586' role='outer' />
    724763    <tag k='name' v='6.' />
    725764    <tag k='type' v='multipolygon' />
    726765  </relation>
    727   <relation id='-273' visible='true'>
    728     <member type='way' ref='-252' role='inner' />
    729     <member type='way' ref='-261' role='inner' />
    730     <member type='way' ref='-228' role='outer' />
     766  <relation id='-602' visible='true'>
     767    <member type='way' ref='-532' role='inner' />
     768    <member type='way' ref='-514' role='inner' />
     769    <member type='way' ref='-580' role='outer' />
    731770    <tag k='name' v='5.' />
    732771    <tag k='type' v='multipolygon' />
    733772  </relation>
    734   <relation id='-274' visible='true'>
    735     <member type='way' ref='-262' role='inner' />
    736     <member type='way' ref='-269' role='outer' />
     773  <relation id='-600' visible='true'>
     774    <member type='way' ref='-512' role='inner' />
     775    <member type='way' ref='-498' role='outer' />
    737776    <tag k='name' v='4. a' />
    738777    <tag k='type' v='multipolygon' />
    739778  </relation>
    740   <relation id='-275' visible='true'>
    741     <member type='way' ref='-237' role='inner' />
    742     <member type='way' ref='-232' role='outer' />
     779  <relation id='-598' visible='true'>
     780    <member type='way' ref='-562' role='inner' />
     781    <member type='way' ref='-572' role='outer' />
    743782    <tag k='name' v='2.' />
    744783    <tag k='type' v='multipolygon' />
    745784  </relation>
    746   <relation id='-276' visible='true'>
     785  <relation id='-596' visible='true'>
    747786  </relation>
    748   <relation id='-277' visible='true'>
    749     <member type='way' ref='-253' role='' />
    750     <member type='way' ref='-255' role='' />
     787  <relation id='-594' visible='true'>
     788    <member type='way' ref='-530' role='' />
     789    <member type='way' ref='-526' role='' />
    751790    <tag k='name ' v='4. b' />
    752791  </relation>
    753   <relation id='-278' visible='true'>
    754     <member type='way' ref='-254' role='inner' />
    755     <member type='way' ref='-238' role='outer' />
     792  <relation id='-592' visible='true'>
     793    <member type='way' ref='-528' role='inner' />
     794    <member type='way' ref='-560' role='outer' />
    756795    <tag k='name' v='3.' />
    757796    <tag k='type' v='multipolygon' />
    758797  </relation>
    759   <relation id='-279' visible='true'>
    760     <member type='way' ref='-235' role='area' />
    761     <member type='node' ref='-93' role='node in area' />
    762     <member type='node' ref='-95' role='node in area' />
    763     <member type='way' ref='-244' role='some other way' />
    764     <member type='node' ref='-90' role='to be deleted node in area' />
     798  <relation id='-590' visible='true'>
     799    <member type='way' ref='-566' role='area' />
     800    <member type='node' ref='-300' role='node in area' />
     801    <member type='node' ref='-296' role='node in area' />
     802    <member type='way' ref='-548' role='some other way' />
     803    <member type='node' ref='-306' role='to be deleted node in area' />
    765804    <tag k='name' v='1.' />
    766805  </relation>
  • trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java

    r3170 r3230  
    103103    }
    104104
    105     public void combineWays(Collection<Way> ways) {
     105    public Way combineWays(Collection<Way> ways) {
    106106
    107107        // prepare and clean the list of ways to combine
    108108        //
    109109        if (ways == null || ways.isEmpty())
    110             return;
     110            return null;
    111111        ways.remove(null); // just in case -  remove all null ways from the collection
    112112        ways = new HashSet<Way>(ways); // remove duplicates
     
    119119        if (path == null) {
    120120            warnCombiningImpossible();
    121             return;
     121            return null;
    122122        }
    123123        // check whether any ways have been reversed in the process
     
    142142        }
    143143        if ((reversedWays != null) && !reversedWays.isEmpty()) {
    144             if (!confirmChangeDirectionOfWays()) return;
     144            if (!confirmChangeDirectionOfWays()) return null;
    145145            // filter out ways that have no direction-dependent tags
    146146            unreversedWays = ReverseWayTagCorrector.irreversibleWays(unreversedWays);
     
    167167                    }
    168168                    catch(UserCancelException ex) {
    169                         return;
     169                        return null;
    170170                    }
    171171                }
     
    207207            dialog.setVisible(true);
    208208            if (dialog.isCancelled())
    209                 return;
     209                return null;
    210210        }
    211211
     
    218218        cmds.add(new DeleteCommand(deletedWays));
    219219        final SequenceCommand sequenceCommand = new SequenceCommand(tr("Combine {0} ways", ways.size()), cmds);
    220 
    221         // update gui
    222         final Way selectedWay = targetWay;
    223         Runnable guiTask = new Runnable() {
    224             public void run() {
    225                 Main.main.undoRedo.add(sequenceCommand);
    226                 getCurrentDataSet().setSelected(selectedWay);
    227             }
    228         };
    229         if (SwingUtilities.isEventDispatchThread()) {
    230             guiTask.run();
    231         } else {
    232             SwingUtilities.invokeLater(guiTask);
    233         }
     220        Main.main.undoRedo.add(sequenceCommand);
     221
     222        return targetWay;
    234223    }
    235224
     
    248237            return;
    249238        }
    250         combineWays(selectedWays);
     239        // combine and update gui
     240        final Way selectedWay = combineWays(selectedWays);
     241        if(selectedWay != null)
     242        {
     243            Runnable guiTask = new Runnable() {
     244                public void run() {
     245                    getCurrentDataSet().setSelected(selectedWay);
     246                }
     247            };
     248            if (SwingUtilities.isEventDispatchThread()) {
     249                guiTask.run();
     250            } else {
     251                SwingUtilities.invokeLater(guiTask);
     252            }
     253        }
    251254    }
    252255
  • trunk/src/org/openstreetmap/josm/actions/JoinAreasAction.java

    r3083 r3230  
    184184        boolean hadChanges = false;
    185185        if(!same) {
     186            int i = 0;
    186187            if(checkForTagConflicts(a, b)) return true; // User aborted, so don't warn again
    187             hadChanges = joinAreas(a, a);
    188             hadChanges = joinAreas(b, b) || hadChanges;
     188            if(joinAreas(a, a))
     189                ++i;
     190            if(joinAreas(b, b))
     191                ++i;
     192            hadChanges = i > 0;
     193            cmdsCount = i;
    189194        }
    190195
     
    212217
    213218        // Fix Multipolygons if there are any
    214         Collection<Way> newInnerWays = fixMultigons(innerWays, outerWay);
     219        Collection<Way> newInnerWays = fixMultipolygons(innerWays, outerWay, same);
    215220
    216221        // Delete the remaining inner ways
     
    251256
    252257        // FIXME: This is mostly copied and pasted from CombineWayAction.java and one day should be moved into tools
     258        // We have TagCollection handling for that now - use it here as well
    253259        Map<String, Set<String>> props = new TreeMap<String, Set<String>>();
    254260        for (Way w : ways) {
     
    274280                if("created_by".equals(e.getKey()))
    275281                {
    276                     ax.put("created_by", "JOSM");
    277                     bx.put("created_by", "JOSM");
     282                    ax.remove("created_by");
     283                    bx.remove("created_by");
    278284                } else {
    279285                    JComboBox c = new JComboBox(e.getValue().toArray());
     
    409415     */
    410416    private void addNodesToWay(Way a, ArrayList<NodeToSegs> nodes) {
     417        if(nodes.size() == 0)
     418            return;
    411419        Way ax=new Way(a);
    412420        Collections.sort(nodes);
     
    640648            a = b;
    641649        }
    642         Main.main.getCurrentDataSet().setSelected(ways);
    643         // TODO: It might be possible that a confirmation dialog is presented even after reversing (for
    644         // "strange" ways). If the user cancels this, makeCommitsOneAction will wrongly consume a previous
    645         // action. Make CombineWayAction either silent or expose its combining capabilities.
    646         new CombineWayAction().actionPerformed(null);
    647         cmdsCount++;
    648         return (Way)(Main.main.getCurrentDataSet().getSelectedWays().toArray())[0];
     650        if((a = new CombineWayAction().combineWays(ways)) != null)
     651            cmdsCount++;
     652        return a;
    649653    }
    650654
     
    656660     * @return ArrayList<Way> The List of newly created inner ways
    657661     */
    658     private ArrayList<Way> fixMultigons(Collection<Way> uninterestingWays, Way outerWay) {
     662    private ArrayList<Way> fixMultipolygons(Collection<Way> uninterestingWays, Way outerWay, boolean selfintersect) {
    659663        Collection<Node> innerNodes = getNodesFromWays(uninterestingWays);
    660664        Collection<Node> outerNodes = outerWay.getNodes();
     
    672676            for(Node n : w.getNodes()) {
    673677                if(outerNodes.contains(n)) {
    674                     continue wayIterator;
    675                 }
    676                 if(!hasInnerNodes && innerNodes.contains(n)) {
     678                    if(!selfintersect) // allow outer point for self intersection
     679                        continue wayIterator;
     680                }
     681                else if(!hasInnerNodes && innerNodes.contains(n)) {
    677682                    hasInnerNodes = true;
    678683                }
     
    686691        // This removes unnecessary ways that might have been added.
    687692        removeAlmostAlikeWays(possibleWays);
    688         removePartlyUnconnectedWays(possibleWays);
    689 
    690         // Join all ways that have one start/ending node in common
    691         Way joined = null;
    692         outerIterator: do {
    693             joined = null;
    694             for(Way w1 : possibleWays) {
    695                 if(w1.isClosed()) {
    696                     if(!wayIsCollapsed(w1)) {
    697                         uninterestingWays.remove(w1);
    698                         newInnerWays.add(w1);
     693
     694        // loop twice
     695        // in k == 0 prefer ways which allow no Y-joining (i.e. which have only 1 solution)
     696        for(int k = 0; k < 2; ++k)
     697        {
     698            // Join all ways that have one start/ending node in common
     699            Way joined = null;
     700            outerIterator: do {
     701                removePartlyUnconnectedWays(possibleWays);
     702                joined = null;
     703                for(Way w1 : possibleWays) {
     704                    if(w1.isClosed()) {
     705                        if(!wayIsCollapsed(w1)) {
     706                            uninterestingWays.remove(w1);
     707                            newInnerWays.add(w1);
     708                        }
     709                        joined = w1;
     710                        possibleWays.remove(w1);
     711                        continue outerIterator;
    699712                    }
    700                     joined = w1;
    701                     possibleWays.remove(w1);
    702                     continue outerIterator;
    703                 }
    704                 for(Way w2 : possibleWays) {
    705                     // w2 cannot be closed, otherwise it would have been removed above
    706                     if(!waysCanBeCombined(w1, w2)) {
    707                         continue;
     713                    ArrayList<Way> secondary = new ArrayList<Way>();
     714                    for(Way w2 : possibleWays) {
     715                        int i = 0;
     716                        // w2 cannot be closed, otherwise it would have been removed above
     717                        if(w1.equals(w2))
     718                            continue;
     719                        if(w2.isFirstLastNode(w1.firstNode()))
     720                            ++i;
     721                        if(w2.isFirstLastNode(w1.lastNode()))
     722                            ++i;
     723                        if(i == 2) // this way closes w1 - take it!
     724                        {
     725                            if(secondary.size() > 0)
     726                                secondary.clear();
     727                            secondary.add(w2);
     728                            break;
     729                        }
     730                        else if(i > 0)
     731                            secondary.add(w2);
    708732                    }
    709 
    710                     ArrayList<Way> joinThem = new ArrayList<Way>();
    711                     joinThem.add(w1);
    712                     joinThem.add(w2);
    713                     uninterestingWays.removeAll(joinThem);
    714                     possibleWays.removeAll(joinThem);
    715 
    716                     // Although we joined the ways, we cannot simply assume that they are closed
    717                     joined = joinWays(joinThem);
    718                     uninterestingWays.add(joined);
    719                     possibleWays.add(joined);
    720                     continue outerIterator;
    721                 }
    722             }
    723         } while(joined != null);
     733                    if(k == 0 ? secondary.size() == 1 : secondary.size() > 0)
     734                    {
     735                        ArrayList<Way> joinThem = new ArrayList<Way>();
     736                        joinThem.add(w1);
     737                        joinThem.add(secondary.get(0));
     738                        // Although we joined the ways, we cannot simply assume that they are closed
     739                        if((joined = joinWays(joinThem)) != null)
     740                        {
     741                            uninterestingWays.removeAll(joinThem);
     742                            possibleWays.removeAll(joinThem);
     743
     744                            List<Node> nodes = joined.getNodes();
     745                            // check if we added too much
     746                            /*for(int i = 1; i < nodes.size()-2; ++i)
     747                            {
     748                                if(nodes.get(i) == nodes.get(nodes.size()-1))
     749                                    System.out.println("Joining of ways produced unexpecteded result\n");
     750                            }*/
     751                            uninterestingWays.add(joined);
     752                            possibleWays.add(joined);
     753                            continue outerIterator;
     754                        }
     755                    }
     756                }
     757            } while(joined != null);
     758        }
    724759        return newInnerWays;
    725760    }
     
    795830            if(count == 2) return true;
    796831        }
    797         return false;
    798     }
    799 
    800     /**
    801      * Checks if two ways share one starting/ending node
    802      * @param Way first way
    803      * @param Way second way
    804      * @return boolean Wheter the ways share a starting/ending node or not
    805      */
    806     private boolean waysCanBeCombined(Way w1, Way w2) {
    807         if(w1.equals(w2)) return false;
    808 
    809         if(w1.getNode(0).equals(w2.getNode(0))) return true;
    810         if(w1.getNode(0).equals(w2.getNode(w2.getNodesCount()-1))) return true;
    811 
    812         if(w1.getNode(w1.getNodesCount()-1).equals(w2.getNode(0))) return true;
    813         if(w1.getNode(w1.getNodesCount()-1).equals(w2.getNode(w2.getNodesCount()-1))) return true;
    814 
    815832        return false;
    816833    }
Note: See TracChangeset for help on using the changeset viewer.