A mapper is a user configurable object which knows how to graphically display one type of information in certain way. Taken alone, one single mapper will only be able to provide a very limited graphic display. As we shall see later on, the strength of the mappers does not lie in their stand-alone use, but in combining them to generate complex and flexible displays.
As each type of mapper is implemented individually, there is conceptually no limit to the number of different mappers nor the type of task they can perform. However, all mappers must adhere to the same rules when it comes to interfacing with the network plane.
A mapper consists of the following components, of which some are mandatory and some optional:
Besides the above components, a mapper is free to access other, usually external resources. In particular, mappers may access external files, e.g. to read in objects to be displayed on the network plane, such as annotations, bit-mapped images or polygons.
Each mapper provides the following generic flags to enable or disable the corresponding services provided by the network plane:
|Flag:||Enables/disables the following feature:|
|Control||Visibility of mapper control dialog|
|Screen||Mapper displays information on network plane view on screen|
|Printer||Mapper displays information on printed output|
|Magnifier||Mapper display is visible on magnifier|
|Legend||Legend information is written into the legend window|
|Input||Mapper takes over mouse and keyboard events when it becomes active|
|Bounding Box||Mapper's bounding box is used to compute the full view bounding box of the network plane|
|Active Selection||Mapper's active elements will be made accessible to other mappers|
Since the output of each mapper can be controlled individually to enable or disable graphic output to screen, printer and magnifier, it is possible to design plot configurations which appear differently on the different output devices. This has some interesting applications:
An active input mapper, which receives the mouse and keyboard events occurring on the network plane, is visually distinguished by a different background color of the mapper control dialog. This color is user configurable. In the examples shown further down, a light green background is used for input mappers, instead of the default gray background for non-input mappers.
As this paper is not meant as a reference manual, there is no point going into the details of each of the mapper types currently available in Enif. Also, the currently implemented mappers are essentially limited to output-only mappers. There are a few network editing mappers which are still in their very early experimental phase and not of any practical use yet.
Thus, we shall limit the presentation of specific mapper types to simply illustrate some of them by means of depicting an example of their configuration in the control dialog and a small stripe of the network plane output generated using this configuration:
|Fig.6||Background||Paints the background either in a constant color or using a tiled bit-mapped image.|
|Fig.7||Grid||Generates a coordinate grid using a specified grid distance.|
|Fig.8||Image||Displays a bit-mapped image file at a certain position scaled to a certain size. Many different graphic file formats (such as JPEG, PNG, TIFF, ...) are supported. The example shows a scanned image of a city map.|
|Fig.9||Annotation||One or several EMME/2 annotation files are displayed.|
|Fig.10||Node Box||Draws node boxes of a specified size and optionally writes the node numbers or node labels into them.|
|Fig.11||Node Value||Evaluates one or several node values and represents them as a proportionally sized symbol and/or a text string. The example shows initial boardings and final alightings at transit stops.|
|Fig.12||Node Polygon||Reads a file containing polygons and displays them. An indexed stylus can be used to color them according to arbitrary node characteristics. Optional node values can be evaluated and displayed either at the corresponding node positions or at the center of gravity of the polygons.|
|Fig.13||Link Base||Draw link bases consisting of an arbitrary combination of a link bar, an I-node circle and a J-node circle.|
|Fig.14||Link Value||Evaluates a link value and displays it numerically and/or as a proportional bar.|
|Fig.15||Transit Line||Displays transit line itineraries and optionally annotates them with segment and/or stop values.|
|Fig.16||Segment Value||Evaluates transit segment values, aggregates them to link values and displays these on the links as numeric values and/or as a proportional link bar.|
|Fig.17||Intersection||Draws intersections and displays turn values as proportional width turns.|
|Fig.18||Shortest Path||Computes shortest paths from or to one or several root nodes and displays the corresponding trees.|
|Fig.19||Diagram||Several mappers are available to compute and display scattergrams and histograms for the various network element types. The example shown contains a link histogram with the distribution of vehicle miles by link speed.|
Note that the above list of mapper types is by no means complete. It just shows those mappers which have already reached a stage of development which is close to production level. Some additional mappers are already under development now and we have already many more ideas for new mappers to be developed in the future.