Google Maps Applications Training Course

Training » All Courses » Google » Google Maps Applications

Course Summary

Building Google Maps Applications with Rails and Ajax training course teaches students how to integrate mapping features into their Rails-driven web applications.

First, students will make a map, add some custom pins, and geocode a set of data using freely available services. After that the course gets into more map development topics, like building a usable interface, dealing with extremely large groups of points, and finding sources of raw information.

Finally the course dives into advanced topics: building custom map overlays such as your own info window and tooltip, creating your own map tiles and projections, using the spherical equations necessary to calculate surface areas on the earth, and building your own geocoder from scratch.

[top] Duration

3 days.

[top] Objectives

During the course, students are going to move from simple tasks involving markers and geocoding to more advanced topics, such as how to acquire data, present many data points, and provide a useful and attractive user interface.

[top] Prerequisites

Students should be familiar with basic HTML and CSS, and have some programming experience.

[top] Outline

Google Maps and Rails

  • KML: Your First Map
  • Wayfaring: Your Second Map
    • Adding the First Point
    • Adding the Flight Route
    • Adding the Destination Point
    • Adding a Driving Route
  • Got Rails?

Getting Started

  • On JavaScript, Helpers, and Plug-ins
  • Creating Your Rails Application
  • The First Map
    • Keying Up
    • Examining the Sample Map
    • Specifying a New Location
    • Separating Code from Content
    • Cleaning Up
  • Basic User Interaction
    • Using Map Control Widgets
    • Creating Markers
    • Detecting Marker Clicks
    • Opening the Info Window
  • A List of Points
    • Using Arrays and Objects
    • Iterating

Interacting with the User and the Server

  • Adding Interactivity
  • Going on a Treasure Hunt
  • Reviewing Application Structure
  • Building on Your Application
    • Creating a New Controller
    • Creating a Marker Model and Migration
    • Creating the Database, Connecting via Rails, and Running the Migration
    • Creating the Map View
  • Creating the Map and Marking Points
  • Listening to User Events
  • Asking for More Information with an Info Window
    • Creating an Info Window on the Map
    • Embedding a Form into the Info Window
    • Avoiding an Ambiguous State
    • Controlling the Info Window Size
  • Implementing Ajax
    • Google's GXmlHttp vs. Prototype's Ajax.Request
    • Using Google's Ajax Object
    • Saving Data with GXmlHttp
    • Parsing the JSON Structure
  • Retrieving Markers from the Server
  • Adding Some Flair
  • Ajax with Prototype

Geocoding Addresses

  • Preparing the Address Data
    • Creating the Model
    • Adding a full_address Method
    • Populating the Table
  • Using Geocoding Web Services
    • Requirements for Consuming Geocoding Services
    • The Google Maps API Geocoder
    • The Google JavaScript Geocoder
    • The Yahoo Geocoding API
    • Geocoder.us
    • Geocoder.ca
    • Services for Geocoding Addresses Outside Google's Coverage
  • Persisting Lookups
  • Building a Store Location Map

Manipulating Third-Party Data

  • Using Downloadable Text Files
    • Downloading the Database
    • Working with Files
    • Correlating and Importing the Data
    • Using Your New Database Schema
  • Screen Scraping
    • Our Scraping Tool: scrAPI
    • Screen Scraping Considerations

Improving the User Interface

  • CSS: A Touch of Style
    • Maximizing Your Map
    • Adding Hovering Toolbars
    • Creating Collapsible Side Panels
  • Scripted Style
    • Switching Up the Body Classes
    • Resizing with the Power of JavaScript
    • Populating the Side Panel
    • Getting Side Panel Feedback
  • Data Point Filtering
  • RJS and Draggable Toolbars
    • RJS Templates and Partials
    • Draggable Toolbars

Optimizing and Scaling for Large Data Sets

  • Understanding the Limitations
  • Streamlining Server-Client Communications
  • Optimizing Server-Side Processing
    • Server-Side Boundary Method
    • Server-Side Common-Point Method
    • Server-Side Clustering
    • Custom Detail Overlay Method
    • Custom Tile Method
  • Optimizing the Client-Side User Experience
    • Client-Side Boundary Method
    • Client-Side Closest-to-a-Common-Point Method
    • Client-Side Clustering
    • Further Client-Side Optimizations

What's Next for the Google Maps API?

  • Driving Directions
  • Integrated Google Services
  • KML Data
  • More Data Layers
  • Beyond the Enterprise
  • Interface Improvements

Advanced Tips and Tricks

  • Debugging Maps
  • Interacting with the Map from the API
    • Helping You Find Your Place
    • Force Triggering Events with GEvent
    • Creating Your Own Events
  • Creating Map Objects with GOverlay
    • Choosing the Pane for the Overlay
    • Creating a Quick Tool Tip Overlay
  • Creating Custom Controls
    • Creating the Control Object
    • Creating the Container
    • Positioning the Container
    • Using the Control
  • Adding Tabs to Info Windows
    • Creating a Tabbed Info Window
    • Gathering Info Window Information and Changing Tabs
  • Creating a Custom Info Window
    • Creating the Overlay Object and Containers
    • Drawing a LittleInfoWindow
  • Implementing Your Own Map Type, Tiles, and Projection
    • GMapType: Gluing It Together
    • GProjection: Locating Where Things Are
    • GTileLayer: Viewing Images
    • The Blue Marble Map: Putting It All Together

YM4R

  • What YM4R is
  • Google Maps (YM4R/GM)
  • Mapstraction (YM4R/Mapstraction)
  • Yahoo! Maps Building Block APIs
  • Tools to generate tiles for custom Google Maps

Advanced Geocoding Topics

  • Where Does the Data Come From?
    • Sample Data from Government Sources
    • Sources of Raw GIS Data
  • Geocoding Based on Postal Codes
  • Using the TIGER/Line Data
    • Understanding and Defining the Data
    • Parsing and Importing the Data
    • Building a Geocoding Service

[top] Additional Notes

Beginning Google Maps Applications with Rails and AjaxThe author of this course is Andre Lewis. Andre is the author of Beginning Google Maps Applications with Rails and Ajax: From Novice to Professional, the first book to introduce the service from a developer perspective, showing you how you can integrate mapping features into your Rails-driven web applications.

He has been working with technology for the last nine years. He also runs hotspotr.com, a community-driven site for WiFi cafes.