diff options
author | sleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2014-07-07 14:26:45 +0000 |
---|---|---|
committer | sleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2014-07-07 14:26:45 +0000 |
commit | 043323193725338ac03f0fd8a384d7c4c79cb17c (patch) | |
tree | 592b3c74a10d5c2c18f61bca3d07890d89c68467 | |
parent | ee2ca5f7d2f99e2bb335180ae3f306904eb3e197 (diff) | |
download | navit-043323193725338ac03f0fd8a384d7c4c79cb17c.tar.gz |
Add:maptool:Write addr:interpolation data to temporary file when reading OSM input file.|Part of #1177.
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5803 ffa7fe5e-494d-0410-b361-a75ebd5db220
-rw-r--r-- | navit/attr_def.h | 2 | ||||
-rw-r--r-- | navit/maptool/maptool.c | 3 | ||||
-rw-r--r-- | navit/maptool/maptool.h | 1 | ||||
-rw-r--r-- | navit/maptool/osm.c | 8 |
4 files changed, 14 insertions, 0 deletions
diff --git a/navit/attr_def.h b/navit/attr_def.h index 2f92a5634..1b3c099a5 100644 --- a/navit/attr_def.h +++ b/navit/attr_def.h @@ -480,6 +480,8 @@ ATTR2(0x000c0000,type_int64_begin) ATTR(osm_nodeid) ATTR(osm_wayid) ATTR(osm_relationid) +ATTR(osm_nodeid_first_node) +ATTR(osm_nodeid_last_node) ATTR2(0x000cffff,type_int64_end) ATTR2(0x000d0000,type_group_begin) ATTR(speed_dep) diff --git a/navit/maptool/maptool.c b/navit/maptool/maptool.c index d35994e9e..067c82898 100644 --- a/navit/maptool/maptool.c +++ b/navit/maptool/maptool.c @@ -442,6 +442,7 @@ osm_collect_data(struct maptool_params *p, char *suffix) if (p->process_relations) { p->osm.boundaries=tempfile(suffix,"boundaries",1); p->osm.associated_streets=tempfile(suffix,"associated_streets",1); + p->osm.house_number_interpolations=tempfile(suffix,"house_number_interpolations",1); } #ifdef HAVE_POSTGRESQL if (p->dbstr) @@ -483,6 +484,8 @@ osm_collect_data(struct maptool_params *p, char *suffix) fclose(p->osm.turn_restrictions); if (p->osm.associated_streets) fclose(p->osm.associated_streets); + if (p->osm.house_number_interpolations) + fclose(p->osm.house_number_interpolations); if (p->osm.boundaries) fclose(p->osm.boundaries); if (p->osm.poly2poi) diff --git a/navit/maptool/maptool.h b/navit/maptool/maptool.h index 22f36b5e0..1b7fc5c3d 100644 --- a/navit/maptool/maptool.h +++ b/navit/maptool/maptool.h @@ -258,6 +258,7 @@ struct maptool_osm { FILE *boundaries; FILE *turn_restrictions; FILE *associated_streets; + FILE *house_number_interpolations; FILE *nodes; FILE *ways; FILE *line2poi; diff --git a/navit/maptool/osm.c b/navit/maptool/osm.c index c7716bbe0..eb0801929 100644 --- a/navit/maptool/osm.c +++ b/navit/maptool/osm.c @@ -1755,6 +1755,14 @@ osm_end_way(struct maptool_osm *osm) if(i>0) item_bin_add_attr_int(item_bin, attr_duplicate, 1); item_bin_write(item_bin,osm->ways); + + if (types[i]>=type_house_number_interpolation_even && types[i]<=type_house_number_interpolation_alphabetic){ + struct item_bin *item_bin_interpolation_way=init_item(types[i]); + item_bin_add_attr_longlong(item_bin, attr_osm_wayid, osmid_attr_value); + item_bin_add_attr_longlong(item_bin, attr_osm_nodeid_first_node, GET_REF(coord_buffer[0])); + item_bin_add_attr_longlong(item_bin, attr_osm_nodeid_last_node, GET_REF(coord_buffer[coord_count-1])); + item_bin_write(item_bin_interpolation_way, osm->house_number_interpolations); + } } if(osm->line2poi) { count=attr_longest_match(attr_mapping_way2poi, attr_mapping_way2poi_count, types, sizeof(types)/sizeof(enum item_type)); |