GEOG 863
GIS Mashups for Geospatial Professionals

GEOG 863 Syllabus


This syllabus is divided into several sections. You can read it sequentially by scrolling down the length of the document or by clicking on any of the links below to "jump" to a specific section. Please read the entire document as well as material covered in Lesson 0.


Jim Detwiler
E-mail: Please use Canvas' e-mail client (Canvas Inbox)
Office hours: By appointment

Return to top of page.

Course Overview

GEOG 863: GIS Mashups  for Geospatial Professionals. Cultivates a working knowledge of how geospatial professionals can develop web-mapping applications that bring together data from multiple sources.
Prerequisites: GEOG 485 or equivalent programming experience

In the context of information technology, the term "mashup" refers to a web application that combines content from multiple sources into a whole that is greater than its parts. A GIS mashup is one in which at least a portion of the content is geographic in nature and in which information is typically conveyed through a map. For example, tabular crime data published on a city's website can be combined with base data layers such as municipal boundaries and roads to produce a map that is valuable for both the city's police department and its citizens. GIS vendors have offered web mapping software products for many years. However, several companies offer free application programming interfaces (APIs), which make it easier and more affordable to publish online maps. These APIs provide a set of base layers upon which the map developer can overlay his/her own geocoded data. These data may be stored in files on the developer's own server or they may be obtained dynamically through public web services or by parsing data embedded within other web pages. This course demonstrates how GIS mashups can be created using the Google Maps API and Esri's JavaScript API.

The course is 10 weeks in length and requires a minimum of 10-12 hours of student activity each week.

What will be expected of you?

Like any graduate level course, you will be challenged to move beyond the knowledge and skills that you bring to the class. However, you'll be glad to know that you don't have to show up for class at a certain time! All you need to do is complete your assignments before the published deadlines. Some of the assignments are one week in length, while others are two.

During the term, I encourage everyone to use the class discussion forums, chat rooms or e-mail to help each other find relevant materials and learn about interesting applications of mashups. I can always be contacted via class e-mail and will check my account daily during the week (and typically at least once each weekend). If I am traveling, I may check somewhat less frequently, but I will alert you of this beforehand.

My colleagues and I have worked hard to make this the most effective and convenient educational experience possible. How much and how well you learn is ultimately up to you. You will succeed if you are diligent about keeping up with the class schedule, and if you take advantage of opportunities to communicate with me, as well as with your fellow students.

For a more detailed look at what will be covered in each lesson, as well as due dates for our assignments and activities, please refer to the semester-specific course schedule that is part of this syllabus (see "Course Schedule").

Course Objectives

GEOG 863 will provide students with an understanding of the technology that makes building mashups possible and teaches them how to build their own mashups.

At the successful completion of this course, students should be able to:

  • add their own data on top of Google and ArcGIS Online basemaps;
  • construct mapping applications without programming using Esri technologies;
  • discuss the advantages/disadvantages of current commercial, open-source and public Application Programming Interface (API) web mapping technologies;
  • understand the basic rules/terminology of Hypertext Transfer Markup Language (HTML);
  • author a simple web page containing paragraphs, lists, tables, images and links without the aid of an HTML editor;
  • describe notation schemes that are not handled well by HTML;
  • explain the need for and uses of eXtensible Markup Language (XML);
  • describe the advantages of authoring web pages using eXtensible HTML (XHTML) and its syntax differences from HTML;
  • describe the benefits of using Cascading Style Sheet (CSS) technology;
  • author a simple web page using XHTML and CSS;
  • use the Google Maps website to locate places by various search methods;
  • manually construct a URL that will load a desired Google Map;
  • insert JavaScript into a web page;
  • understand the basics of the HTML Document Object Model (DOM);
  • use JavaScript and the Google Maps API to add a custom map to a web page;
  • set the initial extent parameters of a custom map;
  • obtain information on how to work with objects defined in the API through the API Reference;
  • add markers (points) to a map;
  • cite examples of well-known mashups;
  • add map type controls (e.g., Satellite and Hybrid), map navigation controls and a scale bar control to a Google map;
  • add event handling code that produces custom behavior when certain events are triggered by the user (e.g., opening a callout window when a marker is clicked);
  • display map markers using icons that have been created and published by others;
  • understand the process involved in creating an icon and shadow image that can be used for displaying map markers;
  • work with JavaScript arrays to add lines and polygons to a map;
  • use GIS software to obtain the latitude/longitude coordinates of points to be displayed on a Google map;
  • add a sidebar that lists selected attribute information about the points on the map;
  • explain how the Ajax programming technique produces more responsive web applications;
  • understand how server-side scripting can be used to read data from a DBMS and package the data so it can be consumed by JavaScript;
  • explain how web scraping can be used to incorporate data into a mashup;
  • produce maps using Esri's JavaScript API that are similar to the Google Maps examples from earlier in the course;
  • explain the difference between tiled and dynamic map services;
  • find and consume ArcGIS Server-authored map services in a mashup;
  • work with the Dojo and jQuery JavaScript frameworks;
  • manipulate Esri FeatureLayer objects;

Required Course Materials

In order to take this course, you need to have the required course materials and an active Penn State Access Account user ID and password (used to access the online course resources). All materials needed for this course are presented online through our course website and in Canvas. In order to access the online materials, you need to have an active Penn State Access Account user ID and password (used to access the online course resources). If you have any questions about obtaining or activating your Penn State Access Account, please contact the Outreach Helpdesk.

You do not need to purchase any materials for this course, however, the following books may be useful as references:

  • Beginning Google Maps API 3 by Gabriel Svennerberg (ISBN: 978-1-4302-2802-8)
  • JavaScript and AJAX for the Web, 6th Ed. by Tom Negrino and Dori Smith (ISBN: 0321430328)

Using the Library

Just like on-campus students, as a Penn State student you have a wealth of library resources available to you!

As a user of Penn State Libraries, you can...

  • search for journal articles (many are even immediately available in full-text)
  • request articles that aren't available in full-text and have them delivered electronically
  • borrow books and other materials and have them delivered to your doorstep
  • access materials that your instructor has put on Electronic Reserve
  • talk to reference librarians in real time using chat, phone, and e-mail
  • ...and much more!

Assignments and Grading

Students earn grades that reflect the extent to which they achieve the learning objectives listed above. Opportunities to demonstrate learning include the following, and grades will be based on points assigned to each of several components of the course as follows:

  • 7 Individual Projects - 70% of course grade:
    Each lesson concludes with a hands-on project to be completed individually by the student. See the Course Schedule for project due dates. In addition to producing solutions to the programming scenarios presented, you will also be required to publish a short write-up of what you learned to your personal website.
  • 5 Lesson Quizzes - 20% of course grade:
    A quiz will be held at the end of each lesson to test the student's comprehension of class materials and other reading as required.
  • Review Quiz - 10% of course grade:
    A 20-question review quiz at the end of the course will cover all of the course material.


Course grades are awarded on the following basis :

Grade Assignments
A 90-100%
A- 87.5-89.9%
B+ 85-87.4%
B 80-84.9%
B- 77.5-79.9%
C+ 75-77.4%
C 70-74.9%
D 60-69.9%
F <60%
W Withdrew


Students need to earn at least a "C" grade in all four courses to be eligible for one of our Post baccalaureate Certificates. Only credits associated with a grade of "B" or higher may be counted toward the MGIS degree.

GEOG 863 Course Schedule

imagePrintable Schedule

Below, you will find a summary of the learning activities for this course and the associated time frames. We will use the Calendar in Canvas to post assignments, due dates, etc. Please refer to that information in order to keep on top of things! Specific details for each project can be found in each lesson. If the need arises and changes to this syllabus are required, all students will be notified in advance.

Lesson 1: Creating Mapping Apps Without Programming
Date: Week 1
Topics: Google My Maps, ArcGIS Online, Esri configurable apps, Web AppBuilder
Readings: Lesson Material
  • Complete Project 1.
  • In the Lesson 1 Discussion Forum, post a link to the app you created.  Include a short reflection on what you learned from Lesson 1.
  • Take the Lesson 1 quiz.


Lesson 2: Web Publishing Technologies: HTML/XHTML/CSS
Date: Weeks 2-3
Readings: Lesson Material
  • Complete Project 2.
  • In your course portfolio, publish an XHTML page that replicates the formatting of the document assigned to you. Include a short report that summarizes what you learned from Lesson 2.
  • Take the Lesson 2 quiz.


Lesson 3: Introduction to the Google Maps API
Date: Week 4
Topics: Google Maps, the Google Maps API Reference, the Google Maps Hello World page, JavaScript basics, the Document Object Model (DOM), adding marker overlays
Readings: Lesson Material
  • Complete Project 3.
  • In your course portfolio, publish a page that includes a map of your hometown. Include a short report that summarizes what you learned from Lesson 3.
  • Find a GIS mashup that catches your eye and write a short review of it in the Lesson 3 Discussion Forum.
  • Take the Lesson 3 quiz.


Lesson 4: Adding Basic Functionality to a Google Map
Date: Week 5
Topics: Modifying UI elements, basemap styling, handling clicks on markers, custom marker icons, adding lines and polygons, debugging
Readings: Lesson Material
  • Complete Project 4.
  • In your course portfolio, publish a page that includes a map of the cities that are candidates for Jen and Barry's ice cream business. Also, include a short report that summarizes what you learned from Lesson 4.
  • Take the Lesson 4 quiz.


Lesson 5: Reading Data From Various Data Sources
Date: Week 6
Topics: Adding data in shapefiles, KML, Fusion Tables; adding tabular data alongside the map
Readings: Lesson Material
  • Complete Project 5.
  • In your course portfolio, publish a page that includes a map of the locations stored in your selected data source. Also, include a short report that summarizes what you learned from Lesson 5.
  • Take the Lesson 5 quiz.


Lesson 6: Using the ArcGIS API for JavaScript
Date: Weeks 7-8
Topics: Esri's JS API Hello World page, Esri JS API documentation, working with the GraphicsLayer, setting the map extent, event handling, consuming ArcGIS Server services, FeatureLayers, Dojo
Readings: Lesson Material
  • Complete Project 6.
  • In your course portfolio, publish a page that includes a map that meets the requirements of the scenario assigned to you.  Include a short report that summarizes what you learned from Lesson 6.
  • Take the Lesson 6 quiz.


Lesson 7: Advanced Topics
Date: Weeks 9-10
Topics: The jQuery EasyUI framework, getting user input from jQuery widgets, Esri QueryTasks
Readings: Lesson Material
  • In your course portfolio, publish the map that you selected for Project 7. Include a short report that summarizes what you learned from Lesson 7.
  • Take the Lesson 7 quiz and the Review Quiz.


Course Policies

Late Policy

Late projects are automatically marked down 10 percent (regardless of how late they're submitted). Hopefully, this will encourage you to stay on track, but not penalize you too harshly should you fall behind.