# Map & Locations

As shown in Figure 1, iWEB has a location tracking system that allows the user to find the locations of all of the fountains, bus stops and bins on the Exeter campus. The user can decide which items appear on the map by pressing the buttons on top of the screen. The red dot shows the user’s location, the user can turn on and off location tracking whenever they want. When the user presses on a location they would like to go to, the information about that location is retrieved from the database, as well as an option to find the shortest path to that location and an option to verify that the user has used the location in order to earn points.

## ![](https://lh4.googleusercontent.com/cIjlvacUw8Wodgh42EYR80SyAQO9CzHALNWlNBwZLuofDfIXELBxbcPGbFXdCZoQCmd8QaCvlj4Y7eydUYsvL2fEvRd7v4O72jOgljk8f6V4J-Vd9gGzImug74bpH-z7SzRx4iQOTS-euGpSen9uFNY)Figure 1

## **Design Choices:**

### **Gamification:**

The map incorporates gamification by rather than displaying an API                                                                               of the campus, I am displaying a more colourful and a more gamelike                                                                        map.

### **Reliability:**

The map system was created in a way to not be reliant on other APIs, that way if they update their code or stop working this map system isn’t affected. I programmed everything from the path finding algorithm to even draw the map of the university. The only external program used is GeoLocation.

### **Scalability:**

The map incorporates scalability in several ways, one of which is that                                                                                            the items (water fountain, bin… ect) are all displayed automatically                                                                                      meaning as soon as they are added by users of this app they appear                                                                                  here, this is scalability since there wouldn't be a problem for this app                                                                                                     to be incorporated and expanded to more campuses or even large                                                                                        cities.

## Technical Explanation

### Map Projection:

#### The mathematics behind the problem:&#x20;

The problem of projecting a sphere onto a plane has been around for centuries, and it is impossible to do it 100% mathematically accurate, however the system I have developed is far sufficient for relatively small areas such as a University campus. I have used [Equirectangular projection](https://en.wikipedia.org/wiki/Equirectangular_projection) which is the most common way of representing maps onto a plane. Equirectangular projection has 2 equations which turn longitude and latitude into X and Y coordinates, however that gives the X and Y coordinates relative to the whole globe which in this case is useless. My system incorporates this by using the 2 formulas to calculate the X and Y coordinates of the top left and bottom right coordinates then calculates all of the other locations by representing them as a percentage relative to the 2 corners. What this allows me to do is to display the locations onto a map without having to display the map of the whole world, I can just display the area of the university. Using online tools I found the longitude and latitude of the corners of the Exeter Campus, the longitude and latitude for the other items is accessed automatically. Since I am only mapping the surface area of the Exeter campus I don’t need to use the central parallel of the map, and I have taken the “standard parallels” to be the corners of the map to improve the accuracy, in the future I will add more parallels to improve the accuracy further.

#### Displaying the locations and the user:

All of the locations for the different items are stored in the database locations, the X and Y coordinates are calculated and displayed on the map. To display the user using  [Geo Location](https://www.geolocation.com/) I retrieve the longitude and latitude of the user then convert them to X and Y coordinates. The distance between each item is pretty much as accurate as GPS technology is

#### The brown-yellow Map:

The map being displayed (this is subject to change) is a drawing of the Exeter Streatham campus, it shows some of the main buildings, and allows the user to see where they are.

<div><figure><img src="https://2662171677-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUQJVfI4Zuqwd4ojcZ8jg%2Fuploads%2FIQBG5ulH1AY6caIiLbBi%2F3.png?alt=media" alt=""><figcaption><p>Types of Map Pojections</p></figcaption></figure> <figure><img src="https://2662171677-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUQJVfI4Zuqwd4ojcZ8jg%2Fuploads%2FPkj6ueswHYSpCAp9GgF9%2F4.png?alt=media" alt=""><figcaption></figcaption></figure> <figure><img src="https://2662171677-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUQJVfI4Zuqwd4ojcZ8jg%2Fuploads%2FIf7NQMVtNSmZvrToU70c%2F5.png?alt=media" alt=""><figcaption></figcaption></figure></div>
