apply patch from issue 218

git-svn-id: https://osmand.googlecode.com/svn/trunk@719 e29c36b1-1cfa-d876-8d93-3434fc2bb7b8
This commit is contained in:
Victor Shcherb 2010-11-28 23:03:47 +00:00
parent e0e262d5a4
commit e2ee14856b
9 changed files with 348 additions and 245 deletions

View file

@ -56,6 +56,7 @@ import net.osmand.osm.OSMSettings.OSMTagKey;
import net.osmand.osm.io.IOsmStorageFilter;
import net.osmand.osm.io.OsmBaseStorage;
import net.osmand.swing.DataExtractionSettings;
import net.osmand.swing.Messages;
import net.sf.junidecode.Junidecode;
import org.apache.commons.logging.Log;
@ -265,55 +266,55 @@ public class IndexCreator {
Statement stat = dbConn.createStatement();
if (usingDerby()) {
try {
stat.executeUpdate("drop table node");
stat.executeUpdate("drop table node"); //$NON-NLS-1$
} catch (SQLException e) {
// ignore it
}
} else {
stat.executeUpdate("drop table if exists node");
stat.executeUpdate("drop table if exists node"); //$NON-NLS-1$
}
stat.executeUpdate("create table node (id bigint primary key, latitude double, longitude double)");
stat.executeUpdate("create index IdIndex ON node (id)");
stat.executeUpdate("create table node (id bigint primary key, latitude double, longitude double)"); //$NON-NLS-1$
stat.executeUpdate("create index IdIndex ON node (id)"); //$NON-NLS-1$
if (usingDerby()) {
try {
stat.executeUpdate("drop table ways");
stat.executeUpdate("drop table ways"); //$NON-NLS-1$
} catch (SQLException e) {
// ignore it
}
} else {
stat.executeUpdate("drop table if exists ways");
stat.executeUpdate("drop table if exists ways"); //$NON-NLS-1$
}
stat.executeUpdate("create table ways (id bigint, node bigint, ord smallint, primary key (id, ord))");
stat.executeUpdate("create index IdWIndex ON ways (id)");
stat.executeUpdate("create table ways (id bigint, node bigint, ord smallint, primary key (id, ord))"); //$NON-NLS-1$
stat.executeUpdate("create index IdWIndex ON ways (id)"); //$NON-NLS-1$
if (usingDerby()) {
try {
stat.executeUpdate("drop table relations");
stat.executeUpdate("drop table relations"); //$NON-NLS-1$
} catch (SQLException e) {
// ignore it
}
} else {
stat.executeUpdate("drop table if exists relations");
stat.executeUpdate("drop table if exists relations"); //$NON-NLS-1$
}
stat
.executeUpdate("create table relations (id bigint, member bigint, type smallint, role varchar(255), ord smallint, primary key (id, ord))");
stat.executeUpdate("create index IdRIndex ON relations (id)");
.executeUpdate("create table relations (id bigint, member bigint, type smallint, role varchar(255), ord smallint, primary key (id, ord))"); //$NON-NLS-1$
stat.executeUpdate("create index IdRIndex ON relations (id)"); //$NON-NLS-1$
if (usingDerby()) {
try {
stat.executeUpdate("drop table tags");
stat.executeUpdate("drop table tags"); //$NON-NLS-1$
} catch (SQLException e) {
// ignore it
}
} else {
stat.executeUpdate("drop table if exists tags");
stat.executeUpdate("drop table if exists tags"); //$NON-NLS-1$
}
stat.executeUpdate("create table tags (id bigint, type smallint, skeys varchar(255), value varchar(255), primary key (id, type, skeys))");
stat.executeUpdate("create index IdTIndex ON tags (id, type)");
stat.executeUpdate("create table tags (id bigint, type smallint, skeys varchar(255), value varchar(255), primary key (id, type, skeys))"); //$NON-NLS-1$
stat.executeUpdate("create index IdTIndex ON tags (id, type)"); //$NON-NLS-1$
stat.close();
prepNode = dbConn.prepareStatement("insert into node values (?, ?, ?)");
prepWays = dbConn.prepareStatement("insert into ways values (?, ?, ?)");
prepRelations = dbConn.prepareStatement("insert into relations values (?, ?, ?, ?, ?)");
prepTags = dbConn.prepareStatement("insert into tags values (?, ?, ?, ?)");
prepNode = dbConn.prepareStatement("insert into node values (?, ?, ?)"); //$NON-NLS-1$
prepWays = dbConn.prepareStatement("insert into ways values (?, ?, ?)"); //$NON-NLS-1$
prepRelations = dbConn.prepareStatement("insert into relations values (?, ?, ?, ?, ?)"); //$NON-NLS-1$
prepTags = dbConn.prepareStatement("insert into tags values (?, ?, ?, ?)"); //$NON-NLS-1$
dbConn.setAutoCommit(false);
}
@ -403,7 +404,7 @@ public class IndexCreator {
currentTagsCount = 0;
}
} catch (SQLException ex) {
log.error("Could not save in db", ex);
log.error("Could not save in db", ex); //$NON-NLS-1$
}
// do not add to storage
return false;
@ -424,7 +425,7 @@ public class IndexCreator {
public String getRegionName() {
if (regionName == null) {
return "Region";
return "Region"; //$NON-NLS-1$
}
return regionName;
}
@ -453,7 +454,7 @@ public class IndexCreator {
public static boolean databaseFileExists(File dbFile) {
if (usingH2()) {
return new File(dbFile.getAbsolutePath() + ".h2.db").exists();
return new File(dbFile.getAbsolutePath() + ".h2.db").exists(); //$NON-NLS-1$
} else {
return dbFile.exists();
}
@ -623,7 +624,7 @@ public class IndexCreator {
}
public String getTempMapDBFileName() {
return getMapFileName() + ".tmp";
return getMapFileName() + ".tmp"; //$NON-NLS-1$
}
public Long getLastModifiedDate() {
@ -651,13 +652,13 @@ public class IndexCreator {
// stat.executeUpdate("create table relations (id "+longType+", member "+longType+", type smallint, role varchar(255), ord smallint)");
if (type == EntityType.NODE) {
// filter out all nodes without tags
select = "select n.id, n.latitude, n.longitude, t.skeys, t.value from node n inner join tags t on n.id = t.id and t.type = 0 order by n.id";
select = "select n.id, n.latitude, n.longitude, t.skeys, t.value from node n inner join tags t on n.id = t.id and t.type = 0 order by n.id"; //$NON-NLS-1$
} else if (type == EntityType.WAY) {
select = "select w.id, w.node, w.ord, t.skeys, t.value, n.latitude, n.longitude " +
"from ways w left join tags t on w.id = t.id and t.type = 1 and w.ord = 0 inner join node n on w.node = n.id " +
"order by w.id, w.ord";
select = "select w.id, w.node, w.ord, t.skeys, t.value, n.latitude, n.longitude " + //$NON-NLS-1$
"from ways w left join tags t on w.id = t.id and t.type = 1 and w.ord = 0 inner join node n on w.node = n.id " + //$NON-NLS-1$
"order by w.id, w.ord"; //$NON-NLS-1$
} else {
select = "select r.id, t.skeys, t.value from relations r inner join tags t on t.id = r.id and t.type = 2 and r.ord = 0";
select = "select r.id, t.skeys, t.value from relations r inner join tags t on t.id = r.id and t.type = 2 and r.ord = 0"; //$NON-NLS-1$
}
ResultSet rs = statement.executeQuery(select);
@ -722,16 +723,16 @@ public class IndexCreator {
private static Set<String> acceptedRoutes = new HashSet<String>();
static {
acceptedRoutes.add("bus");
acceptedRoutes.add("trolleybus");
acceptedRoutes.add("share_taxi");
acceptedRoutes.add("bus"); //$NON-NLS-1$
acceptedRoutes.add("trolleybus"); //$NON-NLS-1$
acceptedRoutes.add("share_taxi"); //$NON-NLS-1$
acceptedRoutes.add("subway");
acceptedRoutes.add("train");
acceptedRoutes.add("subway"); //$NON-NLS-1$
acceptedRoutes.add("train"); //$NON-NLS-1$
acceptedRoutes.add("tram");
acceptedRoutes.add("tram"); //$NON-NLS-1$
acceptedRoutes.add("ferry");
acceptedRoutes.add("ferry"); //$NON-NLS-1$
}
private TransportRoute indexTransportRoute(Relation rel) {
@ -749,7 +750,7 @@ public class IndexCreator {
r.setType(route);
if (operator != null) {
route = operator + " : " + route;
route = operator + " : " + route; //$NON-NLS-1$
}
final Map<TransportStop, Integer> forwardStops = new LinkedHashMap<TransportStop, Integer>();
@ -758,11 +759,11 @@ public class IndexCreator {
int forwardStop = 0;
int backwardStop = 0;
for (Entry<Entity, String> e : rel.getMemberEntities().entrySet()) {
if (e.getValue().contains("stop")) {
if (e.getValue().contains("stop")) { //$NON-NLS-1$
if (e.getKey() instanceof Node) {
TransportStop stop = new TransportStop(e.getKey());
boolean forward = e.getValue().contains("forward");
boolean backward = e.getValue().contains("backward");
boolean forward = e.getValue().contains("forward"); //$NON-NLS-1$
boolean backward = e.getValue().contains("backward"); //$NON-NLS-1$
currentStop++;
if (forward || !backward) {
forwardStop++;
@ -834,15 +835,15 @@ public class IndexCreator {
public void indexAddressRelation(Relation i) throws SQLException {
String type = i.getTag(OSMTagKey.ADDRESS_TYPE);
boolean house = "house".equals(type);
boolean street = "a6".equals(type);
boolean house = "house".equals(type); //$NON-NLS-1$
boolean street = "a6".equals(type); //$NON-NLS-1$
if (house || street) {
// try to find appropriate city/street
City c = null;
// load with member ways with their nodes and tags !
loadEntityData(i, true);
Collection<Entity> members = i.getMembers("is_in");
Collection<Entity> members = i.getMembers("is_in"); //$NON-NLS-1$
Relation a3 = null;
Relation a6 = null;
if (!members.isEmpty()) {
@ -855,7 +856,7 @@ public class IndexCreator {
// go one level up for house
if (house) {
a6 = (Relation) in;
members = ((Relation) in).getMembers("is_in");
members = ((Relation) in).getMembers("is_in"); //$NON-NLS-1$
if (!members.isEmpty()) {
in = members.iterator().next();
loadEntityData(in, true);
@ -871,7 +872,7 @@ public class IndexCreator {
}
if (a3 != null) {
Collection<EntityId> memberIds = a3.getMemberIds("label");
Collection<EntityId> memberIds = a3.getMemberIds("label"); //$NON-NLS-1$
if (!memberIds.isEmpty()) {
c = cities.get(memberIds.iterator().next());
}
@ -897,7 +898,7 @@ public class IndexCreator {
}
if (street) {
for (Map.Entry<Entity, String> r : i.getMemberEntities().entrySet()) {
if ("street".equals(r.getValue())) {
if ("street".equals(r.getValue())) { //$NON-NLS-1$
if (r.getKey() instanceof Way && saveAddressWays) {
DataIndexWriter.writeStreetWayNodes(addressStreetNodeStat,
pStatements, streetId, (Way) r.getKey(), BATCH_SIZE);
@ -905,7 +906,7 @@ public class IndexCreator {
addressStreetNodeLocalSet.add(r.getKey().getId());
}
}
} else if ("house".equals(r.getValue())) {
} else if ("house".equals(r.getValue())) { //$NON-NLS-1$
// will be registered further in other case
if (!(r.getKey() instanceof Relation)) {
String hno = r.getKey().getTag(OSMTagKey.ADDR_HOUSE_NUMBER);
@ -929,7 +930,7 @@ public class IndexCreator {
if (hno == null) {
hno = i.getTag(OSMTagKey.NAME);
}
members = i.getMembers("border");
members = i.getMembers("border"); //$NON-NLS-1$
if (!members.isEmpty()) {
Entity border = members.iterator().next();
if (border != null) {
@ -946,7 +947,7 @@ public class IndexCreator {
}
}
} else {
log.info("For relation " + i.getId() + " border not found");
log.info("For relation " + i.getId() + " border not found"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
@ -1067,7 +1068,7 @@ public class IndexCreator {
name = normalizeStreetName(name);
if (loadInMemory) {
foundId = addressStreetLocalMap.get(name + "_" + city.getId());
foundId = addressStreetLocalMap.get(name + "_" + city.getId()); //$NON-NLS-1$
} else {
addressSearchStreetStat.setLong(1, city.getId());
addressSearchStreetStat.setString(2, name);
@ -1083,7 +1084,7 @@ public class IndexCreator {
location.getLatitude(), location.getLongitude(), city.getId());
if (loadInMemory) {
DataIndexWriter.addBatch(pStatements, addressStreetStat, BATCH_SIZE);
addressStreetLocalMap.put(name + "_" + city.getId(), initId);
addressStreetLocalMap.put(name + "_" + city.getId(), initId); //$NON-NLS-1$
} else {
addressStreetStat.execute();
// commit immediately to search after
@ -1128,7 +1129,7 @@ public class IndexCreator {
if (indexMap && (e instanceof Way || e instanceof Node)) {
// manipulate what kind of way to load
loadEntityData(e, false);
boolean inverse = "-1".equals(e.getTag(OSMTagKey.ONEWAY));
boolean inverse = "-1".equals(e.getTag(OSMTagKey.ONEWAY)); //$NON-NLS-1$
for (int i = 0; i < MAP_ZOOMS.length - 1; i++) {
writeBinaryEntityToMapDatabase(e, e.getId(), i == 0 ? inverse : false, i);
}
@ -1199,33 +1200,33 @@ public class IndexCreator {
}
} else if (step == STEP_ADDRESS_RELATIONS_AND_MULTYPOLYGONS) {
if (indexAddress) {
if (e instanceof Relation && "address".equals(e.getTag(OSMTagKey.TYPE))) {
if (e instanceof Relation && "address".equals(e.getTag(OSMTagKey.TYPE))) { //$NON-NLS-1$
indexAddressRelation((Relation) e);
}
}
if (indexMap && e instanceof Relation && "restriction".equals(e.getTag(OSMTagKey.TYPE))) {
String val = e.getTag("restriction");
if (indexMap && e instanceof Relation && "restriction".equals(e.getTag(OSMTagKey.TYPE))) { //$NON-NLS-1$
String val = e.getTag("restriction"); //$NON-NLS-1$
if (val != null) {
byte type = -1;
if ("no_right_turn".equalsIgnoreCase(val)) {
if ("no_right_turn".equalsIgnoreCase(val)) { //$NON-NLS-1$
type = MapRenderingTypes.RESTRICTION_NO_RIGHT_TURN;
} else if ("no_left_turn".equalsIgnoreCase(val)) {
} else if ("no_left_turn".equalsIgnoreCase(val)) { //$NON-NLS-1$
type = MapRenderingTypes.RESTRICTION_NO_LEFT_TURN;
} else if ("no_u_turn".equalsIgnoreCase(val)) {
} else if ("no_u_turn".equalsIgnoreCase(val)) { //$NON-NLS-1$
type = MapRenderingTypes.RESTRICTION_NO_U_TURN;
} else if ("no_straight_on".equalsIgnoreCase(val)) {
} else if ("no_straight_on".equalsIgnoreCase(val)) { //$NON-NLS-1$
type = MapRenderingTypes.RESTRICTION_NO_STRAIGHT_ON;
} else if ("only_right_turn".equalsIgnoreCase(val)) {
} else if ("only_right_turn".equalsIgnoreCase(val)) { //$NON-NLS-1$
type = MapRenderingTypes.RESTRICTION_ONLY_RIGHT_TURN;
} else if ("only_left_turn".equalsIgnoreCase(val)) {
} else if ("only_left_turn".equalsIgnoreCase(val)) { //$NON-NLS-1$
type = MapRenderingTypes.RESTRICTION_ONLY_LEFT_TURN;
} else if ("only_straight_on".equalsIgnoreCase(val)) {
} else if ("only_straight_on".equalsIgnoreCase(val)) { //$NON-NLS-1$
type = MapRenderingTypes.RESTRICTION_ONLY_STRAIGHT_ON;
}
if (type != -1) {
loadEntityData(e, true);
Collection<EntityId> fromL = ((Relation) e).getMemberIds("from");
Collection<EntityId> toL = ((Relation) e).getMemberIds("to");
Collection<EntityId> fromL = ((Relation) e).getMemberIds("from"); //$NON-NLS-1$
Collection<EntityId> toL = ((Relation) e).getMemberIds("to"); //$NON-NLS-1$
if (!fromL.isEmpty() && !toL.isEmpty()) {
EntityId from = fromL.iterator().next();
EntityId to = toL.iterator().next();
@ -1239,13 +1240,13 @@ public class IndexCreator {
}
}
}
if (indexMap && e instanceof Relation && "multipolygon".equals(e.getTag(OSMTagKey.TYPE))) {
if (indexMap && e instanceof Relation && "multipolygon".equals(e.getTag(OSMTagKey.TYPE))) { //$NON-NLS-1$
loadEntityData(e, true);
Map<Entity, String> entities = ((Relation) e).getMemberEntities();
for (Entity es : entities.keySet()) {
if (es instanceof Way) {
boolean inner = "inner".equals(entities.get(es));
boolean inner = "inner".equals(entities.get(es)); //$NON-NLS-1$
if (!inner) {
for (String t : es.getTagKeySet()) {
e.putTag(t, es.getTag(t));
@ -1277,24 +1278,24 @@ public class IndexCreator {
// skip completed rings that are not one type
for (List<Way> l : completedRings) {
boolean innerType = "inner".equals(entities.get(l.get(0)));
boolean innerType = "inner".equals(entities.get(l.get(0))); //$NON-NLS-1$
for (Way way : l) {
boolean inner = "inner".equals(entities.get(way));
boolean inner = "inner".equals(entities.get(way)); //$NON-NLS-1$
if (innerType != inner) {
log.warn("Probably map bug: Multipoligon contains outer and inner ways.\n" +
"Way:" + way.getId() + " is strange part of completed ring. InnerType:" + innerType + " way inner: " + inner + " way inner string:" + entities.get(way));
log.warn("Probably map bug: Multipoligon contains outer and inner ways.\n" + //$NON-NLS-1$
"Way:" + way.getId() + " is strange part of completed ring. InnerType:" + innerType + " way inner: " + inner + " way inner string:" + entities.get(way)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
return;
}
}
}
for (List<Way> l : completedRings) {
boolean innerType = "inner".equals(entities.get(l.get(0)));
boolean innerType = "inner".equals(entities.get(l.get(0))); //$NON-NLS-1$
boolean clockwise = isClockwiseWay(l);
// clockwise - outer (like coastline), anticlockwise - inner
boolean inverse = clockwise != !innerType;
for (Way way : l) {
boolean inner = "inner".equals(entities.get(way));
boolean inner = "inner".equals(entities.get(way)); //$NON-NLS-1$
if (!inner && name != null) {
multiPolygonsNames.put(way.getId(), name);
}
@ -1575,7 +1576,7 @@ public class IndexCreator {
int ind = 0;
int sh = 0;
if(typeUse.size() > 3){
log.error("Types for low index way more than 4");
log.error("Types for low index way more than 4"); //$NON-NLS-1$
}
i |= (mainType << sh);
if (typeUse.size() > ind) {
@ -1907,7 +1908,7 @@ public class IndexCreator {
break;
}
}
progress.startTask("Serializing city addresses...", j + ((cities.size() - j) / 100 + 1));
progress.startTask(Messages.getString("IndexCreator.SERIALIZING_ADRESS"), j + ((cities.size() - j) / 100 + 1)); //$NON-NLS-1$
Map<String, Set<Street>> postcodes = new TreeMap<String, Set<Street>>();
boolean writeCities = true;
@ -1950,7 +1951,7 @@ public class IndexCreator {
}
}
if (f > 500) {
System.out.println("! " + c.getName() + " ! " + f + " " + bCount + " streets " + streets.size());
System.out.println("! " + c.getName() + " ! " + f + " " + bCount + " streets " + streets.size()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
}
}
writer.endCityIndexes(!writeCities);
@ -1975,7 +1976,7 @@ public class IndexCreator {
public void writeBinaryMapIndex(BinaryMapIndexWriter writer) throws IOException, SQLException {
try {
PreparedStatement selectData = mapConnection.prepareStatement("SELECT nodes, types, name, highway, restrictions FROM binary_map_objects WHERE id = ?");
PreparedStatement selectData = mapConnection.prepareStatement("SELECT nodes, types, name, highway, restrictions FROM binary_map_objects WHERE id = ?"); //$NON-NLS-1$
writer.startWriteMapIndex(regionName);
@ -2024,7 +2025,7 @@ public class IndexCreator {
rs.getBytes(2), rs.getString(3),
rs.getInt(4), rs.getBytes(5));
} else {
log.error("Something goes wrong with id = " + id);
log.error("Something goes wrong with id = " + id); //$NON-NLS-1$
}
} else {
long ptr = ((NonLeafElement) e[i]).getPtr();
@ -2049,14 +2050,14 @@ public class IndexCreator {
private Map<String, Integer> createStringTableForTransport() {
Map<String, Integer> stringTable = new LinkedHashMap<String, Integer>();
registerString(stringTable, "bus");
registerString(stringTable, "trolleybus");
registerString(stringTable, "subway");
registerString(stringTable, "tram");
registerString(stringTable, "share_taxi");
registerString(stringTable, "taxi");
registerString(stringTable, "train");
registerString(stringTable, "ferry");
registerString(stringTable, "bus"); //$NON-NLS-1$
registerString(stringTable, "trolleybus"); //$NON-NLS-1$
registerString(stringTable, "subway"); //$NON-NLS-1$
registerString(stringTable, "tram"); //$NON-NLS-1$
registerString(stringTable, "share_taxi"); //$NON-NLS-1$
registerString(stringTable, "taxi"); //$NON-NLS-1$
registerString(stringTable, "train"); //$NON-NLS-1$
registerString(stringTable, "ferry"); //$NON-NLS-1$
return stringTable;
}
@ -2064,10 +2065,10 @@ public class IndexCreator {
try {
visitedStops = null; // allow gc to collect it
PreparedStatement selectTransportRouteData = mapConnection.prepareStatement(
"SELECT id, dist, name, name_en, ref, operator, type FROM transport_route");
PreparedStatement selectTransportData = mapConnection.prepareStatement("SELECT S.stop, S.direction," +
" A.latitude, A.longitude, A.name, A.name_en " +
"FROM transport_route_stop S INNER JOIN transport_stop A ON A.id = S.stop WHERE S.route = ? ORDER BY S.ord asc");
"SELECT id, dist, name, name_en, ref, operator, type FROM transport_route"); //$NON-NLS-1$
PreparedStatement selectTransportData = mapConnection.prepareStatement("SELECT S.stop, S.direction," + //$NON-NLS-1$
" A.latitude, A.longitude, A.name, A.name_en " + //$NON-NLS-1$
"FROM transport_route_stop S INNER JOIN transport_stop A ON A.id = S.stop WHERE S.route = ? ORDER BY S.ord asc"); //$NON-NLS-1$
writer.startWriteTransportIndex(regionName);
@ -2127,9 +2128,9 @@ public class IndexCreator {
writer.endWriteTransportRoutes();
PreparedStatement selectTransportStop = mapConnection.prepareStatement(
"SELECT A.id, A.latitude, A.longitude, A.name, A.name_en FROM transport_stop A where A.id = ?");
"SELECT A.id, A.latitude, A.longitude, A.name, A.name_en FROM transport_stop A where A.id = ?"); //$NON-NLS-1$
PreparedStatement selectTransportRouteStop = mapConnection.prepareStatement(
"SELECT DISTINCT S.route FROM transport_route_stop S WHERE S.stop = ? ");
"SELECT DISTINCT S.route FROM transport_route_stop S WHERE S.stop = ? "); //$NON-NLS-1$
long rootIndex = transportStopsTree.getFileHdr().getRootIndex();
rtree.Node root = transportStopsTree.getReadNode(rootIndex);
Rect rootBounds = calcBounds(root);
@ -2180,7 +2181,7 @@ public class IndexCreator {
while (rset.next()) {
Long route = transportRoutes.get(rset.getLong(1));
if (route == null) {
log.error("Something goes wrong with transport route id = " + rset.getLong(1));
log.error("Something goes wrong with transport route id = " + rset.getLong(1)); //$NON-NLS-1$
} else {
routes.add(route);
}
@ -2188,7 +2189,7 @@ public class IndexCreator {
rset.close();
writer.writeTransportStop(id, x24, y24, name, nameEn, stringTable, routes);
} else {
log.error("Something goes wrong with transport id = " + id);
log.error("Something goes wrong with transport id = " + id); //$NON-NLS-1$
}
} else {
long ptr = ((NonLeafElement) e[i]).getPtr();
@ -2219,19 +2220,19 @@ public class IndexCreator {
}
public String getRTreeMapIndexNonPackFileName() {
return mapFile.getAbsolutePath() + ".rtree";
return mapFile.getAbsolutePath() + ".rtree"; //$NON-NLS-1$
}
public String getRTreeTransportStopsFileName() {
return mapFile.getAbsolutePath() + ".trans";
return mapFile.getAbsolutePath() + ".trans"; //$NON-NLS-1$
}
public String getRTreeTransportStopsPackFileName() {
return mapFile.getAbsolutePath() + ".ptrans";
return mapFile.getAbsolutePath() + ".ptrans"; //$NON-NLS-1$
}
public String getRTreeMapIndexPackFileName() {
return mapFile.getAbsolutePath() + ".prtree";
return mapFile.getAbsolutePath() + ".prtree"; //$NON-NLS-1$
}
public void generateIndexes(File readFile, IProgress progress, IOsmStorageFilter addFilter) throws IOException, SAXException,
@ -2272,8 +2273,8 @@ public class IndexCreator {
int allWays = 1000000;
int allNodes = 10000000;
if (loadFromPath) {
progress.setGeneralProgress("[35 of 100]");
progress.startTask("Loading file " + readFile.getAbsolutePath(), -1);
progress.setGeneralProgress("[35 / 100]"); //$NON-NLS-1$
progress.startTask(Messages.getString("IndexCreator.LOADING_FILE") + readFile.getAbsolutePath(), -1); //$NON-NLS-1$
NewDataExtractionOsmFilter filter = extractOsmToNodesDB(readFile, progress, addFilter);
if (filter != null) {
@ -2283,14 +2284,14 @@ public class IndexCreator {
}
}
pselectNode = dbConn.prepareStatement("select n.latitude, n.longitude, t.skeys, t.value from node n left join tags t on n.id = t.id and t.type = 0 where n.id = ?");
pselectWay = dbConn.prepareStatement("select w.node, w.ord, t.skeys, t.value, n.latitude, n.longitude " +
"from ways w left join tags t on w.id = t.id and t.type = 1 and w.ord = 0 inner join node n on w.node = n.id " +
"where w.id = ? order by w.ord");
pselectRelation = dbConn.prepareStatement("select r.member, r.type, r.role, r.ord, t.skeys, t.value " +
"from relations r left join tags t on r.id = t.id and t.type = 2 and r.ord = 0 " +
"where r.id = ? order by r.ord");
pselectTags = dbConn.prepareStatement("select skeys, value from tags where id = ? and type = ?");
pselectNode = dbConn.prepareStatement("select n.latitude, n.longitude, t.skeys, t.value from node n left join tags t on n.id = t.id and t.type = 0 where n.id = ?"); //$NON-NLS-1$
pselectWay = dbConn.prepareStatement("select w.node, w.ord, t.skeys, t.value, n.latitude, n.longitude " + //$NON-NLS-1$
"from ways w left join tags t on w.id = t.id and t.type = 1 and w.ord = 0 inner join node n on w.node = n.id " + //$NON-NLS-1$
"where w.id = ? order by w.ord"); //$NON-NLS-1$
pselectRelation = dbConn.prepareStatement("select r.member, r.type, r.role, r.ord, t.skeys, t.value " + //$NON-NLS-1$
"from relations r left join tags t on r.id = t.id and t.type = 2 and r.ord = 0 " + //$NON-NLS-1$
"where r.id = ? order by r.ord"); //$NON-NLS-1$
pselectTags = dbConn.prepareStatement("select skeys, value from tags where id = ? and type = ?"); //$NON-NLS-1$
// do not create temp map file and rtree files
if (recreateOnlyBinaryFile) {
@ -2310,7 +2311,7 @@ public class IndexCreator {
transportStopsTree = new RTree(getRTreeTransportStopsPackFileName());
}
} catch (RTreeException e) {
log.error("Error flushing", e);
log.error("Error flushing", e); //$NON-NLS-1$
throw new IOException(e);
}
} else {
@ -2322,8 +2323,8 @@ public class IndexCreator {
// 3.1 write all cities
if (indexAddress) {
progress.setGeneralProgress("[40 of 100]");
progress.startTask("Indexing cities...", allNodes);
progress.setGeneralProgress("[40 / 100]"); //$NON-NLS-1$
progress.startTask(Messages.getString("IndexCreator.INDEX_CITIES"), allNodes); //$NON-NLS-1$
if (!loadFromPath) {
allNodes = iterateOverEntities(progress, EntityType.NODE, allNodes, STEP_CITY_NODES);
}
@ -2342,8 +2343,8 @@ public class IndexCreator {
// 3.2 index address relations
if (indexAddress || indexMap) {
progress.setGeneralProgress("[40 of 100]");
progress.startTask("Preindexing address and map ways...", allRelations);
progress.setGeneralProgress("[40 / 100]"); //$NON-NLS-1$
progress.startTask(Messages.getString("IndexCreator.PREINDEX_ADRESS_MAP"), allRelations); //$NON-NLS-1$
allRelations = iterateOverEntities(progress, EntityType.RELATION, allRelations,
STEP_ADDRESS_RELATIONS_AND_MULTYPOLYGONS);
// commit to put all cities
@ -2394,16 +2395,16 @@ public class IndexCreator {
// 4. packing map rtree indexes
if (indexMap) {
progress.setGeneralProgress("[90 of 100]");
progress.startTask("Packing rtree map data...", -1);
progress.setGeneralProgress("[90 / 100]"); //$NON-NLS-1$
progress.startTask(Messages.getString("IndexCreator.PACK_RTREE_MAP"), -1); //$NON-NLS-1$
for (int i = 0; i < MAP_ZOOMS.length - 1; i++) {
mapTree[i] = packRtreeFile(mapTree[i], getRTreeMapIndexNonPackFileName() + i, getRTreeMapIndexPackFileName() + i);
}
}
if (indexTransport) {
progress.setGeneralProgress("[90 of 100]");
progress.startTask("Packing rtree transport data...", -1);
progress.setGeneralProgress("[90 / 100]"); //$NON-NLS-1$
progress.startTask(Messages.getString("IndexCreator.PACK_RTREE_TRANSP"), -1); //$NON-NLS-1$
transportStopsTree = packRtreeFile(transportStopsTree, getRTreeTransportStopsFileName(), getRTreeTransportStopsPackFileName());
}
}
@ -2440,19 +2441,19 @@ public class IndexCreator {
progress.finishTask();
writer.close();
mapRAFile.close();
log.info("Finish writing binary file");
log.info("Finish writing binary file"); //$NON-NLS-1$
}
} catch (RuntimeException e) {
log.error("Log exception", e);
log.error("Log exception", e); //$NON-NLS-1$
throw e;
} catch (SQLException e) {
log.error("Log exception", e);
log.error("Log exception", e); //$NON-NLS-1$
throw e;
} catch (IOException e) {
log.error("Log exception", e);
log.error("Log exception", e); //$NON-NLS-1$
throw e;
} catch (SAXException e) {
log.error("Log exception", e);
log.error("Log exception", e); //$NON-NLS-1$
throw e;
} finally {
try {
@ -2532,14 +2533,14 @@ public class IndexCreator {
// do not delete first db connection
if (dbConn != null) {
if (usingH2()) {
dbConn.createStatement().execute("SHUTDOWN COMPACT");
dbConn.createStatement().execute("SHUTDOWN COMPACT"); //$NON-NLS-1$
}
dbConn.close();
}
if (deleteOsmDB) {
if (usingDerby()) {
try {
DriverManager.getConnection("jdbc:derby:;shutdown=true");
DriverManager.getConnection("jdbc:derby:;shutdown=true"); //$NON-NLS-1$
} catch (SQLException e) {
// ignore exception
}
@ -2572,7 +2573,7 @@ public class IndexCreator {
private RTree packRtreeFile(RTree tree, String nonPackFileName, String packFileName) throws IOException {
try {
assert rtree.Node.MAX < 50 : "It is better for search performance";
assert rtree.Node.MAX < 50 : "It is better for search performance"; //$NON-NLS-1$
tree.flush();
File file = new File(packFileName);
if (file.exists()) {
@ -2589,7 +2590,7 @@ public class IndexCreator {
return new RTree(packFileName);
}
} catch (RTreeException e) {
log.error("Error flushing", e);
log.error("Error flushing", e); //$NON-NLS-1$
throw new IOException(e);
}
return tree;
@ -2602,13 +2603,13 @@ public class IndexCreator {
InputStream stream = new FileInputStream(readFile);
InputStream streamFile = stream;
long st = System.currentTimeMillis();
if (readFile.getName().endsWith(".bz2")) {
if (readFile.getName().endsWith(".bz2")) { //$NON-NLS-1$
if (stream.read() != 'B' || stream.read() != 'Z') {
throw new RuntimeException("The source stream must start with the characters BZ if it is to be read as a BZip2 stream.");
throw new RuntimeException("The source stream must start with the characters BZ if it is to be read as a BZip2 stream."); //$NON-NLS-1$
} else {
stream = new CBZip2InputStream(stream);
}
} else if (readFile.getName().endsWith(".pbf")) {
} else if (readFile.getName().endsWith(".pbf")) { //$NON-NLS-1$
pbfFile = true;
}
@ -2633,13 +2634,13 @@ public class IndexCreator {
dbConn.commit();
if (log.isInfoEnabled()) {
log.info("File parsed : " + (System.currentTimeMillis() - st));
log.info("File parsed : " + (System.currentTimeMillis() - st)); //$NON-NLS-1$
}
progress.finishTask();
return filter;
} finally {
if (log.isInfoEnabled()) {
log.info("File indexed : " + (System.currentTimeMillis() - st));
log.info("File indexed : " + (System.currentTimeMillis() - st)); //$NON-NLS-1$
}
}
}
@ -2748,15 +2749,15 @@ public class IndexCreator {
}
public static void removeWayNodes(File sqlitedb) throws SQLException {
Connection dbConn = DriverManager.getConnection("jdbc:sqlite:" + sqlitedb.getAbsolutePath());
Connection dbConn = DriverManager.getConnection("jdbc:sqlite:" + sqlitedb.getAbsolutePath()); //$NON-NLS-1$
dbConn.setAutoCommit(false);
Statement st = dbConn.createStatement();
st.execute("DELETE FROM street_node WHERE 1=1");
st.execute("DELETE FROM street_node WHERE 1=1"); //$NON-NLS-1$
st.close();
dbConn.commit();
st = dbConn.createStatement();
if (usingSQLite()) {
st.execute("VACUUM");
st.execute("VACUUM"); //$NON-NLS-1$
}
st.close();
dbConn.close();
@ -2766,7 +2767,7 @@ public class IndexCreator {
long time = System.currentTimeMillis();
IndexCreator creator = new IndexCreator(new File("e:/Information/OSM maps/osmand/"));
IndexCreator creator = new IndexCreator(new File("e:/Information/OSM maps/osmand/")); //$NON-NLS-1$
creator.setIndexMap(true);
creator.setIndexAddress(true);
creator.setIndexPOI(true);
@ -2800,14 +2801,14 @@ public class IndexCreator {
// creator.generateIndexes(new File("e:/Information/OSM maps/osm_map/map.osm"), new ConsoleProgressImplementation(15), null);
System.out.println("WHOLE GENERATION TIME : " + (System.currentTimeMillis() - time));
System.out.println("COORDINATES_SIZE " + BinaryMapIndexWriter.COORDINATES_SIZE + " count " + BinaryMapIndexWriter.COORDINATES_COUNT);
System.out.println("TYPES_SIZE " + BinaryMapIndexWriter.TYPES_SIZE);
System.out.println("ID_SIZE " + BinaryMapIndexWriter.ID_SIZE);
System.out.println("- COORD_TYPES_ID SIZE " + (BinaryMapIndexWriter.COORDINATES_SIZE + BinaryMapIndexWriter.TYPES_SIZE + BinaryMapIndexWriter.ID_SIZE));
System.out.println("- MAP_DATA_SIZE " + BinaryMapIndexWriter.MAP_DATA_SIZE);
System.out.println("- STRING_TABLE_SIZE " + BinaryMapIndexWriter.STRING_TABLE_SIZE);
System.out.println("-- MAP_DATA_AND_STRINGS SIZE " + (BinaryMapIndexWriter.MAP_DATA_SIZE + BinaryMapIndexWriter.STRING_TABLE_SIZE));
System.out.println("WHOLE GENERATION TIME : " + (System.currentTimeMillis() - time)); //$NON-NLS-1$
System.out.println("COORDINATES_SIZE " + BinaryMapIndexWriter.COORDINATES_SIZE + " count " + BinaryMapIndexWriter.COORDINATES_COUNT); //$NON-NLS-1$ //$NON-NLS-2$
System.out.println("TYPES_SIZE " + BinaryMapIndexWriter.TYPES_SIZE); //$NON-NLS-1$
System.out.println("ID_SIZE " + BinaryMapIndexWriter.ID_SIZE); //$NON-NLS-1$
System.out.println("- COORD_TYPES_ID SIZE " + (BinaryMapIndexWriter.COORDINATES_SIZE + BinaryMapIndexWriter.TYPES_SIZE + BinaryMapIndexWriter.ID_SIZE)); //$NON-NLS-1$
System.out.println("- MAP_DATA_SIZE " + BinaryMapIndexWriter.MAP_DATA_SIZE); //$NON-NLS-1$
System.out.println("- STRING_TABLE_SIZE " + BinaryMapIndexWriter.STRING_TABLE_SIZE); //$NON-NLS-1$
System.out.println("-- MAP_DATA_AND_STRINGS SIZE " + (BinaryMapIndexWriter.MAP_DATA_SIZE + BinaryMapIndexWriter.STRING_TABLE_SIZE)); //$NON-NLS-1$
}
}

View file

@ -38,10 +38,10 @@ public class MapInformationLayer implements MapPanelLayer {
gpsLocation.setOpaque(false);
updateLocationLabel();
JButton zoomIn = new JButton("+");
JButton zoomOut = new JButton("-");
JButton zoomIn = new JButton("+"); //$NON-NLS-1$
JButton zoomOut = new JButton("-"); //$NON-NLS-1$
areaButton = new JButton();
areaButton.setAction(new AbstractAction("Preload area"){
areaButton.setAction(new AbstractAction(Messages.getString("MapInformationLayer.PRELOAD.AREA")){ //$NON-NLS-1$
private static final long serialVersionUID = -5512220294374994021L;
@Override
@ -88,7 +88,7 @@ public class MapInformationLayer implements MapPanelLayer {
double latitude = map.getLatitude();
double longitude = map.getLongitude();
int zoom = map.getZoom();
gpsLocation.setText(MessageFormat.format("Lat : {0,number,#.####}, lon : {1,number,#.####}, zoom : {2}", latitude, longitude, zoom));
gpsLocation.setText(MessageFormat.format("Lat : {0,number,#.####}, lon : {1,number,#.####}, zoom : {2}", latitude, longitude, zoom)); //$NON-NLS-1$
}
@Override
public void prepareToDraw() {

View file

@ -63,13 +63,13 @@ public class MapPanel extends JPanel implements IMapDownloaderCallback {
public static JMenu getMenuToChooseSource(final MapPanel panel){
final JMenu tiles = new JMenu("Source of tiles");
final JMenu userDefined = new JMenu("User defined");
final JMenu tiles = new JMenu(Messages.getString("MapPanel.SOURCE.OF.TILES")); //$NON-NLS-1$
final JMenu userDefined = new JMenu(Messages.getString("MapPanel.USER.DEFINED")); //$NON-NLS-1$
final List<TileSourceTemplate> list = TileSourceManager.getKnownSourceTemplates();
final List<TileSourceTemplate> udf = TileSourceManager.getUserDefinedTemplates(DataExtractionSettings.getSettings().getTilesDirectory());
final Map<TileSourceTemplate, JCheckBoxMenuItem> items = new LinkedHashMap<TileSourceTemplate, JCheckBoxMenuItem>();
tiles.add(userDefined);
userDefined.add(new AbstractAction("Create new tile source"){
userDefined.add(new AbstractAction(Messages.getString("MapPanel.NEW.TILE.SRC")){ //$NON-NLS-1$
private static final long serialVersionUID = -8286622335859339130L;
@Override
@ -137,7 +137,7 @@ public class MapPanel extends JPanel implements IMapDownloaderCallback {
public static void main(String[] args) throws IOException {
JFrame frame = new JFrame("Map view");
JFrame frame = new JFrame(Messages.getString("MapPanel.MAP.VIEW")); //$NON-NLS-1$
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
@ -327,7 +327,7 @@ public class MapPanel extends JPanel implements IMapDownloaderCallback {
}
public String getFileForImage (int x, int y, int zoom, String ext){
return map.getName() +"/"+zoom+"/"+(x) +"/"+y+ext+".tile";
return map.getName() +"/"+zoom+"/"+(x) +"/"+y+ext+".tile"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
}
public Image getImageFor(int x, int y, int zoom, boolean loadIfNeeded) throws IOException{
@ -344,13 +344,13 @@ public class MapPanel extends JPanel implements IMapDownloaderCallback {
remove.flush();
}
if(log.isInfoEnabled()){
log.info("Before running gc on map tiles. Total Memory : " + (Runtime.getRuntime().totalMemory() >> 20) + " Mb. Used memory : "
+ ((Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) >> 20) + " Mb");
log.info("Before running gc on map tiles. Total Memory : " + (Runtime.getRuntime().totalMemory() >> 20) + " Mb. Used memory : " //$NON-NLS-1$ //$NON-NLS-2$
+ ((Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) >> 20) + " Mb"); //$NON-NLS-1$
}
System.gc();
if(log.isInfoEnabled()){
log.info("After running gc on map tiles. Total Memory : " + (Runtime.getRuntime().totalMemory() >> 20) + " Mb. Used memory : "
+ ((Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) >> 20) + " Mb");
log.info("After running gc on map tiles. Total Memory : " + (Runtime.getRuntime().totalMemory() >> 20) + " Mb. Used memory : " //$NON-NLS-1$ //$NON-NLS-2$
+ ((Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) >> 20) + " Mb"); //$NON-NLS-1$
}
}
if (!downloader.isFileCurrentlyDownloaded(en)) {
@ -362,7 +362,7 @@ public class MapPanel extends JPanel implements IMapDownloaderCallback {
// log.debug("Loaded file : " + file + " " + (System.currentTimeMillis() - time) + " ms");
// }
} catch (IIOException e) {
log.error("Eror reading png " + x + " " + y + " zoom : " + zoom, e);
log.error("Eror reading png " + x + " " + y + " zoom : " + zoom, e); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
}
if(loadIfNeeded && cache.get(file) == null){
@ -393,7 +393,7 @@ public class MapPanel extends JPanel implements IMapDownloaderCallback {
images[i][j] = getImageFor(request.xTile, request.yTile, zoom, false);
repaint();
} catch (IOException e) {
log.error("Eror reading png " + request.xTile + " " + request.yTile + " zoom : " + zoom, e);
log.error("Eror reading png " + request.xTile + " " + request.yTile + " zoom : " + zoom, e); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
}
@ -440,7 +440,7 @@ public class MapPanel extends JPanel implements IMapDownloaderCallback {
}
repaint();
} catch (IOException e) {
log.error("Eror reading png preparing images");
log.error("Eror reading png preparing images"); //$NON-NLS-1$
}
}

View file

@ -42,7 +42,7 @@ public class NewTileSourceDialog extends JDialog {
public NewTileSourceDialog(Component parent){
super(JOptionPane.getFrameForComponent(parent), true);
setTitle("Create new tile source");
setTitle(Messages.getString("NewTileSourceDialog.CREATE.NEW.TILE")); //$NON-NLS-1$
initDialog();
}
@ -67,9 +67,9 @@ public class NewTileSourceDialog extends JDialog {
FlowLayout l = new FlowLayout(FlowLayout.RIGHT);
JPanel buttonsPane = new JPanel(l);
okButton = new JButton("OK");
okButton = new JButton("OK"); //$NON-NLS-1$
buttonsPane.add(okButton);
cancelButton = new JButton("Cancel");
cancelButton = new JButton(Messages.getString("NewTileSourceDialog.CANCEL")); //$NON-NLS-1$
buttonsPane.add(cancelButton);
buttonsPane.setMaximumSize(new Dimension(Short.MAX_VALUE, (int) l.preferredLayoutSize(buttonsPane).getHeight()));
@ -83,11 +83,11 @@ public class NewTileSourceDialog extends JDialog {
JPanel panel = new JPanel();
GridBagLayout l = new GridBagLayout();
panel.setLayout(l);
panel.setBorder(BorderFactory.createTitledBorder("Input source"));
panel.setBorder(BorderFactory.createTitledBorder(Messages.getString("NewTileSourceDialog.INPUT.SOURCE"))); //$NON-NLS-1$
root.add(panel);
JLabel label = new JLabel("Name of template : ");
JLabel label = new JLabel(Messages.getString("NewTileSourceDialog.NAME")); //$NON-NLS-1$
panel.add(label);
GridBagConstraints constr = new GridBagConstraints();
constr.anchor = GridBagConstraints.WEST;
@ -97,7 +97,7 @@ public class NewTileSourceDialog extends JDialog {
l.setConstraints(label, constr);
templateName = new JTextField();
templateName.setText("Mapnik example");
templateName.setText(Messages.getString("NewTileSourceDialog.MAPNIK.EXAMPLE")); //$NON-NLS-1$
panel.add(templateName);
constr = new GridBagConstraints();
constr.fill = GridBagConstraints.HORIZONTAL;
@ -106,7 +106,7 @@ public class NewTileSourceDialog extends JDialog {
constr.gridy = 0;
l.setConstraints(templateName, constr);
label = new JLabel("Url template with placeholders {$x}, {$y}, {$z} : ");
label = new JLabel(Messages.getString("NewTileSourceDialog.URL.TEMPLATE")); //$NON-NLS-1$
panel.add(label);
constr = new GridBagConstraints();
constr.ipadx = 5;
@ -118,7 +118,7 @@ public class NewTileSourceDialog extends JDialog {
templateUrl = new JTextField();
// Give hint about wms
templateUrl.setText("http://tile.openstreetmap.org/{$z}/{$x}/{$y}.png");
templateUrl.setText("http://tile.openstreetmap.org/{$z}/{$x}/{$y}.png"); //$NON-NLS-1$
panel.add(templateUrl);
constr = new GridBagConstraints();
constr.weightx = 1;
@ -129,7 +129,7 @@ public class NewTileSourceDialog extends JDialog {
l.setConstraints(templateUrl, constr);
label = new JLabel("To add wms service you can use retiling pattern : ");
label = new JLabel(Messages.getString("NewTileSourceDialog.ADD.WMS.SERVICE")); //$NON-NLS-1$
panel.add(label);
constr = new GridBagConstraints();
constr.ipadx = 5;
@ -141,7 +141,7 @@ public class NewTileSourceDialog extends JDialog {
label = new JLabel();
// Give hint about wms
label.setText("http://whoots.mapwarper.net/tms/{$z}/{$x}/{$y}/{layer}/http://path.to.wms.server");
label.setText("http://whoots.mapwarper.net/tms/{$z}/{$x}/{$y}/{layer}/http://path.to.wms.server"); //$NON-NLS-1$
panel.add(label);
constr = new GridBagConstraints();
constr.weightx = 1;
@ -176,16 +176,16 @@ public class NewTileSourceDialog extends JDialog {
public boolean okPressed(){
if(Algoritms.isEmpty(templateName.getText())){
JOptionPane.showMessageDialog(this, "Please specify template name" , "Error creating new tile source", JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(this, Messages.getString("NewTileSourceDialog.SPECIFY.TEMPLATE.NAME") , Messages.getString("NewTileSourceDialog.ERROR.CREATING.NEW.TILE.SRC"), JOptionPane.ERROR_MESSAGE); //$NON-NLS-1$ //$NON-NLS-2$
return false;
}
if(Algoritms.isEmpty(templateUrl.getText())){
JOptionPane.showMessageDialog(this, "Please specify template url" , "Error creating new tile source", JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(this, Messages.getString("NewTileSourceDialog.SPECIFY.TEMPLATE.URL") , Messages.getString("NewTileSourceDialog.ERROR.CREATING.NEW.TILE.SRC"), JOptionPane.ERROR_MESSAGE); //$NON-NLS-1$ //$NON-NLS-2$
return false;
}
String url = templateUrl.getText();
if(url.indexOf("{$x}") == -1 || url.indexOf("{$y}") == -1 || url.indexOf("{$z}") == -1){
JOptionPane.showMessageDialog(this, "Please specify all placeholders {$x}, {$y}, {$z} in url" , "Error creating new tile source", JOptionPane.ERROR_MESSAGE);
if(url.indexOf("{$x}") == -1 || url.indexOf("{$y}") == -1 || url.indexOf("{$z}") == -1){ //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
JOptionPane.showMessageDialog(this, Messages.getString("NewTileSourceDialog.SPECIFY.ALL.PLACEHLDRS") , Messages.getString("NewTileSourceDialog.ERROR.CREATING.NEW.TILE.SRC"), JOptionPane.ERROR_MESSAGE); //$NON-NLS-1$ //$NON-NLS-2$
return false;
}
File tilesDirectory = DataExtractionSettings.getSettings().getTilesDirectory();
@ -193,13 +193,13 @@ public class NewTileSourceDialog extends JDialog {
File dir = new File(tilesDirectory, templateName.getText());
if(dir.mkdirs()){
try {
FileOutputStream ous = new FileOutputStream(new File(dir, "url"));
ous.write(url.getBytes("UTF-8"));
FileOutputStream ous = new FileOutputStream(new File(dir, "url")); //$NON-NLS-1$
ous.write(url.getBytes("UTF-8")); //$NON-NLS-1$
ous.close();
} catch (UnsupportedEncodingException e) {
log.error("Error creating new tile source " + url, e);
log.error(Messages.getString("NewTileSourceDialog.ERROR.CREATING.NEW.TILE.SRC") +" " + url, e); //$NON-NLS-1$
} catch (IOException e) {
log.error("Error creating new tile source " + url, e);
log.error(Messages.getString("NewTileSourceDialog.ERROR.CREATING.NEW.TILE.SRC") +" " + url, e); //$NON-NLS-1$
}
}
}

View file

@ -36,7 +36,7 @@ public class OsmExtractionPreferencesDialog extends JDialog {
public OsmExtractionPreferencesDialog(Component parent){
super(JOptionPane.getFrameForComponent(parent), true);
setTitle("Preferences");
setTitle(Messages.getString("OsmExtractionPreferencesDialog.PREFERENCES")); //$NON-NLS-1$
initDialog();
}
@ -62,9 +62,9 @@ public class OsmExtractionPreferencesDialog extends JDialog {
FlowLayout l = new FlowLayout(FlowLayout.RIGHT);
JPanel buttonsPane = new JPanel(l);
okButton = new JButton("OK");
okButton = new JButton(Messages.getString("OsmExtractionPreferencesDialog.OK")); //$NON-NLS-1$
buttonsPane.add(okButton);
cancelButton = new JButton("Cancel");
cancelButton = new JButton(Messages.getString("OsmExtractionPreferencesDialog.CANCEL")); //$NON-NLS-1$
buttonsPane.add(cancelButton);
buttonsPane.setMaximumSize(new Dimension(Short.MAX_VALUE, (int) l.preferredLayoutSize(buttonsPane).getHeight()));
@ -76,21 +76,21 @@ public class OsmExtractionPreferencesDialog extends JDialog {
private void createGeneralSection(JPanel root) {
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3, 1, 5, 5));
panel.setBorder(BorderFactory.createTitledBorder("General"));
panel.setBorder(BorderFactory.createTitledBorder(Messages.getString("OsmExtractionPreferencesDialog.GENERAL"))); //$NON-NLS-1$
root.add(panel);
useInternet = new JCheckBox();
useInternet.setText("Use internet to download tiles");
useInternet.setText(Messages.getString("OsmExtractionPreferencesDialog.INTERNET.TO.DOWNLOAD.FILES")); //$NON-NLS-1$
useInternet.setSelected(DataExtractionSettings.getSettings().useInternetToLoadImages());
panel.add(useInternet);
supressWarning = new JCheckBox();
supressWarning.setText("Supress warnings for duplicated id in osm file");
supressWarning.setText(Messages.getString("OsmExtractionPreferencesDialog.DUPLICATED.ID")); //$NON-NLS-1$
supressWarning.setSelected(DataExtractionSettings.getSettings().isSupressWarningsForDuplicatedId());
panel.add(supressWarning);
loadWholeOsmInfo = new JCheckBox();
loadWholeOsmInfo.setText("Load whole osm info (to save valid osm file - use in JOSM...)");
loadWholeOsmInfo.setText(Messages.getString("OsmExtractionPreferencesDialog.LOAD.WHOLE.OSM")); //$NON-NLS-1$
loadWholeOsmInfo.setSelected(DataExtractionSettings.getSettings().getLoadEntityInfo());
panel.add(loadWholeOsmInfo);
panel.setMaximumSize(new Dimension(Short.MAX_VALUE, panel.getPreferredSize().height));
@ -101,10 +101,10 @@ public class OsmExtractionPreferencesDialog extends JDialog {
JPanel panel = new JPanel();
GridBagLayout l = new GridBagLayout();
panel.setLayout(l);
panel.setBorder(BorderFactory.createTitledBorder("Normalizing streets"));
panel.setBorder(BorderFactory.createTitledBorder(Messages.getString("OsmExtractionPreferencesDialog.NORMALIZE.STREETS"))); //$NON-NLS-1$
root.add(panel);
JLabel label = new JLabel("Street name suffixes (av., avenue)");
JLabel label = new JLabel(Messages.getString("OsmExtractionPreferencesDialog.NAME.SUFFIXES")); //$NON-NLS-1$
panel.add(label);
GridBagConstraints constr = new GridBagConstraints();
constr.anchor = GridBagConstraints.WEST;
@ -123,7 +123,7 @@ public class OsmExtractionPreferencesDialog extends JDialog {
constr.gridy = 0;
l.setConstraints(streetSuffixes, constr);
label = new JLabel("Street name default suffixes (str., street, rue)");
label = new JLabel(Messages.getString("OsmExtractionPreferencesDialog.DEFAULT.SUFFIXES")); //$NON-NLS-1$
panel.add(label);
constr = new GridBagConstraints();
constr.ipadx = 5;

View file

@ -109,7 +109,7 @@ public class ProgressDialog extends JDialog implements IProgress {
pane.add(label, BorderLayout.CENTER);
add(pane);
label.setText("Please waiting...");
label.setText(Messages.getString("OsmExtractionUI.PLEASE.WAIT")); //$NON-NLS-1$
progressBar.setIndeterminate(true);
setSize(550, 100);
double x = getParent().getBounds().getCenterX();
@ -141,8 +141,8 @@ public class ProgressDialog extends JDialog implements IProgress {
private void updateMessage() {
if(!progressBar.isIndeterminate()){
String format = String.format("\t %.1f %%", progressBar.getValue() * 100f / ((float) progressBar.getMaximum()));
label.setText(taskName + format + (genProgress == null ? "" : (" " + genProgress)));
String format = String.format("\t %.1f %%", progressBar.getValue() * 100f / ((float) progressBar.getMaximum())); //$NON-NLS-1$
label.setText(taskName + format + (genProgress == null ? "" : (" " + genProgress))); //$NON-NLS-1$ //$NON-NLS-2$
}
}
@ -177,19 +177,19 @@ public class ProgressDialog extends JDialog implements IProgress {
@Override
public void startTask(String taskName, int work) {
if (log.isDebugEnabled()) {
log.debug("Memory before task exec: " + Runtime.getRuntime().totalMemory() + " free : " + Runtime.getRuntime().freeMemory());
log.debug("Memory before task exec: " + Runtime.getRuntime().totalMemory() + " free : " + Runtime.getRuntime().freeMemory()); //$NON-NLS-1$ //$NON-NLS-2$
if (previousTaskStarted == 0) {
log.debug(taskName + " started");
log.debug(taskName + " started"); //$NON-NLS-1$
} else {
log.debug(taskName + " started after " + (System.currentTimeMillis() - previousTaskStarted) + " ms");
log.debug(taskName + " started after " + (System.currentTimeMillis() - previousTaskStarted) + " ms"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
previousTaskStarted = System.currentTimeMillis();
if(taskName == null){
taskName = "";
taskName = ""; //$NON-NLS-1$
}
label.setText(taskName + (genProgress == null ? "" : (" "+genProgress)));
label.setText(taskName + (genProgress == null ? "" : (" "+genProgress))); //$NON-NLS-1$ //$NON-NLS-2$
this.taskName = taskName;
startWork(work);
}

View file

@ -56,7 +56,7 @@ public class TileBundleDownloadDialog extends JDialog {
selectionArea = panel.getSelectionArea();
zoom = panel.getZoom();
tilesLocation = panel.getTilesLocation();
setTitle("Download bundle tiles");
setTitle(Messages.getString("TileBundleDownloadDialog.DOWNLOAD.BUNDLE.TILES")); //$NON-NLS-1$
initDialog();
}
@ -89,14 +89,14 @@ public class TileBundleDownloadDialog extends JDialog {
JPanel zoomControls = new JPanel();
zoomControls.setLayout(new BoxLayout(zoomControls, BoxLayout.X_AXIS));
JLabel lab = new JLabel("Start zoom level : ");
JLabel lab = new JLabel(Messages.getString("TileBundleDownloadDialog.START.ZOOM.LEVEL")); //$NON-NLS-1$
zoomControls.add(lab);
startSpinner = new JSpinner(getSpinnerModel(map.getMinimumZoomSupported(), zoom));
zoomControls.add(startSpinner);
startSpinner.setMaximumSize(new Dimension(15, startSpinner.getMaximumSize().height));
zoomControls.add(Box.createHorizontalStrut(15));
lab = new JLabel("End zoom level : ");
lab = new JLabel(Messages.getString("TileBundleDownloadDialog.END.ZOOM.LEVEL")); //$NON-NLS-1$
zoomControls.add(lab);
endSpinner = new JSpinner(getSpinnerModel(zoom, map.getMaximumZoomSupported()));
zoomControls.add(endSpinner);
@ -108,13 +108,13 @@ public class TileBundleDownloadDialog extends JDialog {
JPanel buttonControls = new JPanel();
buttonControls.setLayout(new BoxLayout(buttonControls, BoxLayout.X_AXIS));
buttonControls.add(Box.createHorizontalGlue());
specifyFolder = new JButton("Specify different folder");
specifyFolder = new JButton(Messages.getString("TileBundleDownloadDialog.SPECIFY.FOLDER")); //$NON-NLS-1$
buttonControls.add(specifyFolder);
buttonControls.add(Box.createHorizontalStrut(3));
downloadButton = new JButton("Download tiles");
downloadButton = new JButton(Messages.getString("TileBundleDownloadDialog.DOWNLOAD.TILES")); //$NON-NLS-1$
buttonControls.add(downloadButton);
buttonControls.add(Box.createHorizontalStrut(3));
cancelButton = new JButton("Cancel");
cancelButton = new JButton(Messages.getString("TileBundleDownloadDialog.CANCEL")); //$NON-NLS-1$
buttonControls.add(cancelButton);
pane.add(buttonControls, BorderLayout.SOUTH);
@ -156,7 +156,7 @@ public class TileBundleDownloadDialog extends JDialog {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fc = new JFileChooser();
fc.setDialogTitle("Choose working directory");
fc.setDialogTitle(Messages.getString("TileBundleDownloadDialog.CHOOSE.DIRECTORY")); //$NON-NLS-1$
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
if(tilesLocation != null){
fc.setCurrentDirectory(tilesLocation);
@ -173,7 +173,7 @@ public class TileBundleDownloadDialog extends JDialog {
public void downloadTiles(){
setVisible(false);
final ProgressDialog progressDialog = new ProgressDialog(this, "Downloading tiles");
final ProgressDialog progressDialog = new ProgressDialog(this, Messages.getString("TileBundleDownloadDialog.DOWNLOADING.TILES")); //$NON-NLS-1$
int numberTiles = 0;
final int startZoom = (Integer) startSpinner.getValue();
final int endZoom = (Integer) endSpinner.getValue();
@ -190,7 +190,7 @@ public class TileBundleDownloadDialog extends JDialog {
@Override
public void run() {
progressDialog.startTask("Loading...", number);
progressDialog.startTask(Messages.getString("TileBundleDownloadDialog.LOADING"), number); //$NON-NLS-1$
for (int zoom = startZoom; zoom <= endZoom; zoom++) {
int x1 = (int) MapUtils.getTileNumberX(zoom, selectionArea.getLon1());
int x2 = (int) MapUtils.getTileNumberX(zoom, selectionArea.getLon2());
@ -249,7 +249,7 @@ public class TileBundleDownloadDialog extends JDialog {
}
public String getFileForImage (int x, int y, int zoom, String ext){
return map.getName() +"/"+zoom+"/"+(x) +"/"+y+ext+".tile";
return map.getName() +"/"+zoom+"/"+(x) +"/"+y+ext+".tile"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
}
@ -263,7 +263,7 @@ public class TileBundleDownloadDialog extends JDialog {
numberTiles += (x2 - x1 + 1) * (y2 - y1 + 1);
}
String text = MessageFormat.format("Request to download {0} tiles from ''{1}'' (approximately {2} Mb)",
String text = MessageFormat.format(Messages.getString("TileBundleDownloadDialog.REQUEST.DOWNLOAD"), //$NON-NLS-1$
numberTiles, map.getName(), (double)numberTiles*12/1000);
label.setText(text);
}

View file

@ -1,3 +1,43 @@
IndexCreator.INDEX_CITIES=Indexing cities...
IndexCreator.INDEX_LO_LEVEL_WAYS=Indexing low level ways...
IndexCreator.LOADING_FILE=Loading file
IndexCreator.PACK_RTREE_MAP=Packing rtree map data...
IndexCreator.PACK_RTREE_TRANSP=Packing rtree transport data...
IndexCreator.PREINDEX_ADRESS_MAP=Preindexing address and map ways...
IndexCreator.PROCESS_OSM_NODES=Processing osm nodes...
IndexCreator.PROCESS_OSM_REL=Processing osm relations...
IndexCreator.PROCESS_OSM_WAYS=Processing osm ways...
IndexCreator.REGISTER_PCODES=Registering postcodes...
IndexCreator.SERIALIZING_ADRESS=Serializing city addresses...
IndexCreator.WRITE_ADDRESS_INDEX=Writing address index to binary file...
IndexCreator.WRITE_MAP_INDEX=Writing map index to binary file...
IndexCreator.WRITE_TRANSP_INDEX=Writing transport index to binary file...
MapInformationLayer.PRELOAD.AREA=Preload area
MapPanel.MAP.VIEW=Map view
MapPanel.NEW.TILE.SRC=Create new tile source
MapPanel.SOURCE.OF.TILES=Source of tiles
MapPanel.USER.DEFINED=User defined
NewTileSourceDialog.ADD.WMS.SERVICE=To add wms service you can use retiling pattern :
NewTileSourceDialog.CANCEL=Cancel
NewTileSourceDialog.CREATE.NEW.TILE=Create new tile source
NewTileSourceDialog.ERROR.CREATING.NEW.TILE.SRC=Error creating new tile source
NewTileSourceDialog.INPUT.SOURCE=Input source
NewTileSourceDialog.MAPNIK.EXAMPLE=Mapnik example
NewTileSourceDialog.NAME=Name of template :
NewTileSourceDialog.SPECIFY.ALL.PLACEHLDRS=Please specify all placeholders {$x}, {$y}, {$z} in url
NewTileSourceDialog.SPECIFY.TEMPLATE.NAME=Please specify template name
NewTileSourceDialog.SPECIFY.TEMPLATE.URL=Please specify template url
NewTileSourceDialog.URL.TEMPLATE=Url template with placeholders {$x}, {$y}, {$z} :
OsmExtractionPreferencesDialog.DEFAULT.SUFFIXES=Street name default suffixes (str., street, rue)
OsmExtractionPreferencesDialog.DUPLICATED.ID=Supress warnings for duplicated id in osm file
OsmExtractionPreferencesDialog.GENERAL=General
OsmExtractionPreferencesDialog.INTERNET.TO.DOWNLOAD.FILES=Use internet to download tiles
OsmExtractionPreferencesDialog.LOAD.WHOLE.OSM=Load whole osm info (to save valid osm file - use in JOSM...)
OsmExtractionPreferencesDialog.NAME.SUFFIXES=Street name suffixes (av., avenue)
OsmExtractionPreferencesDialog.NORMALIZE.STREETS=Normalizing streets
OsmExtractionPreferencesDialog.OK=OK
OsmExtractionPreferencesDialog.PREFERENCES=Preferences
OsmExtractionPreferencesDialog.CANCEL=Cancel
OsmExtractionUI.ADDRESS=address
OsmExtractionUI.BUILD_ADDRESS=Build Address index
OsmExtractionUI.BUILD_MAP=Build map index
@ -26,6 +66,7 @@ OsmExtractionUI.OPEN_LOG_FILE_MANUALLY=Open log file manually
OsmExtractionUI.OSM_FILES=Osm Files (*.bz2, *.osm, *.pbf)
OsmExtractionUI.OSMAND_MAP_CREATOR=OsmAnd Map Creator
OsmExtractionUI.OSMAND_MAP_CREATOR_FILE=OsmAnd Map Creator -
OsmExtractionUI.PLEASE.WAIT=Please waiting...
OsmExtractionUI.POI=POI
OsmExtractionUI.REGION=Region
OsmExtractionUI.SAVING_OSM_FILE=Saving osm file
@ -38,3 +79,13 @@ OsmExtractionUI.UNABLE_OPEN_FILE=Failed to open log file
OsmExtractionUI.WORKING_DIR=Working directory :
OsmExtractionUI.WORKING_DIR_UNSPECIFIED=<working directory unspecified>
OsmExtractionUI.WORKING_DIRECTORY=Working directory :
TileBundleDownloadDialog.CANCEL=Cancel
TileBundleDownloadDialog.DOWNLOAD.BUNDLE.TILES=Download bundle tiles
TileBundleDownloadDialog.DOWNLOAD.TILES=Download tiles
TileBundleDownloadDialog.DOWNLOADING.TILES=Downloading tiles
TileBundleDownloadDialog.END.ZOOM.LEVEL=End zoom level :
TileBundleDownloadDialog.CHOOSE.DIRECTORY=Choose working directory
TileBundleDownloadDialog.LOADING=Loading...
TileBundleDownloadDialog.REQUEST.DOWNLOAD=Request to download {0} tiles from ''{1}'' (approximately {2} Mb)
TileBundleDownloadDialog.SPECIFY.FOLDER=Specify different folder
TileBundleDownloadDialog.START.ZOOM.LEVEL=Start zoom level :

View file

@ -1,3 +1,43 @@
IndexCreator.INDEX_CITIES=Indexovanie miest...
IndexCreator.INDEX_LO_LEVEL_WAYS=Indexovanie n\u00edzko\u00farov\u0148ov\u00fdch ciest...
IndexCreator.LOADING_FILE=Na\u010d\u00edtava sa s\u00fabor
IndexCreator.PACK_RTREE_MAP=Balenie rtree mapov\u00fdch \u00fadajov...
IndexCreator.PACK_RTREE_TRANSP=Balenie rtree dopravn\u00fdch \u00fadajov...
IndexCreator.PREINDEX_ADRESS_MAP=Preindexovanie adries a ciest mapy...
IndexCreator.PROCESS_OSM_NODES=Spracov\u00e1vanie OSM uzlov...
IndexCreator.PROCESS_OSM_REL=Spracov\u00e1vanie OSM rel\u00e1ci\u00ed...
IndexCreator.PROCESS_OSM_WAYS=Spracov\u00e1vanie OSM ciest...
IndexCreator.REGISTER_PCODES=Registrovanie PS\u010c...
IndexCreator.SERIALIZING_ADRESS=S\u00e9riovanie adries miest...
IndexCreator.WRITE_ADDRESS_INDEX=Zapisovanie indexu adries do bin\u00e1rneho s\u00faboru...
IndexCreator.WRITE_MAP_INDEX=Zapisovanie indexu mapy do bin\u00e1rneho s\u00faboru...
IndexCreator.WRITE_TRANSP_INDEX=Zapisovanie indexu dopravy do bin\u00e1rneho s\u00faboru...
MapInformationLayer.PRELOAD.AREA=Stiahnu\u0165 oblas\u0165
MapPanel.MAP.VIEW=Zobrazenie mapy
MapPanel.NEW.TILE.SRC=Vytvori\u0165 nov\u00fd zdroj dla\u017ed\u00edc
MapPanel.SOURCE.OF.TILES=Zdroj dla\u017ed\u00edc
MapPanel.USER.DEFINED=U\u017e\u00edvate\u013eom definovan\u00fd
NewTileSourceDialog.ADD.WMS.SERVICE=Na pridanie wms slu\u017eby m\u00f4\u017eete pou\u017ei\u0165 sie\u0165ov\u00fd vzor:
NewTileSourceDialog.CANCEL=Zru\u0161i\u0165
NewTileSourceDialog.CREATE.NEW.TILE=Vytvorenie nov\u00e9ho zdroja dla\u017ed\u00edc
NewTileSourceDialog.ERROR.CREATING.NEW.TILE.SRC=Chyba po\u010das vytv\u00e1rania nov\u00e9ho zdroja dla\u017ed\u00edc
NewTileSourceDialog.INPUT.SOURCE=Vstupn\u00fd zdroj
NewTileSourceDialog.MAPNIK.EXAMPLE=Napr\u00edklad Mapnik
NewTileSourceDialog.NAME=N\u00e1zov \u0161abl\u00f3ny:
NewTileSourceDialog.SPECIFY.ALL.PLACEHLDRS=Pros\u00edm, ur\u010dite v\u0161etky premenn\u00e9 {$x}, {$y}, {$z} v url
NewTileSourceDialog.SPECIFY.TEMPLATE.NAME=Pros\u00edm, zadajte n\u00e1zov \u0161abl\u00f3ny
NewTileSourceDialog.SPECIFY.TEMPLATE.URL=Pros\u00edm, zadajte url vzoru
NewTileSourceDialog.URL.TEMPLATE=Vzor url s premenn\u00fdmi {$x}, {$y}, {$z} :
OsmExtractionPreferencesDialog.DEFAULT.SUFFIXES=\u0160tandardn\u00e9 pr\u00edpony n\u00e1zvov ul\u00edc (str., street, rue, ulica)
OsmExtractionPreferencesDialog.DUPLICATED.ID=Zak\u00e1za\u0165 varovania na duplik\u00e1tne id v OSM s\u00fabore
OsmExtractionPreferencesDialog.GENERAL=V\u0161eobecn\u00e9
OsmExtractionPreferencesDialog.INTERNET.TO.DOWNLOAD.FILES=Pou\u017ei\u0165 internet na stiahnutie dla\u017ed\u00edc mapy
OsmExtractionPreferencesDialog.LOAD.WHOLE.OSM=Na\u010d\u00edta\u0165 v\u0161etky OSM inform\u00e1cie (na ulo\u017eenie platn\u00e9ho OSM s\u00faboru - pou\u017eitie v JOSM...)
OsmExtractionPreferencesDialog.NAME.SUFFIXES=Pr\u00edpona n\u00e1zvov ul\u00edc (av., avenue, ulica)
OsmExtractionPreferencesDialog.NORMALIZE.STREETS=Normaliz\u00e1cia ul\u00edc
OsmExtractionPreferencesDialog.OK=OK
OsmExtractionPreferencesDialog.PREFERENCES=Vlastnosti
OsmExtractionPreferencesDialog.CANCEL=Zru\u0161i\u0165
OsmExtractionUI.ADDRESS=adresa
OsmExtractionUI.BUILD_ADDRESS=Vytvori\u0165 index adries
OsmExtractionUI.BUILD_MAP=Vytvori\u0165 index mapy
@ -22,10 +62,11 @@ OsmExtractionUI.MENU_SELECT_OSM_FILE_AREA=Vybra\u0165 OSM s\u00fabor pre ur\u010
OsmExtractionUI.MENU_SETTINGS=Nastavenia...
OsmExtractionUI.MENU_WINDOW=Okno
OsmExtractionUI.NORMALIZE_STREETS=Normaliz\u00e1cia ul\u00edc
OsmExtractionUI.OPEN_LOG_FILE_MANUALLY=Otvori\u0165 s\u00fabor z\u00e1znamu ru\u010dne
OsmExtractionUI.OPEN_LOG_FILE_MANUALLY=otvorte s\u00fabor z\u00e1znamu ru\u010dne
OsmExtractionUI.OSM_FILES=OSM s\u00fabory (*.bz2, *.osm, *.pbf)
OsmExtractionUI.OSMAND_MAP_CREATOR=Tvorca OsmAnd mapy
OsmExtractionUI.OSMAND_MAP_CREATOR_FILE=Tvorca OsmAnd mapy -
OsmExtractionUI.PLEASE.WAIT=Pros\u00edm \u010dakajte...
OsmExtractionUI.POI=POI
OsmExtractionUI.REGION=Oblas\u0165
OsmExtractionUI.SAVING_OSM_FILE=Uklad\u00e1 sa OSM s\u00fabor
@ -38,3 +79,13 @@ OsmExtractionUI.UNABLE_OPEN_FILE=Zlyhalo otv\u00e1ranie z\u00e1znamov\u00e9ho s\
OsmExtractionUI.WORKING_DIR=Pracovn\u00fd adres\u00e1r :
OsmExtractionUI.WORKING_DIR_UNSPECIFIED=<pracovn\u00fd adres\u00e1r nie je ur\u010den\u00fd>
OsmExtractionUI.WORKING_DIRECTORY=Pracovn\u00fd adres\u00e1r :
TileBundleDownloadDialog.CANCEL=Zru\u0161i\u0165
TileBundleDownloadDialog.DOWNLOAD.BUNDLE.TILES=Stiahnutie bal\u00edka dla\u017ed\u00edc
TileBundleDownloadDialog.DOWNLOAD.TILES=Stiahnu\u0165 dla\u017edice
TileBundleDownloadDialog.DOWNLOADING.TILES=S\u0165ahuj\u00fa sa dla\u017edice
TileBundleDownloadDialog.END.ZOOM.LEVEL=Kon\u010den\u00fd zoom:
TileBundleDownloadDialog.CHOOSE.DIRECTORY=Vybra\u0165 pracovn\u00fd adres\u00e1r
TileBundleDownloadDialog.LOADING=Na\u010d\u00edtava sa...
TileBundleDownloadDialog.REQUEST.DOWNLOAD=Po\u017eiadavka na stiahnutie {0} dla\u017ed\u00edc z ''{1}'' (odhadom {2} Mb)
TileBundleDownloadDialog.SPECIFY.FOLDER=Ur\u010di\u0165 in\u00fa zlo\u017eku
TileBundleDownloadDialog.START.ZOOM.LEVEL=Za\u010diato\u010dn\u00fd zoom: