Open Source Cartography: A Web Mapping Short Course
By the end of this course, students will be able to:
- Identify and construct the principle technological components of a web mapping development stack.
- Assemble geographic data into appropriate data formats for integration within a web mapping system.
- Demonstrate the ability to load data from local and remote sources and draw geometry features within a client-side web browser.
- Interpret the functionality provided by a web mapping library's Application Programming Interface (API) and adapt examples to specific use cases.
- Construct functional thematic web maps using raster, point, line, and areal symbology.
- Experiment with various plugins designed to extend the core functionality of a web mapping library.
- Utilize a remote web server for hosting and sharing web maps.
The course will make use of the following software components, which are freely available on the web:
- A text editor (Brackets, Sublime, or Atom)
- A modern web browser (Chrome or Firefox recommended)
- Web developer tools (built into modern browsers)
- A local web server
Additionally, course materials are made available through the GitHub web platform. These may be downloaded as a zip file or cloned through a git command or desktop client interface. GitHub is also used to freely host and serve complete web maps over the Internet.
Assumed Background Knowledge
The learning curve for web development is steep, and mastering web mapping requires wrestling with an intimidating array of tools and technical jargon. Teaching computer programming and covering the breadth of geospatial technologies is beyond the scope of this short course. Some experience with computer programming or web design is helpful, and supplementary technical learning is encouraged.
That stated, the course is intended as a gentle introduction to web mapping and assumes no expertise in coding or Geographic Information Science. Modules provide code examples and templates for completion of exercises.
Most importantly, the course requires curiosity and a willingness to be confused and frustrated while puzzling through problems.
Schedule and Location
The course comprises four weekly modules encompassing 2 hours of guided instruction each, Friday afternoons from 3 - 5 pm.
- October 28th -- Drawing Data with Web Maps
- November 4th -- Thematic Web Mapping: Point Symbology
- November 11th -- Thematic Web Mapping: Choropleth
- November 18th -- Extending Web Maps with Plugins and Web Hosting
The course will meet in the Ken Erickson Spatial Data Analysis Lab (Guggenheim Rm 6), on the CU-Boulder campus.
Additional Help and Resources
Weekly Module Summary
1. Drawing Data with Web Maps
The introductory lesson acquaints students with the key components of a web mapping technology stack and the development environment. Students will learn how to use Leaflet, a popular and mobile-friendly web mapping library, to build a simple web map using data converted to GeoJSON format. The class will explore techniques for drawing (or representing) geographic features such as points and lines on various available basemaps, styling these features, and adding basic user interaction to retreive specific information about meaningful places on the map.
2. Thematic Web Mapping: Point Symbology
The second lesson explores cartographic techniques for representing point features within a web map. Students learn a process for loading Comma Separated Values (CSV) data into a script and converting them to GeoJSON before drawing them to the map. Students are taught a technique for programmatically re-sizing circles based on quantitative data attribute values to create a proportional symbol map. Students then extend the point symbol map to encode nominal attribute data using color to produce a bi-variate map. The lesson concludes by introducing user interaction techniques for filtering represented data.
3. Thematic Web Mapping: Value by Area
4. Extending Web Maps with Plugins and Web Hosting
The final module further extends the core functionality of a library's API through the employment of plugins, which build upon the open codebase of the Leaflet library. Students are encouraged to play with plugin functionality best-suited to meet the map user's objectives. Finally, the module documents a streamlined approach for easily hosting web maps using GitHub.