app.HomeView = Backbone.View.extend({
  className: 'homeView',

  template: _.template($('#tmpl-home-view').html()),

  events: {
    'click .homeStartButton': 'createMap',
    'keydown': 'captureEnter',
  },

  render: function() {
    this.$el.html(this.template({}));    
    return this;
  },

  createMap: function() {
    var city = $('.homeCity').html();
    if (!city) return;

    var geocodeUrl = 'http://nominatim.openstreetmap.org/search?format=json&q=';
    geocodeUrl += encodeURI(city);

    // TODO: Add a progress bar, so you know we're waiting for a server
    // response from the geocoding service

    $.get(geocodeUrl, function(response) {

      // TODO: Check for empty responses, and throw up an error

      var best = response[0];
      var center = [best.lat, best.lon];

      var newMap = new app.Map({
        name: city,
        center: center,
        zoomLevel: 14,
      });

      var viewMap = function(model) {
        app.router.navigate('map/' + model.id, { trigger: true });
      };

      newMap.save({}, { success: viewMap });
    });
  },

  captureEnter: function (event) {
    if (event.which === 13) {
      event.stopPropagation();
      event.preventDefault();
      this.createMap();
    }
  }
});

@@ -387,20 +387,54 @@
     
-var geocodeU
+// Use the Google Maps Geocoding API%0A    var u
 rl =
@@ -443,323 +443,595 @@
 http
+s
 ://
-nominatim.openstreetmap.org/search?format=json&q=';
+maps.googleapis.com/maps/api/geocode/json?address=' +
 %0A    
-geo
+en
 codeU
-rl += encodeURI(city);%0A%0A    // TODO: Add a progress bar, so you know we're waiting for a server%0A    // response from the geocoding service%0A%0A    $.get(geocodeUrl, function(response) %7B%0A%0A      // TODO: Check for empty responses, and throw up an error%0A
+RI(city) + '&sensor=false&key=AIzaSyCcgZLlBTM4GY0RhkUjy4MDD9RaZ0zIoiY';%0A%0A    $.get(url, function(response) %7B%0A      if (response.results.length === 0) %7B%0A        console.log('Unable to geocode city. Womp Womp.');%0A        // TODO: Throw up an error in the UI%0A      %7D%0A%0A      // Get the coordinates for the center of the city%0A      var latlng = response.results%5B0%5D.geometry.location;%0A      var center = %5Blatlng.lat, latlng.lng%5D;%0A%0A      // Get the city's name. In google maps this is called 'locality'%0A      var name = city;
 %0A   
@@ -1037,20 +1037,26 @@
     var 
-best
+components
  = respo
@@ -1062,53 +1062,227 @@
 onse
-%5B0%5D;%0A      var center = %5Bbest.lat, best.lon%5D;
+.results%5B0%5D.address_components;%0A      for (var i = 0; i %3C components.length; i++) %7B%0A        if (_.contains(components%5Bi%5D.types, 'locality')) %7B%0A          name = components%5Bi%5D.long_name;%0A          break;%0A        %7D%0A      %7D
 %0A%0A  
@@ -1326,20 +1326,20 @@
   name: 
-city
+name
 ,%0A      

Switch to Google Geocoding. So much faster.