Add:maptool:Make adding of unknown country towns an option to avoid bloated index
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Fri, 24 Jun 2011 20:14:10 +0000 (20:14 +0000)
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Fri, 24 Jun 2011 20:14:10 +0000 (20:14 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@4538 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/navit/maptool/maptool.c
navit/navit/maptool/maptool.h
navit/navit/maptool/osm.c

index ccb1a29..9a80664 100644 (file)
@@ -50,6 +50,8 @@ int ignore_unkown = 0;
 GHashTable *dedupe_ways_hash;
 int phase;
 int slices;
+int unknown_country;
+
 struct buffer node_buffer = {
        64*1024*1024,
 };
@@ -129,6 +131,7 @@ usage(FILE *f)
        fprintf(f,"-w (--dedupe-ways)       : ensure no duplicate ways or nodes. useful when using several input files\n");
        fprintf(f,"-W (--ways-only)         : process only ways\n");
        fprintf(f,"-z (--compression-level) : set the compression level\n");
+       fprintf(f,"-U (--unknown-country)   : add objects with unknown country to index\n");
        
        exit(1);
 }
@@ -219,13 +222,14 @@ int main(int argc, char **argv)
                        {"url", 1, 0, 'u'},
                        {"ways-only", 0, 0, 'W'},
                        {"slice-size", 1, 0, 'S'},
+                       {"unknown-country", 0, 0, 'U'},
                        {0, 0, 0, 0}
                };
                c = getopt_long (argc, argv, "5:6B:DNO:PWS:a:bc"
 #ifdef HAVE_POSTGRESQL
                                              "d:"
 #endif
-                                             "e:hi:knm:p:r:s:wu:z:", long_options, &option_index);
+                                             "e:hi:knm:p:r:s:wu:z:U", long_options, &option_index);
                if (c == -1)
                        break;
                switch (c) {
@@ -260,6 +264,9 @@ int main(int argc, char **argv)
                case 'W':
                        process_nodes=0;
                        break;
+               case 'U':
+                       unknown_country=1;
+                       break;
                case 'a':
                        attr_debug_level=atoi(optarg);
                        break;
index c7bfef0..f048363 100644 (file)
@@ -203,6 +203,7 @@ extern int processed_nodes, processed_nodes_out, processed_ways, processed_relat
 extern struct item_bin *item_bin;
 extern int bytes_read;
 extern int overlap;
+extern int unknown_country;
 void sig_alrm(int sig);
 void sig_alrm_end(void);
 
index 8d4e779..7df34d8 100644 (file)
@@ -1611,7 +1611,7 @@ osm_end_node(FILE *out)
                item_bin_write(item_bin,out);
                if (item_is_town(*item_bin) && attr_strings[attr_string_label]) {
                        char *tok,*buf=is_in_buffer;
-                       if (!buf[0])
+                       if (!buf[0] && unknown_country)
                                strcpy(is_in_buffer, "Unknown");
                        while ((tok=strtok(buf, ",;"))) {
                                while (*tok==' ')