[OpenMap Users] Declutter - Simulated Annealing

From: Carsten Ø. Madsen <com_at_navicon.dk>
Date: Sun, 09 Oct 2005 16:14:50 +0200

I have been looking for a way to speed up decluttering in OM and
yesterday I stumbled over (NLPF)
http://www.ads.tuwien.ac.at/research/labeling/.

There is java code there implementing the following declutter algo's:

ForceDirectedLabeling
SimulatedAnnealing
LeftmostHeuristic
HirschLabeling
RandomPlacement

including a GUI for testing the different algo's.

I have made a patched version of LocationLayer that makes it possible to
eval the speed of the algo's compared the OM thing (DeclutterMatrix)
within OM. It looks like LeftmostHeuristic is rather fast 10x and in
most cases produces an ok result and that SimulatedAnnealing does "nice
looking" decluttering. You need to patch the code to try the different
algo's and make openmap.properties load a CSVLocationLayerPatch layer.

To see the diff in performance toggle the declutter property from the
props editor and watch system.out. When declutter is on no NLPF code is
used.

I have use the following settings:

openmap.layers=cities
openmap.startUpLayers=cities

# LocationLayer that holds cities. The palette for this layer lets
# you turn on the names and declutter matrix, if you want. The
# declutter matrix can get expensive at small scales.
#cities.class=com.bbn.openmap.layer.location.LocationLayer
cities.class=dk.navicon.openmap.declutter.CSVLocationLayerPatch
cities.prettyName=World Cities
cities.locationHandlers=csvcities
cities.useDeclutter=false
#cities.declutterMatrix=MyDeclutterMatrix
cities.declutterMatrix=com.bbn.openmap.layer.DeclutterMatrix
csvcities.class=com.bbn.openmap.layer.location.csv.CSVLocationHandler
csvcities.prettyName=World Cities
csvcities.locationFile=data/cities.csv
csvcities.csvFileHasHeader=true
csvcities.locationColor=FF0000
csvcities.nameColor=aa0000
csvcities.nameFont=SansSerif-Bold
csvcities.showNames=true
csvcities.showLocations=true
csvcities.nameIndex=0
csvcities.latIndex=5
csvcities.lonIndex=4
csvcities.csvFileHasHeader=true

To try it out fetch the code from here
http://navicon.dk/openmap/CSVLocationLayerPatch.java and here
http://www.ads.tuwien.ac.at/research/labeling/download/PFLP.jar

I'm sure there is a more approiate way of integrating this into OM than
my current code?

regards
/carsten


--
[To unsubscribe to this list send an email to "majdart_at_bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]
Received on Sun Oct 09 2005 - 10:19:22 EDT

This archive was generated by hypermail 2.3.0 : Tue Mar 28 2017 - 23:25:07 EDT