The Map

This section describes the map's functionality from a user's point of view. These should be considered the initial set of features that are included in the prototype delivery. A distinction is made between "maps" and "views", a sample map is exemplified in figure 4-30. Many of the features are only activated if a parameter is set in the INI file. This allows the administrator to control the levels of changes that can be made by the operator.

Listed below are some properties of maps and views that are incorporated into the delivered prototype:

This approach allows the CHART II operators to be able to set multiple views of the state map at any location, shape and zoom level that is preferred. In addition, it allows the system to incorporate other maps. Although the State map will be the basis for the system, other maps such as signal system maps can be added as the system requirements change. The requirement for any new map to use all the features listed here is that it be obtainable in DXF format, the most common of graphics file formats that is an export feature of virtually all graphics programs.

Figure 4-30. Sample Map

CSC/PBFI Advantage: Operators can set multiple views of the state map at any location, shape, and zoom level.


A map is opened by choosing the Map-Open menu item or by clicking on the "Open Map" toolbar button. If only one map is defined in the database table, then that map is automatically loaded. If more than one is defined, the operator is asked to choose a map from those defined. To open more than one view of the same map, use the Open View feature of the first view. The map module will prevent the operator from opening two maps with the same filename.

Once a map view is opened, there are two ways to use the view's functionality-with the toolbar, and with the view's popup menu. The popup menu provides all of the toolbar's functionality and has many more features. figure 4-31 illustrates the how the functionalities can be invoked by right-clicking on the view away from any selectable objects. All of the map view's features are described below.

Figure 4-31. Right-clicking View Functionalities

CSC/PBFI Advantage: The pop-up menu is an easy way to access all of the functions and features of a map view. Opening a Map Selecting Objects

An object's ability to be selected determines whether anything happens when the operator right clicks, left double clicks, or moves the mouse over an object. To be selectable:

figure 4-32 provides an example of an information box that can be displayed by clicking on the devices it relates too.

Figure 4-32. Information Box

CSC/PBFI Advantage: The easily accessible information box shows all the properties of an object.












The zoom level describes how far the operator's view appears from the plane of the map. The zoom can range from 0.0 to 100.0, 0 meaning zoomed out to the maximum level and 100 meaning zoomed in to the maximum level. The zoom level is displayed at the bottom of the map view when the mouse is moved. Keyboard Support (Hot Keys)

The following keyboard functionality, or hot keys as shown in table 4-4, is available when the Map View window has focus:


Table 4-4. Keyboard Support (Hot Keys)

CSC/PBFI Advantage: Hot keys allow the operator to manipulate the map from the keyboard.

Hot Key


'g' or 'G'

Go To Object




Save map (only available if the ENABLE_MAP_EDITING parameter in the INI file is set to 1.)


Zoom in


Zoom out

Number keys

Zoom to a particular level. If one number is typed, the new zoom will be 10 times the number, giving a range of 0-90. If two numbers are typed within a second, the new zoom will be the number typed, in the range from 00-99.

arrow keys

Pan right/left

page up

Pan up by a whole screen

page down

Pan down by a whole screen


Pan left by a whole screen


Pan right by a whole screen Mouse Movement

Moving the mouse will display the cursor position in the current coordinate system and will also display the zoom level in the Operator Interface's (OI) status bar.

Moving the mouse cursor over a selectable object and leaving it there for a second will display a tooltip showing the description of the object, as illustrated in figure 4-33. Whenever the operator sees a tooltip description, the operator should be able to right click on it or left double click on it to perform actions on the object without moving the mouse.


Figure 4-33. Mouse Movement

CSC/PBFI Advantage: Moving the mouse cursor over an object reveals an object description. Left Click

The left click performs an action which is defined by the current Click Mode or Temporary Click Mode (see the subsections below). Examples include panning, zooming in/out, and selecting objects.

When in Select Mode the operator can left click on an object to select it, or create a rectangle (by holding the left mouse button down and moving the mouse) to select more than one object at a time. When the operator uses a rectangle, the rectangle must entirely enclose the object for it to be selected. The operator can see that an object is selected because its color will be inverted.

By default, the left click clears all previous selections; however, the SHIFT and CONTROL keys can be held down in conjunction with the mouse to change this behavior. The SHIFT key adds to the current selection, while the CONTROL key toggles the selection state of all newly selected objects - that is, it selects objects that were not selected and unselects objects that were selected. Once one or more objects have been selected, the operator can perform a right Click (see below) to invoke the multiple-object popup menu. Left Double Click

Left double clicking on a selectable object will invoke the default action of the closest selectable object. It is possible that multiple objects are close together and selectable when the operator left double clicks. The safest way to know which object the operator is double clicking on is to look at the tooltip and double click without moving the mouse. (If the objects are too close together, try zooming in.) Right Click

If more than one object is selectable then a popup menu, shown in figure 4-34, will appear listing the descriptions of all nearby selectable objects (sorted by distance). The operator can then choose one of the objects. Right clicking works from any object in any window.

When one object is chosen (or if only one was selectable in the first place), a popup menu for that object will be displayed and the operator can click on the object's popup menu to act on the object.

If the operator selects one or more objects while in Select Mode, a right click on a selected object (or with the SHIFT or CONTROL key held down) will display a popup menu whose menu items affect all selected objects.


Figure 4-34. Right-Clicking Features

CSC/PBFI Advantage: A pop-up menu allows the operator to perform actions on the selected object. Zoom In / Zoom Out

These toolbar buttons allow the operator to zoom in or zoom out while keeping the center of the view stationary (or as close as possible without exceeding the map boundaries). Click Modes

The Click Mode determines what happens when the operator clicks the left mouse button in the map view. These modes (except for Move Draggable Dynamic Objects) are available on the toolbar. All modes are available from the view pop-up menu. The Click Mode can be one of the following:


Figure 4-35. Select Mode

CSC/PBFI Advantage: A pop-up menu allows actions on all selected objects. Temporary Click Modes

A temporary click mode will override the current click mode for one left click only.

Capture Click Position - This feature cannot be activated directly from the map view. However, another OI module may use a function that allows the operator to click in the view to specify a position. The mouse cursor must be kept fairly still for this feature to work. This restriction allows the operator to pan and zoom normally to get to the position that the operator want to click on. Modules that enable Capture Click Position make it obvious that the next (stationary) click will be captured. View Full Extent

This feature makes the entire map bounding rectangle visible (defined as zoom = 0.0), resizing the map view frame window to be as large as possible within the OI window. Save View

This feature allows the operator to save the current view settings to a view file. It invokes a dialog box in which the operator to specify the name of the saved view e.g. Western 495. By default, this dialog box shows the base name of the map. If the view is saved with this name then it becomes the default view. A default view is automatically loaded whenever a view of the map is opened. If the operator changes the name before saving, the operator must load the view settings manually by selecting Load View (see below).

The following view settings are saved in the view file: Load View

This allows the operator to manually load a saved view file. If only one view has been saved for the map it will load that view. If more than one view has been saved for the map, it will display a dialog box and allow the operator to decide which saved view to load. Open View

This feature opens another view of the same map allowing the user to view multiple screens, as shown in figure 4-36. If a default saved view file exists then it will be used when the new view is opened (see the "Save View" feature for more details). Multiple views can be opened.

 Figure 4-36. Multiple Screen Functionality

CSC/PBFI Advantage: When multiple screens are open functions can be initiated on each. Hold View on Bottom

When this option is checked, the map view frame window is held beneath other non-bottommost windows. This prevents the map window (which is typically large) from obscuring the smaller windows in the application. When this option is unchecked it acts like a normal window. Hide/Show Toolbar

The operator can display or hide the toolbar by clicking on this menu item in the map view popup menu. Edit Layer Settings

This invokes the Layer Settings dialog box that allows the operator to configure the visibility of all layers. Each layer can be set either visible or invisible, and zoom-clipping ranges can be defined where the layer is visible only within a certain zoom range. While the dialog box is open, the view is updated to provide feedback as the operator changes the visibility options. Go To Object

This invokes the Go To Object dialog box which allows the operator to select any object on the map and move the view to look at the object.

To use the Go To Object dialog box:

  1. Select an object layer from the combo box. This will fill the list box with all objects on that layer.
  2. Scroll down the list of objects to select the desired object; alternatively, the operator can search the object IDs or the descriptions for a sequence of characters. When the operator types in the search edit box, the listed objects are reduced to those containing the sequence of characters.
  3. When the operator finds the desired object double click on its ID or select the object and click OK.

Once an object is chosen, the view is zoomed and moved so the object is as close to the center of the view as possible while keeping within the map's bounding rectangle. The GO_TO_ZOOM parameter is the default zoom value. However, the actual zoom value may be adjusted so the view shows the entire bounding rectangle of the object and the zoom is within the layer's visible zoom range (if the layer uses zoom clipping). Zoom clipping is the feature that removes a layer from the view at a particular zoom level, e.g. the residential roads would be removed when zoomed out. If the operator is zoomed in closer than the GO_TO_ZOOM, the view will not automatically be zoomed out to the GO_TO_ZOOM (except to see the entire object's bounding rectangle).

After the view is moved to the new location, the mouse cursor is positioned in the middle of the object. Note-this does not guarantee that the object will be selectable without moving the mouse, especially if the object is large, has holes, or is irregular in shape. Set Background Color

This allows the operator to set the background color of the view. Note that this is a property of the view and not of the map. The background color can be made "default" for all views by changing the background color and then saving the view as the default view. Research indicates that most operators prefer a gray background and thus this was chosen for the prototype. Coordinate System

The operator can choose a coordinate system for the view. The only effect that changing the coordinate system has is that when the mouse is moved the numbers on the OI status bar are displayed differently. Currently the choices are:

The following are available only when the map has a latitude/longitude coordinate system:

For the prototype, latitude/longitude was used as this aligns with the capability to display moving objects using GPS output. However, other scales are sometimes required when maps with imperial units are imported. Map Manipulation

This section describes features which may be invoked from the map view and change the state of the map. Any visible change to the map will cause all views of that map to update. Merge Map

This allows the operator to merge a detailed low-level map into a higher-level map. A typical mergeable map contains a large amount of detail but covers a smaller area, while the high-level map is less detailed over a larger area. A good mergeable map does not contain graphical elements that already exist in the high-level map.

Choosing Merge Map causes a dialog box to be displayed containing the titles of all mergeable background maps defined in the database matching the current map (if there are at least two). Once a mergeable map is chosen (or if there was only one matching map in the database), the detailed map will be merged with the current one and all views will be updated after the merge is complete.

The merged map's layers are placed between the original map's foreground and background, as follows:

The merged map's foreground layers are placed in back of the original map's foreground layers because the merged map will have more detail and will have less importance. The merged map's background layers are placed in front of the original map's background layers because the merged map has more detail and hence will have smaller background features which should be on top of the coarser background.

Mergeable background maps must obey the following rules: Un-Merge Map

This will display a dialog box showing the previously merged maps. Once a map is chosen, all layers that were added by the merge will be removed from memory. Make View's Layer Settings Default

This feature will take the view's current layer settings and set them in the map as the default layer settings. After this is done, all views that are opened on the map will have the same settings (assuming that no default saved view file exists). The map file must be saved in MBF format to make the changes permanent.

Note - This functionality is only available if the ENABLE_MAP_EDITING parameter in the INI file is set to 1. Set Layer Color

This feature allows the operator to change the color of all primitives on a layer of the map. All views will be updated after the change. The map file must be saved to make the changes permanent. This applies to non-dynamic-object layers only. Make Layer Foreground/Background

This feature allows the operator to make the layer a foreground or background layer (layers default to foreground). All foreground layers are always drawn in front of background layers, even if a foreground layer is pushed to the back (see following section). See the Merge Map feature for an explanation of how this affects the merging of maps. Push Layer to Back

This feature allows the operator to push a layer to the back so that it is drawn first and all other layers are drawn on top of it. By pushing all layers of the map to the back in the appropriate order and making the layer foreground/background, the layers can be reordered in any way. All views will be updated after the change. The map file must be saved to make the changes permanent. Rename Layer

This feature allows the operator to rename a layer. The map file must be saved to make the change permanent. Remove Non-Object Layer

This feature allows the operator to select a non-object layer to remove from the map. This removes the layer from memory and therefore is an irreversible change until the map is re-loaded. All views will be updated after the change. The map file must be saved to make the change permanent. Create Static Objects from Layer

This feature allows an administrator to create static objects from primitives in a non-object layer. In this process, the operator selects a layer. Each primitive on the layer is converted into a separate static object and assigned a number. After the objects are created, a new object's default description can be seen via tooltips as with any other object. The map file must be saved to make the changes permanent. Combine Static Objects

This feature allows static objects to be combined. When in Select Mode, the operator can select more than one object and right click on one of them to display a popup menu. When the operator selects the Combine Static Objects from this menu, the operator will be prompted to enter an ID for the new static object. This ID cannot be a duplicate of another static object on the layer, except that it can be the ID of one of the selected objects. The reasoning behind this rule is that no objects with duplicate IDs can be allowed to exist after the new static object is created; this avoids possible ambiguity. Renumber Static Objects On Layer

This feature allows an administrator to renumber static objects on a static object layer. The operator can select a static object layer, and a dialog box is displayed giving instructions. While the dialog box is displayed, the view is in static object renumbering mode. The operator can minimize this dialog box while renumbering the static objects. While in static object renumbering mode, the only selectable objects are static objects on the selected layer.

Each time the operator double clicks on a static object, a dialog box with a default ID (which is incremented by one from the last static object ID the operator entered) is displayed. The operator can change the ID to start a new range of numbers or accept the number to continue the run of numbers. Duplicate IDs are not allowed.

A temporary layer is created for holding all renumbered static objects. When each static object is renumbered it is moved to the temporary layer and its color is changed to gray to indicate that it has been renumbered. Since the renumbered static object is no longer on the original layer, it can't be renumbered again during this session of static object renumbering mode. This helps avoid a problem where two static objects are too close together (or have irregular shapes) making it difficult to select one of them.

When the operator closes the Static Object Renumbering dialog box, the static objects on the temporary layer are merged back into the original layer and the temporary layer is destroyed. The color of all static objects on the layer is changed so that they are uniform. Then the operator can set the color of the layer.

All views will be updated after the changes. The map file must be saved to make the changes permanent. Save Map

This allows the operator to save a map file either in MBF or in DXF (AutoCAD R12) format. Additional Map Features