I've run into the same error today. Following patch makes it work for me:

Index: lines2curves.pl
===================================================================
--- lines2curves.pl     (revision 8167)
+++ lines2curves.pl     (working copy)
@@ -147,8 +147,7 @@
     shift @$points_ref;

     foreach my $point_ref (@$points_ref) {
-        if ($point_ref->[0].$point_ref->[1] eq
-                $clean_points_ref->[-1][0].$clean_points_ref->[-1][1]) {
+        if (($point_ref->[0] == $clean_points_ref->[-1][0]) &&
($point_ref->[1] == $clean_points_ref->[-1][1])) {
                 next;
         }

I don't understand why numeric values were compared using eq operator.
There are other places in lines2curves.pl comparing points this way.

On 6/6/08, Martijn van Oosterhout <[EMAIL PROTECTED]> wrote:
> 2008/6/6 Dirk-Lüder Kreie <[EMAIL PROTECTED]>:
>
> >> It would be helpful if someone could determine which routine in
>  >> lines2curves is causing the problem. However, looking at the code in
>  >> lines2curves it appears the problem could be caused by a way
>  >> containing two successive nodes at the same location (either the same
>  >> node or a different one). Does this sound plausible?
>  >
>  > Yes that would be a very plausible cause for this behaviour.
>  >
>  > Next question: how do we avoid this?
>
>
> Not sure, somewhere in the loop you would need to do a test like:
>
>  if( $vec->length == 0 )  # or < epsilon
>  { next }
>
>  so it just skips that node, since by definition it's not relevent.
>
>
>  Have a nice day,
>  --
>  Martijn van Oosterhout <[EMAIL PROTECTED]> http://svana.org/kleptog/
>
>  _______________________________________________
>  Tilesathome mailing list
>  [email protected]
>  http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/tilesathome
>

_______________________________________________
Tilesathome mailing list
[email protected]
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/tilesathome

Reply via email to