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