The program requires the java runtime environment version 1.6 installed to be executed. The program is executed using the file maplab.jar. You can run the program using the command: java -jar maplab.jar In Windows the program can be started by double-clicking on maplab.jar . -- Interface overview -- After starting the program you will be presented with a small window consisting mainly of the map display and alongside it the toolbar and the route list, zoom-slider and a general purpose status bar which displays information about the things under the mouse. The largest part of the window is occupied by the map display, which by default can be panned freely with the mouse. This display shows all the routes and their labels and the current scale. After startup the display however is empty, because no map has been loaded. You can either use the tools in the toolbar to draw new routes or import a map file. -- The Toolbar -- There are several tools in the toolbar that can be used in the map display. The default tool that is selected at startup is the pan tool that can be used to pan the map by dragging it with the mouse. The other tools are: The Route Tool - This tool is used to draw new routes. Just select it and click on the map where you would like the new route to beggin. The program will then ask for the name of this route and after entering it you can draw the course of the route by clicking the path point by point in the map. The route is completed by clicking with the right mouse button. The Obstacle Tool is a similar tool for drawing rectangular obstacles on the map. The labeling algorithm will avoid these obstacles and place no labels on them. The Remove Tool - This tool can be used to remove routes, obstacles and labels from the map. Just click on an object and it will be removed after your confirmation. The Move Tool - This tool can be used to move obstacles and labels by dragging them with the mouse. Along with the tools the toolbar contains special buttons for label generation, displaying settings and toggling two overlay modes which are: The Subset - Draw a rectangle; the routes outside it will be clipped off. The Complexity Overlay - This overlay displays a map of the overall complexity of the route map. The more complex areas (displayed in the deepest red) will be marked as areas where a smaller label size will be used. One can also observe if the area under the mouse is complex from the status bar. The text "(Crowded)" is displayed there when the mouse hovers over such areas. -- Importing maps -- To import real world route data from the Google Transit format, use the File menu. Download the data from Google Transit Feed into a directory, and browse to the directory; when there, click Open (with no particular file highlighted). It should be noted that importing Google Transit maps can take up to some minutes and the program will freeze until the loading is complete. -- Route list -- At the right of the map display there is the route list. It can be used to view the routes on the map and change their visibilty. Double clicking the route name will display the starting point of the route on the map. One can also change the color of a route by clicking the color box of it in the second column of the route list. Next to it is the length of the route in meters and the visibility toggle checkbox. Over the route list there are checkboxes for disabling route colors and toggle the visibility of all routes at once. Selected routes on the list can also be removed by clicking the Remove selected route button. -- Generating and exporting labels -- After having prepared a suitable route map, one can generate labels to it by pressing the Generate Button on the toolbar. The generation of labels will then commence. On larger route maps one can observe the progress of the generation by reading the progress text that will be displayed on the status bar. After the generation is complete the new labels will be displayed on the map and can be freely exported. The export format is the KML format used by Google Earth and Google Maps. There are three kinds of exported KML files. The more lightweight exports the labels as KML text objects, but does not display properly on Google Maps and on Google Earth displays the labels without the correct scale. The second export format uses PNG images to store the label texts and displays much better on both programs although it is heavier to display for them. The third format is similar, but uses vector graphics in the SVG format instead of PNG. The SVG images currently works only on Google Maps and need specific browsers: Safari and Google Chrome work and need even with them some care is needed for the images to display. The created PNG and SVG images are written to directory FILE-data where FILE is the name of the KML destination file. References to images are stored as relative paths so if the resulting KML file is moved, the data directory should be moved with it. Google Maps can be used to load the generated KML files by entering URL of the file to search panel of Google Maps. Google Maps, however, requires the paths to images to be absolute URLs, so the references to image files have to be converted to absolute form in order to be displayed in Google Maps. This can be done using the script prefix.sh from http://www.cs.helsinki.fi/group/compgeom/maplab/prefix.sh . It is executed like this: /path/to/maplab/prefix.sh [path-to-file.kml] [url-prefix-to-add] So for instance if the image files are located in http://someurl.com/map.kml-data , the script is then called like: /path/to/maplab/prefix.sh /path/to/map.kml "http://someurl.com" After this, the labels can be loaded to Google Maps by writing the URL of the KML file to search bar of Google Maps. It should be noted that due to the way Google Maps handles its graphics the SVG format labels will display only if the server containing them servers them with the correct content-type header. The right header type is "image/svg+xml". For example the content-type "text/xml" that is returned by the servers at cs.helsinki.fi will NOT work and the images will not be displayed. Off course the PNG format images do not suffer from this problem and are altogether better supported. -- Configuration options -- The last button of the toolbar will open a settings dialog with different options for controlling the label generation. There are several sliders controlling various label generation parameters. - Label size: Chooses font size for labels. The following values configure complexity grid. Complexity grid is used to determine when labels should be generated in smaller font. - Complexity grid size: Chooses size of cells in complexity grid. - Compexity grid amount treshold: Chooses how many of the complexity grids must determine that an area to be crowded for it to be marked crowded. The program uses 4 grids with different offsets. - Complexity length multiplier: How much the sum of lengths of routes inside a cell in complexity grid affects whether the cell is marked crowded. - Complexity route count multiplier: How much the amount of different routes inside a cell in complexity grid affects whether it is marked crowded. Following values control parameters about the placement of generated labels. All the values scale with different label sizes. - Interection distance factor: How far should labels be placed from intersections. - Maxium distance factor: Determines how far a label may be placed from it's ideal position in order for it to not overlap with other labels or roads. - Disk cost factor: obsolete - Label interval factor: Determines how often should labels be placed between intersections. - Road distance factor: Determines how far labels should be placed from road. - Other parameters are in the development phase.