/*
* Copyright (C) 2007 Steve Ratcliffe
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* Author: Steve Ratcliffe
* Create date: 13-Jan-2007
*/
package uk.me.parabola.mkgmap.main;
import uk.me.parabola.imgfmt.app.Coord;
import uk.me.parabola.imgfmt.app.map.Map;
import uk.me.parabola.imgfmt.app.trergn.Polyline;
import uk.me.parabola.imgfmt.app.trergn.PolylineOverview;
import uk.me.parabola.imgfmt.app.trergn.Subdivision;
/**
* A test map for language support. It has a series of roads all with names
* that use the whole of the character set.
*
* Each 'road name' will contain a number of characters above 0x80. The name
* will start with a number that is the first non-ascii character in the name
* then the characters will be interspaced with the letters a, b, c, d, etc.
*
* Its probably easier just to look at it.
*
* @author Steve Ratcliffe
*/
public class MakeTestLangMap extends AbstractTestMap {
public static void main(String[] args) {
MakeTestLangMap tm = new MakeTestLangMap();
tm.makeMap(args);
}
protected void drawTestMap(Map map, Subdivision div, double lat, double lng) {
drawStreetnames(map, div, lat, lng);
}
private void drawStreetnames(Map map, Subdivision div, double slat, double slon) {
char[] hexChars = "0123456789ABCDEF".toCharArray();
double lat = slat + 0.004;
double lon = slon + 0.002;
div.startLines();
map.setLabelCharset("simple8", true);
double space = 0.002;
double size = 0.006;for (int y = 0; y < 16; y++) {
int start = 128 + 8*y;
char[] out = new char[19];
out[0] = hexChars[(start & 0xf0) >> 4];
out[1] = hexChars[(start & 0x0f)];
out[2] = ' ';
for (int i = 0; i < 8; i++) {
out[3 + 2 * i] = (char) ('A' + i);
out[3 + 2 * i + 1] = (char) (start + i);
}
String name = new String(out);
Polyline l = div.createLine(new String[]{name, null, null, null});
double baseLat = lat + y * space;
Coord co = new Coord(baseLat, lon);
l.addCoord(co);
co = new Coord(baseLat, lon + size);
l.addCoord(co);
l.setType(6);
map.addMapObject(l);
}
map.addPolylineOverview(new PolylineOverview(0x600, 10));
}
}