diff options
author | Stefan Wildemann <metalstrolch@users.noreply.github.com> | 2019-09-03 09:14:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-03 09:14:39 +0200 |
commit | b643162c355231eed6fd9c76731b816391d808dc (patch) | |
tree | bbf4401f1a1ef49fcf684a1366a58d00a135b58b /navit/attr_def.h | |
parent | 94834b753cc9c2e1e668feb887683416538861ce (diff) | |
parent | b0d66a6c4ac6a1cf63e676ba24fd3061686cea15 (diff) | |
download | navit-b643162c355231eed6fd9c76731b816391d808dc.tar.gz |
core:feature:multipolygon support #824
This adds multi polygon support to navit binfile.
It uses the following attempt:
- Multipolygon "outer" polygons are converted to polygons inside the binfile map.
- Multipolygon "inner" polygons are added as attributes to the outer polygon.
- New method is added to graphics to draw polygons with "holes" (currently qt5,
gtk_drawing_area, and Windows (except CE) but at least sdl can do this as well)
Since the binfile format stays structural intact, new maps can be processed by old Navit versions, except they draw the multipolygons without their "holes",
New version of Navit can still read old maps of course.
Limitations:
- In the maps, there are multipolygons having other multipolygons as inner or outer.
These are unsupported and fail the member check. According to
https://wiki.openstreetmap.org/wiki/Relation:multipolygon these are invalid. And the
current web display cannot display them as well. See
https://www.openstreetmap.org/relation/5587300 . Don't know if this get a standard
mapping feature. Hopefully not.
- Multipolygon polygons tend to become huge. No algorithm to split them into smaller
chunks is contained. But my personal opinion is to exclude some types of polygons
from map altogether on constrained devices over not including or artificial cutting the
multipolygon ones. Btw. there are already huge traditional polygons as well.
- Processing the map required more disk space as one cannot early drop ways with
unknown tags any more, as they could be part of multipolygon. Maptools -n flag
works as expected for the final result though.
Additional changes:
- Default to 64 bit zip files on maptool
Diffstat (limited to 'navit/attr_def.h')
-rw-r--r-- | navit/attr_def.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/navit/attr_def.h b/navit/attr_def.h index 055936b4a..5a82d9d30 100644 --- a/navit/attr_def.h +++ b/navit/attr_def.h @@ -416,6 +416,7 @@ ATTR(ch_edge) ATTR(zipfile_ref_block) ATTR(item_id) ATTR(pdl_gps_update) +ATTR(poly_hole) ATTR2(0x0004ffff,type_special_end) ATTR2(0x00050000,type_double_begin) ATTR(position_height) |