GEOG 585
Open Web Mapping

Syllabus Spring 2017


The following syllabus applies to the Spring-2 2017 offering of GEOG 585 (Last updated February 13, 2017).

GEOG 585: Open Web Mapping.

Design, development, and implementation of web mapping applications using OGC standards and open source software.
Prerequisites: GEOG 485 GIS Programming and Automation


Dr. Jan Oliver Wallgrün: Instructor, John A. Dutton e-Education Institute, College of Earth and Mineral Sciences, is the lead instructor for GEOG 585.

  • Course e-mail: Registered students please contact me using Canvas e-mail.
  • Personal e-mail: Prospective students and others can contact me at Feel free to also use this e-mail address if Canvas is down.
  • Availability: I check e-mail each weekday (unless otherwise noted in advance) and am available for a live chat on an appointment basis.

Course Overview

Geography 585: Open Web Mapping is a 10-week online course that gives you experience with sharing geographic information on the Internet using free and open source software (FOSS) and open specifications. It is an elective course in Penn State's online geospatial education programs, including the Master of Geographic Information Systems.

The two main purposes of Geog 585 are to help you understand the importance of web services and to give you some experience making web maps with FOSS and open standards. You could certainly implement web services using proprietary software, too; however, the cost of a proprietary GIS server package makes FOSS an attractive area of study for basic web mapping tasks.

The purpose of Geog 585 is not to promote FOSS over proprietary software, or vice versa (you could find plenty of materials on the Internet debating this subject); however, Geog 585 should familiarize you with the capabilities and shortfalls of the current FOSS landscape to the point that you can make an informed decision about how to use FOSS in your own web mapping tasks.

The set of FOSS and open data sources you will be exposed to in Geog 585 includes QGIS, GDAL, GeoServer, GeoWebCache, TileMill, OpenStreetMap, and OpenLayers. You will also learn about open data standards such as GeoJSON, KML, and OGC web service specifications.


This course requires you to do some programming with JavaScript and the OpenLayers API. You don’t have to know anything about OpenLayers yet, but it is required that you have:

  • enough formal experience with writing computer programs or scripts that you are comfortable identifying and using fundamental constructs such as variables, loops, decision structures, error handling, objects, and so forth. A B grade or above in Geog 485 satisfies this prerequisite. Exceptions require equivalent programming experience and instructor approval.
  • Enough experience with JavaScript that you are able to easily identify the above constructs when you see them in a piece of JavaScript code. A B grade or above in Geog 863 satisfies this prerequisite, or you can do your own preparation using the W3Schools JavaScript tutorial.
  • Enough experience with HTML and CSS that you are easily able to view and interpret the basic elements of page markup, such as the head, body, script tags, and so forth. Geog 863 satisfies this prerequisite, or you can do your own preparation using the W3Schools HTML tutorial.

Required Course Materials

There is no required textbook for this course. You will be required to complete various online readings.

If you will not have a consistently available Internet connection available during this course, please contact the instructor prior to beginning.

Assignments and Grading

Geog 585 has nine lessons. Each of them is one week in length. The tenth week of the course is reserved for you to work on your term project (described further below). On most weeks, you will see:

  • conceptual lesson materials
  • a walkthrough that takes you through a new piece of software or functionality step by step
  • an assignment that typically expects you to apply what you learned in the walkthrough. Be aware that some assignments have multiple parts, and some weeks’ assignments are worth more than others’.

The walkthroughs and assignments in Geog 585 require a significant time commitment to complete and often involve installing or using new software. Please start working on the lesson at the beginning of the week to allow for completing a high-quality deliverable on time and any troubleshooting that might be necessary along the way.


Quizzes are administered throughout the course to test your knowledge of the material and your ability to think and reason independently about the concepts presented.

Term project

During the course, you will work on a term project that synthesizes the skills that you gain throughout the lessons. Many of the weekly assignments are directly related to building your term project;, in other words, you can use your term project data in the weekly assignments, and some pieces of your weekly assignment deliverables may appear in your term project deliverables. The final week of the course is set aside for full-time work on your term project.


Deliverables are weighted in the following fashion to obtain your grade:

  • Weekly assignments – 50%
  • Quizzes – 20%
  • Term project – 30%

Letter grades will be based on the following percentages:

Letter grades and percentages
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%
X Unsatisfactory (student did not participate)

Percentages refer to the proportion of all possible points earned by the student after the above weights have been applied.

Late work
Any assignment not submitted by the due date on the course calendar in Canvas shall incur a 10% deduction in grade prior to any other deduction made by the instructor when grading the assignment. An additional 10% will be deducted for each additional week late. The instructor may choose to modify or waive these penalties under exceptional circumstances (such as severe health issues).

GEOG 585 Course Schedule

image Printable Schedule

Weekly assignments (for weeks 1-9) and quizzes (in weeks 3, 6, and 9) are always due at the end of each week by Wednesday, 23:59h in your local time zone. In addition, a brief term project proposal document needs to be submitted at the end of week 2. In week 10, a video demonstrating your term project needs to be submitted by the end of Sunday; the remaining term project deliverables (report and reviews of two other students' video) are due by the end of Wednesday (last day of class).

Week 0: Orientation
Date: Week 0
  • Comprehend the structure of GEOG 585.
  • Know how to use the course management system.
  • Read the course syllabus.
  • Complete the W3CSchools JavaScript and HTML tutorials (if needed).
Readings: Orientation lesson pages
Assignments: Introduce yourself to the rest of the class.
Lesson 1: FOSS and its use in web mapping
Date: Week 1
  • Describe the roles of clients, servers, and requests and how they contribute to web service communication patterns.
  • Identify benefits and challenges to FOSS and how they should be weighed when choosing a software platform.
  • List common FOSS solutions for general computing and GIS and discuss how you have seen these used in the “real world.”
  • Recognize when and how FOSS might be used in a “hybrid” model with elements of proprietary software.
  • Add and symbolize GIS data in QGIS.
Readings: Lesson 1 online materials
  • Walkthrough: Installing and exploring QGIS.
  • Responding to FOSS.
Lesson 2: Designing web services and web maps
Date: Week 2
  • Identify the pieces of hardware and software architecture used in web mapping and describe the role played by each.
  • Recognize the roles of basemaps and thematic layers in a web map, and identify examples of each.
  • Critique the layer construction and architecture of a web map.
  • Log into the GeoServer administrator page and preview layers.
Readings: Lesson 2 online materials
  • Walkthrough: Setting up GeoServer.
  • Analyze two web maps.
  • Term project proposal.
Lesson 3: Storing and processing spatial data with FOSS
Date: Week 3
  • List common open file and database formats for spatial data and give appropriate uses for each.
  • Recognize the advantages of various data storage architectures and formats.
  • Process (clip and project) GIS data using QGIS and GDAL, and describe when it would be appropriate to use each.
  • Experiment with a new GDAL function and use the documentation to learn how to invoke it.
Readings: Lesson 3 online materials
  • Walkthrough: Clipping and projecting vector data with QGIS and OGR.
  • Walkthrough: Processing raster data with QGIS and GDAL.
  • Prepare term project data and experiment with GDAL utility.
  • Quiz 1.
Lesson 4: Drawing and querying maps on the server with WMS
Date: Week 4
  • Identify the pros and cons to using a dynamically drawn web map service (as opposed to a tiled service).
  • Recognize the role of OGC in defining open geospatial web service specifications.
  • Learn about the main geospatial web service standards (OGC's W*S specifications, REST).
  • List the basic functions of a WMS and describe how and why each would be invoked.
  • Expose GIS datasets as a WMS using GeoServer.
  • Use SLDs to define layer styling in a WMS. Create the SLDs using code and using the GUI environment of QGIS.
  • Identify and critique a WMS used on a public-facing website.
Readings: Lesson 4 online materials
  • Walkthrough: Serving and styling a WMS with GeoServer.
  • Walkthrough: Advanced styling and group layers with WMS.
  • Review a WMS and serve some of your term project data as a WMS.
Lesson 5: Building tiled maps with FOSS
Date: Week 5
  • Describe the advantages of tiled web maps and identify when it is appropriate to use them.
  • Recognize strategies and techniques for creating and updating large tiled web maps.
  • Create tiles for a WMS using GeoWebCache.
  • Use best practices in multiscale map design to create a tiled basemap using TileMill.
  • Discuss hosting options for tiled maps. Unpack and upload your tiled map to your own web space (on PASS).
Readings: Lesson 5 online materials
  • Walkthrough: Creating tiles with GeoServer using GeoWebCache.
  • Walkthrough: Creating tiles with Mapnik using TileMill.
  • Examine tiled maps, then build your own.
Lesson 6: Putting layers together with a web mapping API
Date: Week 6
  • Identify commonly-used web mapping APIs (both proprietary and FOSS) for realizing mashups and interactive elements in web maps, and recognize programming patterns that are common to each.
  • Choose developer examples that relate to your web mapping task and adjust the code to meet the needs of your own application.
  • Use OpenLayers to create mashups of different kinds of map layers (like a tiled basemap combined with a WMS thematic layer).
  • Create interactive informational popups for your web map features using OpenLayers.
Readings: Lesson 6 online materials
  • Walkthrough: Overlaying a WMS on a tiled map with OpenLayers.
  • Overlay your own data in OpenLayers and examine real world use of a web mapping API.
  • Quiz 2.
Lesson 7: Drawing vector layers with the browser
Date: Week 7
  • Describe benefits and challenges of drawing thematic vector map layers in the web browser.
  • Choose between KML, GeoJSON, and other formats for drawing vector data in the browser.
  • Understand how vector layers can be symbolized on the fly to provide a more interactive web map experience.
  • Draw thematic vector layers in a web map using OpenLayers and change the symbolization in response to map events.
Readings: Lesson 7 online materials
  • Walkthrough: Adding interactive GeoJSON layers in OpenLayers.
  • Make your own mashup with a vector layer drawn in the browser.
Lesson 8: Going beyond “dots on a map”
Date: Week 8
  • Implement techniques for data filtering and classification using OpenLayers.
  • Describe OGC specifications for vector data editing (WFS) and geoprocessing (WPS) in web maps.
  • Implement the layer switcher and other controls from OpenLayers according to application needs.
  • Choose a web presentation framework such as Bootstrap and apply it to your OpenLayers applications.
  • Query and display geographic attributes (including links to images and web pages) in your web map application.
  • Learn and critically evaluate a new piece of FOSS GIS.
  • Lesson 8 online materials
  • Steiniger, S., & Hunter, A. J. (2013). The 2012 free and open source GIS software map–A guide to facilitate research, development, and adoption. Computers, Environment and Urban Systems, 39, 136-150.
  • Walkthrough: Making a thematic map with Bootstrap controls and the OpenLayers framework.
  • Independent exploration of FOSS.
Lesson 9: Exploring open data, VGI, and crowdsourcing
Date: Week 9
  • Define “open data” and describe some of the differences in use conditions among open data options.
  • Recognize the benefits and weaknesses of OpenStreetMap and its process of crowdsourcing.
  • Describe options for retrieving data from OpenStreetMap.
  • Edit OpenStreetMap according to community-defined tagging standards, and describe what this experience taught you about open data sources.
Readings: Lesson 9 online materials
  • Walkthrough: Getting source data from OpenStreetMap.
  • Evaluate OpenStreetMap usage and contribute to OpenStreetMap.
  • Quiz 3.
Lesson 10: Term project
Date: Week 10
  • Synthesize the material from the previous lessons to create an interactive web map combining data sources of your choosing. Justify your choices of data storage formats, web service types, and API elements used, with respect to both aesthetics and performance.
Readings: Lesson 10 online materials
  • Term project video (Sunday).
  • Term project report and review of project videos of two other students.

Course Policies