A3-FloraineGrabler
From CS294-10 Visualization Fa08
Contents |
Data Set
For this project I am using a complete geometric model of San Francisco in lat/lon coordinates, including 3D building geometry with textures as well as roads geometry. The system also includes a ground plane image that segments the city into waterways, parks and ground.
Goal
The goal of my interface will be to visualize the most relevant streets to a particular tourist given his interests (e.g. shopping, restaurants, etc.). This interface is an extension to an existing system described in the paper Automatic Generation of Tourist Maps [1]. Knowing what are the most interesting streets for a particular person allows me to automatically create street visualizations like the one below, where the interesting buildings are emphasized and labeled. This application might be useful for a person that would like to visit a new place and in addition to having an overall tourist map, also wants detailed street views of the streets he cares about most. These street views are effective visualizations since they show the facades of buildings along the street so that a person could recognize them when walking along the street and, in a addition, provides some supplementary information such as the labels here (or potentially a full description of the building).
Figure 1: Street View of the Market Street in San Francisco.
Storyboard
In the current interface, a person can select landmark categories he is interested in:
and the system then returns a map that highlights the interesting landmarks in red. The more saturated the red is, the more relevant this landmark is to the user. Gray buildings aren't relevant to the user given his categories.
Starting from there, the user can tell the system (by using a button) to compute the relevance of each street. This computation is done by simply accumulating the relevance of each building along the street. The system then returns an ordered list of the most relevant streets. The user can tell the system to render a particular street in that list (by specifying its position/number in the list) and the system shows only the buildings along that street and filters out all other buildings. From there a user can create a rendering such as the one in Figure 1.
Here is a summary of the steps:
1. The user tells the system to compute the street relevance
2. The system returns an ordered list of streets according to their relevance
3. The user indicates the street to render.
Implementation
I implemented the application in C++.
My interface is very close to the description. A person tells the system to compute interesting streets. Here it returns a list of the 9 most relevant streets. The user specifies the street to render, in this case Columbus Ave and the system produces rendering shown in the 2nd image.
From there, the user can easily select another street to render, for example Stockton St (number 2):
I added one button to the interface that gets a user back to the original rendering of all the buildings.
I roughly spend three hours implementing this application, the hardest part was to figure out where to insert the new code in the existing system.







