CMPS 261 Final Project
Advanced Visualization
University of California, Santa Cruz

Guided Query Answering for Maps

Jeff LeFevre
Department of Computer Science
University of California, Santa Cruz
jlefevre@soe.ucsc.edu



Abstract

This project seeks to visualize map queries in a more useful manner for data discovery. One motivation is sharing heterogeneous scientific data enabling scientists to share data sets and processing methods. Currently this process is very manual, requires general domain knowledge to locate the available data or research groups using similar data, and expert domain knowledge to process the raw data effectively. For this project, we consider Earth Science datasets because point data is geolocated with latitude and longitude, and sometimes elevation as well. The current implementation serves as a proof of concept as I only consider 2D data sets. The goal of this map interface is to discover available data without requiring much domain knowledge about the specific data sets, exactly what is available, or where it is stored. We demonstrate visualization methods that assist the user in making exploratory queries in order to discover the available data points. Our method includes a focus+context presentation wherein we give the exact query answers on the basic map, and project the approximate query answers along the border of the map varying their opacity and size in relation to the "closeness" of the points outside the map boundary. Quantitative evaluation metrics are number of query re-writes to obtain the desired data, and Qualitative evaluation metrics include the userīs impression of how much information is conveyed on a single map query.


Data points may be sparse, and a map query will return all data points that are present within the given map borders. But what about data points just outside the map border? These points are not visible on the current map, and the user has no idea of the data point distribution outside of the displayed map. In order to obtain this context information, the user must change his query by zooming-out on the map to see what lies outside. Then the user may discover other points of interest and choose to zoom back down onto those areas. Alternatively, no points may be displayed, thus requiring the user to zoom out again one or more times to find any other data points of interest. This requires a minimin of one extra query, and depending on the user's interest in discovering more data, possible several more query refinements are required to explore the "nearby" space.

Here we present a visualization method to convey this contextual information about data points that lie outside the map. We consider points that lie within some reasonable distance of the displayed map border. We discuss this reasonable distance in the paper more precisely and offer several possibilities. For this implementation, we consider 1x or 2x the size of the map. This is essentially equivalent to zooming out once or twice. We check this increased boundary size for containment of points, and any points contained within the 1x and 2x boundaries are projected onto a frame we place along the map border.

Our approach is to create a "frame" around the outerboundaries of the map shown. We divide this frame into 2 equal-width sections to create an inner and outer frame border. Within the main map area, we display all the true data points that would normally appear on the map. These points receive the standard inverted teardrop map marker. Within the frame area, we project points that lie just outside of the visible map. Points that lie within our 1x boundary are closest, so we project them onto the inner frame border area. Points that lie within our 2x boundary are slightly farther away, so we project them onto the outr frame border area. Points that we project onto the frame are not actually there, so we represent these as ghost points by using transparent red dots. We decide their location based on a polyline computed from the centroid of the map to the point being considered. The intersection of this polyline with the frame border determines the placement position of the ghost point on the frame. Points farther away are given a higher transparency, and points closer are given are more opaque. We vary the alpha value from 15-50 to achieve the desired transparency scaling.

The goal of projecting the nearby points onto the frame is to give the user some larger context to the displayed information. Points within this larger points are shown as transparent ghost points along the frame border. This border information can then be used to help guide the user toward more query answers, and allow him to more efficiently explore the nearby map space.

This project is currently implemented using the Google Maps API. For this sample data here, we generate random points to display, centered near Southern California. The frame is currently not redrawn during zoom out, in order to see the points farther away in relation to how far outside the frame borders they actually lie. The frame will of course be redrawn in the final implementation.


frame with 5 percent width
Border frame consuming 10 percent of full map,
inner frame and outer frame boundaries shown
frame with 5 percent width
Border frame consuming 5 percent of full map,
inner frame and outer frame boundaries shown
frame with dark border
Border frame consuming 5 percent of full map,
Darkerned inner frame and outer frame boundaries shown.
The darker frame attempts to obscure the underlying map
map example with 'ghost points' points projected onto the frame.
Map example with 'ghost points' points projected onto the frame.
The ghost points represent points that lie just outside the current map.
The ghost points help give context to the true points displayed and allow
the user to explore the nearby space more effectively by guiding him to other relavant data points.

This map version is available here. Refreshing will randomly redraw the points. You can zoom out to see the points outside the frame border. The projected position currently has a bug, so you will notice they are not positioned in the correct place on the frame. The current working version being debugged is available here.