Hi,

using current Geofabrik extracts for Germany I run in an ArrayIndexOutOfBoundsException: at uk.me.parabola.imgfmt.app.labelenc.Format6Encoder.put6(Format6Encoder.java:136) at uk.me.parabola.imgfmt.app.labelenc.Format6Encoder.encodeText(Format6Encoder.java:90)
        at uk.me.parabola.imgfmt.app.Label.write(Label.java:117)
        at uk.me.parabola.imgfmt.app.lbl.LBLFile.newLabel(LBLFile.java:125)
at uk.me.parabola.mkgmap.build.MapBuilder.processPOIs(MapBuilder.java:461) at uk.me.parabola.mkgmap.build.MapBuilder.makeMap(MapBuilder.java:193)
        at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:96)
        at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:61)
        at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:189)
        at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:1)

The string to encode is "½" (1/2 as single character). This is used as housenumber in Wuerzburg:
http://www.openstreetmap.org/?lat=49.801248&lon=9.927579&zoom=18

To solve this I increased the byte buffer provided in encodeText by 1. But I'm not sure if this is the right solution.

Ronny
Index: src/uk/me/parabola/imgfmt/app/labelenc/Format6Encoder.java
===================================================================
--- src/uk/me/parabola/imgfmt/app/labelenc/Format6Encoder.java  (revision 1647)
+++ src/uk/me/parabola/imgfmt/app/labelenc/Format6Encoder.java  (working copy)
@@ -63,7 +63,7 @@
 
                String s = text.toUpperCase(Locale.ENGLISH);
 
-               byte[] buf = new byte[2 * s.length() + 1];
+               byte[] buf = new byte[2 * s.length() + 2];
                int off = 0;
 
                for (char c : transliterator.transliterate(s).toCharArray()) {
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Reply via email to