[mkgmap-dev] Algorithm for rendering sea
From Christian Gawron christian.gawron at googlemail.com on Wed Aug 26 15:23:16 BST 2009
Dear Clifford, in the standard case, the algorithm does the following: - Generate a background sea rectangle which covers the bounding box of the map - Connect the coastline segments wherever possible. The resulting segments should be either closed (= islands) or hit the boundary. - Build a multipolygon relation with - the background as outer element, - the islands as inner elements, - additional inner elements which are built from the coastline segments hitting the boundary by connecting them along the boundary. The multipolygon relation then describes the sea with "holes" for the land. Unfortunately, sometimes there are non-closed coastline segments not hitting the boundary (e.g. in the country extracts from geofabrik the shore ends at the country border which usually does not coincide with the bounding box). Best wishes Christian Clifford Nolan schrieb: > I was wondering how the sea is generated in those recent sea polygon > patches. Since I don't understand Java I haven't a clue! Even so, I > was thinking of what might be a reasonable way to do it. > > If there is coastline present within the bounding box then rapidly > "grow" the coastline from the bounding box until you are close to > coastline. Then grow the coastline more slowly (smaller overlapping > polygons). At this point maybe a test could be done to see if a closed > coastline way will end up completely inside a proposed polygon and if it > will it's time to make the polygons (temporarily) smaller. In this way > the sea should end up "shrink wrapping" itself around land. > > Maybe it's already done in a way like this but as I say I wouldn't know. > > I also thought it might be an idea to build a "convex hull" of the > coastline whereby a a rough outline of the coast is built first so that > all land lies on one side of this outline. This could be done by > sampling the coast and checking no lines joining pairs of coastline > points intersect with another coastline point (which would mean the > possibility of coastline on both sides of the line segment). That could > be a way to rapidly fill in most of the sea area. > > All the best, > Cliff > _______________________________________________ > mkgmap-dev mailing list > mkgmap-dev at lists.mkgmap.org.uk > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev >
- Previous message: [mkgmap-dev] Algorithm for rendering sea
- Next message: [mkgmap-dev] Algorithm for rendering sea
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the mkgmap-dev mailing list