Geo-Visualization Tools

Section Content:

coastline_gen simple coastline generalization

generalized coastline example

Here you can find an implementation of a simple raster based technique to generalize coastlines and other polygon features for map rendering. You can find some background information on the purpose of this in my essay on coastline generalization. The newest version of this tool is available on github.

The program is written in C++ and uses the external linkCImg image processing library and should work on all platforms supported by it.

The source package includes a makefile for building. It also contains a test target that demonstrates use of the tool by generalizing the coastline of Greece and the Aegean sea (see image on the right, move mouse over to see a generalized version) from the sample data set linked below. If you want to see how a generalized coastline looks like in a practical example you can do so in the demonstration map.

Version 0.5 includes new functions for generalizing inland waterbodies. The new functions are not yet properly documented and the demo in the makefile has not been updated either.

This program is licensed under the external linkGNU General Public License version 3.

Visitor comments:

by kusmi from Switzerland posted on Wed Feb 13 2013 16:27:29
Looks very nice and is the first generalization algorithm I found on the internet :-)

BTW, instead of only generalizing the coast-line, why not merging (union) the natural=water, riverbanks and coastlines so the Suez-Canal, Amazon also renders correctly?

Using your bitmap approach, the union operation would be very efficient (just add together the pixel-data of the corresponding vector sources) - I'm using a similar approach for fast union and reducing data to fixed-point coordinates.
by chris from Germany posted on Wed Feb 13 2013 17:52:48
Hi kusmi,

the technique is not really suited for generalizing rivers since on a small scale map rivers are usually rendered as a single line and not as an area.

Lakes can be generalized using the same technique but need to be specifically separated from the ocean - that is what the '-f' option is for.
Leave a comment
You have to enable Javascript to be able to write comments.
human verification Please enter the code you can see in the image on the left to verify you are a human and not a spamming script.
* * Required field
Information about you
will not be made public
will be displayed with your posting
Your comment (no HTML)


If you want to send a private message to the author of this website you can do so via Email.

The comments will be reviewed before they are added to the site. So you might need to wait some time until your entry turns up.

Please note this comment function is intended for commenting on the text and images, not for discussing political or religious views. Comments with no relation to the content of this site will not be approved.