From 7540e2056494675dd69b2a7aafe2ea4e1559a79b Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Tue, 14 Dec 2010 14:47:29 +0000 Subject: [PATCH] fix issue 268 fix issue 265 git-svn-id: https://osmand.googlecode.com/svn/trunk@818 e29c36b1-1cfa-d876-8d93-3434fc2bb7b8 --- DataExtractionOSM/src/messages.properties | 2 + DataExtractionOSM/src/messages_cs.properties | 152 +++++++++--------- DataExtractionOSM/src/messages_fr.properties | 18 +-- DataExtractionOSM/src/messages_hu.properties | 62 +++---- DataExtractionOSM/src/messages_ru.properties | 2 + .../src/net/osmand/data/AmenityType.java | 1 + .../osmand/data/preparation/IndexCreator.java | 20 ++- 7 files changed, 139 insertions(+), 118 deletions(-) diff --git a/DataExtractionOSM/src/messages.properties b/DataExtractionOSM/src/messages.properties index 07c0be36ac..55d34c45e1 100644 --- a/DataExtractionOSM/src/messages.properties +++ b/DataExtractionOSM/src/messages.properties @@ -11,6 +11,8 @@ amenity_type_entertainment = Entertainment amenity_type_finance = Finance +amenity_type_geocache = Geocache + amenity_type_healthcare = Healthcare amenity_type_historic = Historic diff --git a/DataExtractionOSM/src/messages_cs.properties b/DataExtractionOSM/src/messages_cs.properties index 0bfbee2780..618a7441bb 100644 --- a/DataExtractionOSM/src/messages_cs.properties +++ b/DataExtractionOSM/src/messages_cs.properties @@ -1,76 +1,76 @@ - -amenity_type_administrative = Administrativa - -amenity_type_barrier = P\u0159ek\u00e1\u017eky - -amenity_type_education = \u0160kolstv\u00ed - -amenity_type_emergency = Pomoc v nouzi - -amenity_type_entertainment = Z\u00e1bava - -amenity_type_finance = Finance - -amenity_type_healthcare = Zdravotnictv\u00ed - -amenity_type_historic = Historie - -amenity_type_landuse = Vyu\u017eit\u00e9 \u00fazem\u00ed - -amenity_type_leisure = Voln\u00fd \u010das - -amenity_type_manmade = Lidsk\u00e1 d\u00edla - -amenity_type_military = Arm\u00e1da - -amenity_type_natural = P\u0159\u00edroda - -amenity_type_office = Kancel\u00e1\u0159e - -amenity_type_other = Jin\u00e9 - -amenity_type_shop = Obchod - -amenity_type_sport = Sport - -amenity_type_sustenance = Stravov\u00e1n\u00ed - -amenity_type_tourism = Turistika - -amenity_type_transportation = Doprava - -indexing_address = Indexuji adresy - -indexing_map = Indexuji mapu - -indexing_poi = Indexuji POI - -indexing_transport = Indexuji dopravu - -input_output_error = Do\u0161lo k chyb\u011b vstupu/v\u00fdstupu - -km = km - -km_h = km/h - -m = m - -old_map_index_is_not_supported = Zastaral\u00fd form\u00e1t mapov\u00fdch dat ''{0}'' nen\u00ed podporov\u00e1n - -poi_filter_car_aid = Autoservis - -poi_filter_closest_poi = Nejbli\u017e\u0161\u00ed POI - -poi_filter_custom_filter = Vlastn\u00ed filtr - -poi_filter_food_shop = Potraviny - -poi_filter_for_tourists = Pro turisty - -poi_filter_fuel = \u010cerpac\u00ed stanice - -poi_filter_namefinder = Online NameFinder - -reading_cached_tiles = Na\u010d\u00edt\u00e1m ulo\u017een\u00e9 dla\u017edice... - -version_index_is_not_supported = Verze indexu ''{0}'' nen\u00ed podporov\u00e1na + +amenity_type_administrative = Administrativa + +amenity_type_barrier = P\u0159ek\u00E1\u017Eky + +amenity_type_education = \u0160kolstv\u00ED + +amenity_type_emergency = Pomoc v nouzi + +amenity_type_entertainment = Z\u00E1bava + +amenity_type_finance = Finance + +amenity_type_healthcare = Zdravotnictv\u00ED + +amenity_type_historic = Historie + +amenity_type_landuse = Vyu\u017Eit\u00E9 \u00FAzem\u00ED + +amenity_type_leisure = Voln\u00FD \u010Das + +amenity_type_manmade = Lidsk\u00E1 d\u00EDla + +amenity_type_military = Arm\u00E1da + +amenity_type_natural = P\u0159\u00EDroda + +amenity_type_office = Kancel\u00E1\u0159e + +amenity_type_other = Jin\u00E9 + +amenity_type_shop = Obchod + +amenity_type_sport = Sport + +amenity_type_sustenance = Stravov\u00E1n\u00ED + +amenity_type_tourism = Turistika + +amenity_type_transportation = Doprava + +indexing_address = Indexuji adresy + +indexing_map = Indexuji mapu + +indexing_poi = Indexuji POI + +indexing_transport = Indexuji dopravu + +input_output_error = Do\u0161lo k chyb\u011B vstupu/v\u00FDstupu + +km = km + +km_h = km/h + +m = m + +old_map_index_is_not_supported = Zastaral\u00FD form\u00E1t mapov\u00FDch dat ''{0}'' nen\u00ED podporov\u00E1n + +poi_filter_car_aid = Autoservis + +poi_filter_closest_poi = Nejbli\u017E\u0161\u00ED POI + +poi_filter_custom_filter = Vlastn\u00ED filtr + +poi_filter_food_shop = Potraviny + +poi_filter_for_tourists = Pro turisty + +poi_filter_fuel = \u010Cerpac\u00ED stanice + +poi_filter_namefinder = Online NameFinder + +reading_cached_tiles = Na\u010D\u00EDt\u00E1m ulo\u017Een\u00E9 dla\u017Edice... + +version_index_is_not_supported = Verze indexu ''{0}'' nen\u00ED podporov\u00E1na diff --git a/DataExtractionOSM/src/messages_fr.properties b/DataExtractionOSM/src/messages_fr.properties index ebb7e1b026..6189ba40c3 100644 --- a/DataExtractionOSM/src/messages_fr.properties +++ b/DataExtractionOSM/src/messages_fr.properties @@ -1,9 +1,9 @@ amenity_type_administrative = Administrative -amenity_type_barrier = Barri\u00e8re +amenity_type_barrier = Barri\u00E8re -amenity_type_education = \u00c9ducation +amenity_type_education = \u00C9ducation amenity_type_emergency = Urgence @@ -11,7 +11,7 @@ amenity_type_entertainment = Divertissement amenity_type_finance = Finance -amenity_type_healthcare = Sant\u00e9 +amenity_type_healthcare = Sant\u00E9 amenity_type_historic = Historique @@ -47,7 +47,7 @@ indexing_poi = Indexation des PIs indexing_transport = Indexation des Transport -input_output_error = Erreur d'entr\u00e9e/sortie +input_output_error = Erreur d'entr\u00E9e/sortie km = km @@ -55,15 +55,15 @@ km_h = km/h m = m -old_map_index_is_not_supported = Le format d\u00e9conseill\u00e9 de la carte ''{0}'' n'est pas support\u00e9 +old_map_index_is_not_supported = Le format d\u00E9conseill\u00E9 de la carte ''{0}'' n'est pas support\u00E9 poi_filter_car_aid = Aide voiture -poi_filter_closest_poi = PI le plus pr\u00e8s +poi_filter_closest_poi = PI le plus pr\u00E8s -poi_filter_custom_filter = Filtre Personnalis\u00e9 +poi_filter_custom_filter = Filtre Personnalis\u00E9 -poi_filter_food_shop = \u00c9picerie +poi_filter_food_shop = \u00C9picerie poi_filter_for_tourists = Pour touristes @@ -73,4 +73,4 @@ poi_filter_namefinder = Recherche PI en-ligne reading_cached_tiles = Lecture carreaux en cache... -version_index_is_not_supported = La version ''{0}'' de l'index n'est pas support\u00e9 +version_index_is_not_supported = La version ''{0}'' de l'index n'est pas support\u00E9 diff --git a/DataExtractionOSM/src/messages_hu.properties b/DataExtractionOSM/src/messages_hu.properties index 2fe1bae2ab..405d83cc57 100644 --- a/DataExtractionOSM/src/messages_hu.properties +++ b/DataExtractionOSM/src/messages_hu.properties @@ -1,20 +1,21 @@ -amenity_type_administrative = Adminisztr\u00e1ci\u00f3 -amenity_type_barrier = Hat\u00e1r +amenity_type_administrative = Adminisztr\u00E1ci\u00F3 -amenity_type_education = Oktat\u00e1s +amenity_type_barrier = Hat\u00E1r -amenity_type_emergency = V\u00e9szhelyzet +amenity_type_education = Oktat\u00E1s -amenity_type_entertainment = Sz\u00f3rakoztat\u00e1s +amenity_type_emergency = V\u00E9szhelyzet -amenity_type_finance = P\u00e9nz\u00fcgy +amenity_type_entertainment = Sz\u00F3rakoztat\u00E1s -amenity_type_healthcare = Eg\u00e9szs\u00e9g\u00fcgy +amenity_type_finance = P\u00E9nz\u00FCgy -amenity_type_historic = T\u00f6rt\u00e9nelem +amenity_type_healthcare = Eg\u00E9szs\u00E9g\u00FCgy -amenity_type_landuse = Ter\u00fclet +amenity_type_historic = T\u00F6rt\u00E9nelem + +amenity_type_landuse = Ter\u00FClet amenity_type_leisure = Szabadid\u0151 @@ -22,55 +23,54 @@ amenity_type_manmade = Ember alkotta amenity_type_military = Katonai -amenity_type_natural = Term\u00e9szet +amenity_type_natural = Term\u00E9szet amenity_type_office = Iroda -amenity_type_other = Egy\u00e9b +amenity_type_other = Egy\u00E9b -amenity_type_shop = \u00dczlet +amenity_type_shop = \u00DCzlet amenity_type_sport = Sport -amenity_type_sustenance = Ell\u00e1t\u00e1s +amenity_type_sustenance = Ell\u00E1t\u00E1s amenity_type_tourism = Turizmus -amenity_type_transportation = K\u00f6zleked\u00e9si eszk\u00f6z +amenity_type_transportation = K\u00F6zleked\u00E9si eszk\u00F6z -indexing_address = C\u00edmek indexel\u00e9se +indexing_address = C\u00EDmek indexel\u00E9se -indexing_map = T\u00e9rk\u00e9p indexel\u00e9se +indexing_map = T\u00E9rk\u00E9p indexel\u00E9se -indexing_poi = POI indexel\u00e9se +indexing_poi = POI indexel\u00E9se -indexing_transport = K\u00f6zleked\u00e9si eszk\u00f6z indexel\u00e9se +indexing_transport = K\u00F6zleked\u00E9si eszk\u00F6z indexel\u00E9se -input_output_error = Be-kimeneti hiba t\u00f6rt\u00e9nt +input_output_error = Be-kimeneti hiba t\u00F6rt\u00E9nt km = km -km_h = km/\u00f3 +km_h = km/\u00F3 m = m -old_map_index_is_not_supported = Az elavult t\u00e9rk\u00e9p form\u00e1tum ''{0}'' nem t\u00e1mogatott +old_map_index_is_not_supported = Az elavult t\u00E9rk\u00E9p form\u00E1tum ''{0}'' nem t\u00E1mogatott -poi_filter_car_aid = Aut\u00f3 seg\u00edts\u00e9g +poi_filter_car_aid = Aut\u00F3 seg\u00EDts\u00E9g -poi_filter_closest_poi = K\u00f6zeli POI +poi_filter_closest_poi = K\u00F6zeli POI -poi_filter_custom_filter = Egy\u00e9ni sz\u0171r\u0151 +poi_filter_custom_filter = Egy\u00E9ni sz\u0171r\u0151 -poi_filter_food_shop = \u00c9lelmiszer \u00fczlet +poi_filter_food_shop = \u00C9lelmiszer \u00FCzlet -poi_filter_for_tourists = Turist\u00e1knak +poi_filter_for_tourists = Turist\u00E1knak -poi_filter_fuel = \u00dczemanyag +poi_filter_fuel = \u00DCzemanyag -poi_filter_namefinder = Online n\u00e9vkeres\u0151 +poi_filter_namefinder = Online n\u00E9vkeres\u0151 -reading_cached_tiles = Elmentett t\u00e9rk\u00e9pszeletek olvas\u00e1sa... - -version_index_is_not_supported = ''{0}'' index verzi\u00f3ja nem t\u00e1mogatott +reading_cached_tiles = Elmentett t\u00E9rk\u00E9pszeletek olvas\u00E1sa... +version_index_is_not_supported = ''{0}'' index verzi\u00F3ja nem t\u00E1mogatott diff --git a/DataExtractionOSM/src/messages_ru.properties b/DataExtractionOSM/src/messages_ru.properties index a6db4bfa4d..04206f41c3 100644 --- a/DataExtractionOSM/src/messages_ru.properties +++ b/DataExtractionOSM/src/messages_ru.properties @@ -11,6 +11,8 @@ amenity_type_entertainment = \u0420\u0430\u0437\u0432\u043B\u0435\u0447\u0435\u0 amenity_type_finance = \u0424\u0438\u043D\u0430\u043D\u0441\u044B +amenity_type_geocache = \u0413\u0435\u043E\u0442\u0430\u0439\u043D\u0438\u043A + amenity_type_healthcare = \u0417\u0434\u043E\u0440\u043E\u0432\u044C\u0435 amenity_type_historic = \u0418\u0441\u0442\u043E\u0440\u0438\u0447\u0435\u0441\u043A\u043E\u0435 diff --git a/DataExtractionOSM/src/net/osmand/data/AmenityType.java b/DataExtractionOSM/src/net/osmand/data/AmenityType.java index 9a6611c7de..6c372f4125 100644 --- a/DataExtractionOSM/src/net/osmand/data/AmenityType.java +++ b/DataExtractionOSM/src/net/osmand/data/AmenityType.java @@ -31,6 +31,7 @@ public enum AmenityType { EMERGENCY("amenity_type_emergency", "emergency"), // [TAG] emergency //$NON-NLS-1$ //$NON-NLS-2$ MILITARY("amenity_type_military", "military"), // [TAG] military //$NON-NLS-1$ //$NON-NLS-2$ ADMINISTRATIVE("amenity_type_administrative", "administrative"), // [TAG] administrative //$NON-NLS-1$ //$NON-NLS-2$ + GEOCACHE("amenity_type_geocache", "geocache"), OTHER("amenity_type_other", "amenity"), // grave-yard, police, post-office [+Internet_access] //$NON-NLS-1$ //$NON-NLS-2$ ; diff --git a/DataExtractionOSM/src/net/osmand/data/preparation/IndexCreator.java b/DataExtractionOSM/src/net/osmand/data/preparation/IndexCreator.java index 6413496ccf..ce7e76d1bd 100644 --- a/DataExtractionOSM/src/net/osmand/data/preparation/IndexCreator.java +++ b/DataExtractionOSM/src/net/osmand/data/preparation/IndexCreator.java @@ -44,6 +44,7 @@ import net.osmand.data.City.CityType; import net.osmand.data.index.DataIndexReader; import net.osmand.data.index.DataIndexWriter; import net.osmand.data.index.IndexConstants; +import net.osmand.impl.ConsoleProgressImplementation; import net.osmand.osm.Entity; import net.osmand.osm.LatLon; import net.osmand.osm.MapRenderingTypes; @@ -154,7 +155,7 @@ public class IndexCreator { private RTree transportStopsTree; private RTree[] mapTree = null; - private MapZooms mapZooms = null; + private MapZooms mapZooms = MapZooms.getDefault(); private MapRenderingTypes renderingTypes = MapRenderingTypes.getDefault(); @@ -1267,10 +1268,12 @@ public class IndexCreator { loadEntityData(e, true); Map entities = ((Relation) e).getMemberEntities(); + boolean outerFound = false; for (Entity es : entities.keySet()) { if (es instanceof Way) { boolean inner = "inner".equals(entities.get(es)); //$NON-NLS-1$ if (!inner) { + outerFound = true; for (String t : es.getTagKeySet()) { e.putTag(t, es.getTag(t)); } @@ -1278,6 +1281,10 @@ public class IndexCreator { } } } + if(!outerFound){ + log.warn("Probably map bug: Multipoligon id=" + e.getId() + " contains only inner ways : "); //$NON-NLS-1$ //$NON-NLS-2$ + return; + } int mtType = findMultiPolygonType(e, 0); if (mtType != 0) { @@ -2276,6 +2283,10 @@ public class IndexCreator { return mapFile.getAbsolutePath() + ".prtree"; //$NON-NLS-1$ } + public void generateIndexes(File readFile, IProgress progress, IOsmStorageFilter addFilter) throws IOException, SAXException, SQLException{ + generateIndexes(readFile, progress, addFilter, null, null); + } + public void generateIndexes(File readFile, IProgress progress, IOsmStorageFilter addFilter, MapZooms mapZooms, MapRenderingTypes renderingTypes) throws IOException, SAXException, SQLException { @@ -2283,7 +2294,11 @@ public class IndexCreator { this.renderingTypes = renderingTypes; } - this.mapZooms = mapZooms; + if(mapZooms != null){ + this.mapZooms = mapZooms; + } else { + mapZooms = this.mapZooms; + } multiPolygonsWays = new Map[mapZooms.size()]; for (int i = 0; i < multiPolygonsWays.length; i++) { multiPolygonsWays[i] = new LinkedHashMap>(); @@ -2854,6 +2869,7 @@ public class IndexCreator { // creator.generateIndexes(new File("e:/Information/OSM maps/osm_map/new_zealand.osm.bz2"), new ConsoleProgressImplementation(3), null); // creator.generateIndexes(new File("e:/Information/OSM maps/osm_map/map.osm"), new ConsoleProgressImplementation(15), null); + creator.generateIndexes(new File("e:/Information/OSM maps/osm_map/bayarea.osm"), new ConsoleProgressImplementation(15), null); 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$