Force Directed Map Labeling


Overview:

Due to its numerous applications, e.g., in cartography, geographic information systems, point pattern analysis, spatial statistics, and graphical interfaces, automated map labeling attracts still many researchers in computer science. A major problem in map labeling is the point-feature label placement problem, where the task is to place labels adjacent to point-features so that only a few or no labels overlap. The growing amount of data leads to an increasing need for fast and efficient map labeling algorithms that produce well readable labelings in a small amount of time.

We present a new and very efficient heuristical approach in the most general of the labeling models, the four-slider model. This page offers access to a number of test instances and a demo application to compare our method to other known algorithms in the four-slider and four-position model. The application has been developed using Java and can be obtained in the download section. Furthermore this sections enables access to a Technical Report, which describes the algorithm and contains a large section of computational results.

Authors

Contact Information

If you have any suggestions or questions, feel free to contact one of the authors using {ebner | gunnar | weiskircher} @ ads.tuwien.ac.at.
sample labeling
Sample labeling of 910/1041 point features. Red points mark labels that could not be placed without intersections.

Downloads:

We decided to release the source code of the program under the terms of the GNU GPL licence. You are free to download, modify and distribute it as long as you agree to the terms of the GPL. The full text of which can be found here.

Since we are always interested in improvements, please let us know if you find the program useful and/or have any extensions for the given application. Developers can download a precompiled version of the documentation (created using Javadoc) or access it online here. Since it is quite easy to extend the framework by further algorithms, we would be glad if people do so to compare the performance and solution quality of different methods.

Demo application PFLP.jar (95Kb) md5: fe829a66d20fb9e4b6fc4e353e69ad1f
Technical Report fdl_tr.pdf (coming soon) md5: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Random Benchmark set
This benchmark set is generated according to the rules described in (J. Christensen, J. Marks, and S. Shieber, An Empirical Study of Algorithms for Point Feature Label Placement, ACM Trans. on Graphics, 14(3):203-232, 1995)
cms.tar.gz (5,3Mb) md5: 89065c4c09299a61c60febb2404c3ffa
Munich Drillholes Benchmark set
Alexander Wolff collects and maintains a lot of information about map labeling on his map labeling pages, including real-world labeling instances. The Munich Drillholes Benchmark set contains points corresponding to coordinates in the city of Munich (original source)
md.tar.gz (3,7Mb) md5: 9996e910d8f85b5f1dfe0aabb5d7a082
Source code pflp_src.tar.gz (49Kb) md5: 81d1bcbd698e18540d158ecd774f5cfc
Source code documentation pflp_doc.tar.gz (57Kb) md5: be0919349ca9506fb95073a317c97c48
Please download the precompiled Application (PFLP.jar) to a temporary directory and executed the following command to get a graphical user interface:
> java -jar PFLP.jar
The appliction allows to export solutions to the EPS format. Therefore it uses EpsGraphics2D written by Paul James Mutton, which is also Open Source and included in the package. To run benchmarks without using the user interface use the following command line arguments:
> java -jar PFLP.jar --help

PFLPApp
        [ --batch <filename>
         [--retries <n>]
         [--disable-point-selection]
         [--solution <file_prfx>]
         [--algorithm {fdl|fdlcu|sa|hirsch|leftmost|random}]
        ]
       [--dump-min-dist <filename.sol> -o <outfile.dist>]
Since we can't measure the real user time without using JNI one should use the time command to obtain precise results. The application has been developed and tested with the SUN JDK 1.4.2_03, but it is expected to work also with anterior versions.

 


Algorithms and Data Structures Group | Inst. of Computer Graphics and Algorithms | TU Wien

Last modification: May 2004