git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@4615
ffa7fe5e-494d-0410-b361-
a75ebd5db220
int debug_ref=0;
static void
int debug_ref=0;
static void
-osm_count_references(struct maptool_params *p, char *suffix)
+osm_count_references(struct maptool_params *p, char *suffix, int clear)
{
int i,first=1;
fprintf(stderr,"%d slices\n",slices);
{
int i,first=1;
fprintf(stderr,"%d slices\n",slices);
if (!first) {
FILE *ways=tempfile(suffix,"ways",0);
load_buffer("coords.tmp",&node_buffer, i*slice_size, slice_size);
if (!first) {
FILE *ways=tempfile(suffix,"ways",0);
load_buffer("coords.tmp",&node_buffer, i*slice_size, slice_size);
+ if (clear)
+ clear_node_item_buffer();
ref_ways(ways);
save_buffer("coords.tmp",&node_buffer, i*slice_size);
fclose(ways);
ref_ways(ways);
save_buffer("coords.tmp",&node_buffer, i*slice_size);
fclose(ways);
if (p.start <= phase && p.end >= phase) {
maptool_load_node_table(&p,1);
fprintf(stderr,"PROGRESS: Phase %d: counting references and resolving ways\n",phase);
if (p.start <= phase && p.end >= phase) {
maptool_load_node_table(&p,1);
fprintf(stderr,"PROGRESS: Phase %d: counting references and resolving ways\n",phase);
- osm_count_references(&p, suffix);
+ osm_count_references(&p, suffix, p.start == phase);
}
phase++;
if (p.start <= phase && p.end >= phase) {
}
phase++;
if (p.start <= phase && p.end >= phase) {
void flush_nodes(int final);
void sort_countries(int keep_tmpfiles);
void process_turn_restrictions(FILE *in, FILE *coords, FILE *ways, FILE *ways_index, FILE *out);
void flush_nodes(int final);
void sort_countries(int keep_tmpfiles);
void process_turn_restrictions(FILE *in, FILE *coords, FILE *ways, FILE *ways_index, FILE *out);
+void clear_node_item_buffer(void);
void ref_ways(FILE *in);
void resolve_ways(FILE *in, FILE *out);
FILE *resolve_ways_file(FILE *in, char *suffix, char *filename);
void ref_ways(FILE *in);
void resolve_ways(FILE *in, FILE *out);
FILE *resolve_ways_file(FILE *in, char *suffix, char *filename);
+void
+clear_node_item_buffer(void)
+{
+ int j,count=node_buffer.size/sizeof(struct node_item);
+ struct node_item *ni=(struct node_item *)(node_buffer.base);
+ for (j = 0 ; j < count ; j++) {
+ ni[j].ref_way=0;
+ }
+}
+
static struct node_item *
node_item_get(int id)
{
static struct node_item *
node_item_get(int id)
{