Robert  Bennett

Bus Distance Map

A programming project focused on helping bus users discover convenient places to travel.

  • Created Autumn 2018
  • By Robert Bennett
  • For HCDE 310 Interactive Systems Design and Technology

Introduction

I created Bus Distance Map in HCDE 310, a ten-week class focused heavily on the technical aspects of creating an interactive web application using the Python programming language, Google App Engine, and REST APIs.

In addition to the final project for the class requiring the use of a Python backend, REST APIs, and Google App Engine as a hosting platform, requirements stipulated that the application provide a useful output to end users.

Idea Formation

As the class was focused on the development of technical skills and allocated no time for user research, I based the idea for the project off a need I personally encountered when I moved to Seattle and began using the bus system.

While I was first trying to explore the surrounding area, I found that using current mapping tools it was easy to see how long it would take to travel by bus between two given points. What was less simple was viewing all the general areas I could travel to by bus within a short amount of time.

Using this need I had discovered combined with my preexisting knowledge of the Google Maps Distance Matrix API, I came up with the idea of creating a map that would easily show where a user could quickly travel to by bus.

Methods

To accomplish my goal of creating a bus distance map, I used a Python backend to query a grid of latitude and longitude points using the Google Maps Distance Matrix API, which returns the time it would take for a user to travel from their location to each point by bus.

Using this data, I then used the Python module Jinja to return JavaScript with the points mapped in a heatmap using the Google Maps JavaScript API.

The final API I used, the Google Maps Geocoding API, was used to convert typed street addresses entered by users into latitude and longitude points which could then be used for the calculations.

Final Result

The final application allows a user to enter a start location, either by typing an address or using the "Get Current Location" button, which then serves as the center of the grid.

After submitting the start location, the user is then presented with a heatmap where all locations the user can travel to by bus within 15 minutes are shaded.

Locations which are the quickest to get to are shaded in green, with locations that will take longer shaded in yellow and then red as the travel time approaches the 15-minute mark.

Reflection

By creating Bus Distance Map, I learned a solid foundation in Python, a few different REST APIs in depth, and the basics of Google App Engine.

More importantly, however, I learned more about development and the way applications interact with both each other and end users. Although I already knew the fundamental concepts of APIs and backend web processing before completing the project, I now have hands-on experience in both which will allow me to better communicate with developers in the future.