Current Status
Not Enrolled
Get Started

You can read the introduction on this page, but to take in the lessons below you need to be signed in »

This is a foundational lab for students learning about geomatics and spatial networks. The goal is to bridge from theory to practice so you can build your toolset and skillset. Like the labs to follow, it’s about bringing spatial networks to life for yourself and understanding them deeply.
You’re going to:
  • Develop clear and concise derivations for five observation equations that are key to spatial networks: 1) distance; 2) simple trilateration; 3) azimuth; 4) angle; and 5) simple intersection;
  • Implement those in C++ as a first step in building a spatial network library of your own in these labs; and
  • Work as a team to develop and submit a final implementation.

Read the following introduction


This lab has three parts:

1. In the first part, you’re asked to develop five of the key observation equations for spatial network applications. You can do this with with paper and pencil – no need to be fancy. (Although pen or tablet or document-based submissions are fine if you wish.) The idea is for you to have your own complete set of related derivations and solutions that will serve you well on exams, and in this and future labs.

Note for students taking this course from me in person: You will have already done much of Part 1 – in class and when completing the first set of self-assessment problems. If that’s you, then there’s more guidance for you once you get in there. 

2. In the second part, you’re asked to:

a) Use Google Sheets to develop your own individual sandbox implementations. This means having a spreadsheet that implements the observation equations for the provided situations;

b) Use C++ to develop and code your own library that allows you to implement the same.

3. In the third part, you’re asked to come together to submit a single team-based solution in C++.

Directions for these parts are provided in the lessons at the bottom of this page.

Why this lab?

The lab really is fundamental. The first part helps you build and solidify an understanding of how to derive observation equations. This skill will come in handy in this course, but the fundamentals are also important for all kinds of situations in spatial and geomatics applications – from land surveying, to differential GPS, to navigating spacecraft. It’s critical that you’re able to look at a situation, put down its functional model, and linearize it in a way that serves its implementation.

The second part of the lab helps you bridge from theory to practice. It requires you to get off paper and develop a sandbox solution in a spreadsheet. As we learned when covering that for the first time, this is to help you make fewer mistakes and write better code. Part 2 is also where you’ll start building your very own C++ library in this area. In the future, I want you to be able to look at any commercial networks package and know from experience what’s happening under the hood. This only comes from experience, and, I believe, is made much more real if you actually build your own.

The third part of the lab gives you insight to how your colleagues are working to achieve the same goals, and demands a level of collaboration by requiring you to come together to prepare a working team-based solution.

So let’s get to it!


The due dates for this work are outlined on our course page which you can access with the tabs at the bottom right side of any page on this site.

Individual vs. team

This lab is done individually and as a team in different parts.

As discussed in the following, you are asked to:

  1. Develop your own sandbox solutions in Google Sheets (using the kinds of approaches outlined in our earlier module Introduction to using spreadsheets as a sandbox tool for spatial applications );
  2. Code your own solutions in C++ as a start to building your own library in this course; and
  3. Come together as a team to land on one C++ implementation that you’re going to submit to represent the work of your team.

We find it helps the learning a lot when each person has done the individual work in this lab before coming together on a solution, which is why it’s structured that way. Each person’s understanding gets stronger. They do better on the related exams. And the overall results are stronger.


A detailed marking rubric will be handed out via D2L and discussed in class. As long as the individual components are completed and included in the lab as requested, your mark will come from the final team submission.

Lab report template

A lab report template will be handed out via D2L and discussed in class. You’re asked to use this report format when submitting your lab.


Jump right in

You need to be signed in and enrolled (see above) in order to do this step.