summaryrefslogtreecommitdiff
path: root/navit/maptool/misc.c
diff options
context:
space:
mode:
authorStefan Wildemann <gta04@metalstrolche.de>2019-08-01 00:32:04 +0200
committerStefan Wildemann <gta04@metalstrolche.de>2019-08-01 00:32:04 +0200
commitfa45f14cde72efe75a2c43cccbcb773e8fd3f2cc (patch)
tree02fc1dce710110cc211254891add79b42309b92e /navit/maptool/misc.c
parent8061e9b1e4a82368d8acf626179f9e657fea4664 (diff)
downloadnavit-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.c12
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);
}
}