diff options
| author | Stefan Wildemann <gta04@metalstrolche.de> | 2019-08-01 00:32:04 +0200 |
|---|---|---|
| committer | Stefan Wildemann <gta04@metalstrolche.de> | 2019-08-01 00:32:04 +0200 |
| commit | fa45f14cde72efe75a2c43cccbcb773e8fd3f2cc (patch) | |
| tree | 02fc1dce710110cc211254891add79b42309b92e /navit/maptool/misc.c | |
| parent | 8061e9b1e4a82368d8acf626179f9e657fea4664 (diff) | |
| download | navit-fa45f14cde72efe75a2c43cccbcb773e8fd3f2cc.tar.gz | |
Move multipolygons to own tempfile, simplify filtering
Note: the simpler filtering results in bigger disk space required.
But we cannot filter unknown streets early anymore, as they may be
required for polygon processing
Diffstat (limited to 'navit/maptool/misc.c')
| -rw-r--r-- | navit/maptool/misc.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/navit/maptool/misc.c b/navit/maptool/misc.c index 1c30b94f7..9b1c72da2 100644 --- a/navit/maptool/misc.c +++ b/navit/maptool/misc.c @@ -213,12 +213,20 @@ int item_order_by_type(enum item_type type) { return max; } +static inline int filter_unknown(struct item_bin * ib) { + if(ignore_unknown && (ib->type==type_point_unkn || ib->type==type_street_unkn || ib->type==type_none)) + return 1; + return 0; +} + static void phase34_process_file(struct tile_info *info, FILE *in, FILE *reference) { struct item_bin *ib; struct attr_bin *a; int max; while ((ib=read_item(in))) { + if(filter_unknown(ib)) + continue; if (ib->type < 0x80000000) processed_nodes++; else @@ -239,6 +247,8 @@ static void phase34_process_file_range(struct tile_info *info, FILE *in, FILE *r int min,max; while ((ib=read_item_range(in, &min, &max))) { + if(filter_unknown(ib)) + continue; if (ib->type < 0x80000000) processed_nodes++; else @@ -278,6 +288,8 @@ static int phase34(struct tile_info *info, struct zip_info *zip_info, FILE **in, void dump(FILE *in) { struct item_bin *ib; while ((ib=read_item(in))) { + if(filter_unknown(ib)) + continue; dump_itembin(ib); } } |
