Index: src/uk/me/parabola/mkgmap/build/MapBuilder.java =================================================================== --- src/uk/me/parabola/mkgmap/build/MapBuilder.java (revision 4905) +++ src/uk/me/parabola/mkgmap/build/MapBuilder.java (working copy) @@ -113,6 +113,7 @@ import uk.me.parabola.mkgmap.reader.osm.MultiPolygonRelation; import uk.me.parabola.mkgmap.reader.osm.Way; import uk.me.parabola.mkgmap.reader.overview.OverviewMapDataSource; +import uk.me.parabola.mkgmap.reader.polish.PolishMapDataSource; import uk.me.parabola.util.Configurable; import uk.me.parabola.util.EnhancedProperties; import uk.me.parabola.util.Java2DConverter; @@ -556,11 +557,20 @@ MapRoad road = (MapRoad) line; road.resetImgData(); - - City roadCity = calcCity(lbl, cityName, cityRegionName, cityCountryName); - if (roadCity != null) - road.addRoadCity(roadCity); - + // handle special case in polish (mp) format: multiple city names may be separated by @ + boolean splitCityNames = cityName != null && (src instanceof PolishMapDataSource); + if (splitCityNames) { + String[] cityNames = cityName.split("@"); + for (String cn : cityNames) { + City roadCity = calcCity(lbl, cn, cityRegionName, cityCountryName); + if (roadCity != null) + road.addRoadCity(roadCity); + } + } else { + City roadCity = calcCity(lbl, cityName, cityRegionName, cityCountryName); + if (roadCity != null) + road.addRoadCity(roadCity); + } if (zipStr != null) { road.addRoadZip(lbl.createZip(zipStr)); } Index: src/uk/me/parabola/mkgmap/reader/polish/PolishMapDataSource.java =================================================================== --- src/uk/me/parabola/mkgmap/reader/polish/PolishMapDataSource.java (revision 4905) +++ src/uk/me/parabola/mkgmap/reader/polish/PolishMapDataSource.java (working copy) @@ -475,7 +475,7 @@ roadHelper.setRoadId(Integer.parseInt(value)); } else if (name.startsWith("Nod")) { roadHelper.addNode(value); - } else if ("RouteParam".equals(name) || "RouteParams".equals(name)) { + } else if ("RouteParam".equalsIgnoreCase(name) || "RouteParams".equalsIgnoreCase(name)) { roadHelper.setParam(value); } else if ("DirIndicator".equals(name)) { polyline.setDirection(Integer.parseInt(value) > 0);