Scenic GPS

Scenic routing and exploration for the iPhone and iPad

Jack Reilly & Dan Lynch

Course: CS 294, a mobile development graduate course

Professor: Eric Brewer

Scenic Routes

We have developed a system that can be used to present scenic options for routes that users choose.

The server will generate scenic routes (or detours) based on not only dynamically generated content, but from our database of highly scenic destinations or points of interest. The project utilizes routing from Google Maps.

annote.png -

Location-based services are becoming more relevant as millions of people now have iPhones and other devices with GPS systems. This application aims to help people use technology to get out and explore the real world.

view.png -


The Geohash Algorithm

The geohash is a single dimensional representation of a two-dimensional coordinate.

Coalescing Icons

We use a geohashing data structure to implement dynamic clustering of icons nodes for scenic content on the map. This enables a more coherent visual interface.

Spatial Queries

To gather the most relevant and closest scenic content, the geohash of the content is compared with the bounds of the user's route.

Mobile Device Sensing

Orientation-aware mapping

The map dynamically updates to match the user's heading (direction) to provide a more immersive exploration experience. This provides consistency in location and orientation between the map on the device and the real world.

Geo-orientation-tagged content

User-contributed photos and videos are tagged with the location and orientation. This stored data can enable many future applications such as augmented reality and inferred places and scenes.


Multiple Routes

routes.png -

Users can choose multiple routes between an origin and a destination based on the scenic content near the different routes.


Scenic waypoints can be added along the route by exploring the scenic content and adding the specific points of interest.

User-contributed Content

Remember Your Trip

A user can contribute scenic content with their own videos and picture that they took along the trip. Other users may rate this content and even route to it on their trip.

Embedded Trip Metadata

Trip metadata is stored to help users recall very specific memories of their trip. Attributes such as date, comments, titles, and the route taken are stored.

Web Interface


Tight integration between the mobile app and the web interface with an agnostic server back-end.

User Interface

webui.png -

Rich visualization with content browsing, map exploration, and access to ratings of user-contributed content.

shadow.png -


Implementation of the system integrated various technologies: Objective-C, JSON, Django, Python, MySQL, Google Maps API.

Core Data Objects

Scenic content queried from the network are converted using the NSCoding protocol and stored as objects locally in the iPhone's native database for later access.

Unshared trips are only stored locally, to remember private trips, withought any network access.

JSON Protocol

Communication with the network is executed using JSON for our protocol. Objects are converted into Objective-C objects.