[ Abstract | About the Editor | About the Interface | Plans | Implementation ]
The editor is used to add paths (representing foot paths or roads) and locations (representing buildings or landmarks) to a base image.
This is a screenshot of the editor in use. The base image is a greatly enlarged version of one of the UCSD campus maps. (The map used inside the editor is designed to be purely functional -- it's notably uglier than a different version of the same map that's used in the interface.) Many of the foot paths in the area have been entered, and you can see them going between locations, crossing each other, etc:
Any base image may be used, so paths may be entered for any area. The only limitations on size manifest themselves in terms of speed. However, we have not encountered any size related speed problems after implementation of certain data storage and loading optimizations.
Data is entered as a series of "paths", which are nothing more than a series of points connected by lines. Each path is independent; they may cross, but nothing special happens when they do.
Building locations are entered as points along the paths. They can either be edited directly in the editor, or loaded from from an external file. Several notable attributes of a location are keywords and aliases. Keywords can be used in the interface to search from a given location to the nearest keyword containing location (e.g. Parking lot or library). Aliases are used as alternative names for a location (e.g. 140 Arbor Drive and Bachman Building). Searches for aliases resolve to the offical name in the interface.
The optimization/data processing aspect of the editor transforms the manipulatable data into a graph in a format optimized for use by the interface.
Here is an example of the merging of paths into a graph.
A single path made up of four points (with a location "Here" attached to one point):
A second path has been added (with a location "There" attached to a point), criss-crossing the first:
The same two paths have been compressed and have been turned into a planar graph: Each place two lines cross, a new point has been created to join the two lines (this can be suppressed when necessary, such as for bridges). The points are now nodes in a graph, connected by lines (vertices). Also, extraneous points that led nowhere were deleted.
The data can now be exported to a format readable by the online interface, which can calculate shortest paths, etc.