diff options
author | mdankov <mdankov@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2013-02-17 21:07:58 +0000 |
---|---|---|
committer | mdankov <mdankov@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2013-02-17 21:07:58 +0000 |
commit | 4f013c6f3b0d28ac89a8d71106c7e2eb7879c652 (patch) | |
tree | f401bc7ba681f555bd8763663884e2c0a79daea8 /navit/maptool | |
parent | 77dca73c4f832fa7257cdd2b7c37ede74d659d34 (diff) | |
download | navit-svn-4f013c6f3b0d28ac89a8d71106c7e2eb7879c652.tar.gz |
Fix:maptool:Make expiremental feature to skip extra administrative subdivisions (svn 5380) work.
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5384 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/maptool')
-rw-r--r-- | navit/maptool/boundaries.c | 6 | ||||
-rw-r--r-- | navit/maptool/osm.c | 11 |
2 files changed, 8 insertions, 9 deletions
diff --git a/navit/maptool/boundaries.c b/navit/maptool/boundaries.c index bf9ceb3c..b3fd63f0 100644 --- a/navit/maptool/boundaries.c +++ b/navit/maptool/boundaries.c @@ -108,9 +108,9 @@ process_boundaries_setup(FILE *boundaries, struct relations *relations) rolestr=member+read; if(member_type==1) { - if(!strcmp(rolestr,"admin_centre") || !strcmp(rolestr,"admin_center")) - boundary->admin_centre=osm_id; - } + if(!strcmp(rolestr,"admin_centre") || !strcmp(rolestr,"admin_center")) + boundary->admin_centre=osm_id; + } if(member_type==2) { enum geom_poly_segment_type role; if (!strcmp(rolestr,"outer") || !strcmp(rolestr,"exclave")) diff --git a/navit/maptool/osm.c b/navit/maptool/osm.c index fc6696cf..52cfdbfd 100644 --- a/navit/maptool/osm.c +++ b/navit/maptool/osm.c @@ -1837,15 +1837,14 @@ osm_process_town_by_boundary(GList *bl, struct item_bin *ib, struct coord *c, st if (match) { if (match && match->country && match->country->admin_levels) { - char *nodeid=item_bin_get_attr(ib, attr_osm_nodeid, NULL); - long long node_id; + long long *nodeid=item_bin_get_attr(ib, attr_osm_nodeid, NULL); + long long node_id=0; int end=strlen(match->country->admin_levels)+3; int a; - int max_adm_level=end; + int max_adm_level=0; if(nodeid) - if(sscanf(nodeid,LONGLONG_FMT,&node_id)<1) - node_id=0; + node_id=*nodeid; l=matches; while (l) { @@ -1889,7 +1888,7 @@ osm_process_town_by_boundary(GList *bl, struct item_bin *ib, struct coord *c, st /* Administrative centres are not to be contained in their own districts. */ if(experimental && max_adm_level>0) - for(a=end-1;a>max_adm_level;a--) + for(a=end-1;a>max_adm_level && a>2;a--) attrs[a-2].type=type_none; } |