GPS Map Pin

Michael LaFleur
Geoinformatics

 

 

Campus AED Map:

Converting Coordinates, Calculating Haversine Distances, and Displaying a Grid With Java

 

Michael LaFleur

Informatics, Indiana University Kokomo

INFO-I 210: Information Infrastructure (Java 1)

Dr. Yang Liu

Spring 2022

 

 

Abstract

The author received permission to explore ArcGIS Runtime Java API (addendum 4/6/23: name changed to ArcGIS Maps SDK for Java) in a semester project, but was concerned that student programming would be difficult to identify when mixed with a large quantity of auto-generated API framework code. In addition, students in the Java 1 course used text editors with syntax highlighting to write programs for command prompt compiling and execution. The author developed this project in a text editor before moving to ArcGIS for the graphical component. Four files were created to maintain organization and manage file length: MainMenu.java, DegreeConverter.java, DistanceCalculator.java, and GridMapper.java. All files were stored in the same directory and compiled with the command [ javac MainMenu.java ], then run with the command [ java MainMenu ]. Project code can be viewed at https://github.com/mflaneur/aed-java1 .

 

Project Data

Data collection, validation, and display concerns are discussed in the companion project Campus AED Map: Constructing a Voronoi Diagram From Thiessen Polygons With ArcGIS Runtime Java API. Ten automated external defibrillators (AEDs) on the Indiana University Kokomo campus were geotagged in person by the author using the SurveyCam Android app.

 

Early Outreach: 40.45627, -86.12740
East: 40.46000, -86.13105
Fine Arts: 40.45546, -86.12744
Hunt: 40.45971, -86.13014
Kelley: 40.45923, -86.13137
Library: 40.45903, -86.13148
Main (central): 40.46020, -86.13246
Main (Havens): 40.46048, -86.13314
Observatory: 40.45803, -86.13055
SAEC: 40.45847, -86.12869

Table 1. AED locations, latitudes, and longitudes.

 

MainMenu.java

File code can be viewed at https://github.com/mflaneur/aed-java1/blob/main/MainMenu.java . Menu options include: convert decimal degrees to DMS (degrees minutes seconds), convert DMS to decimal degrees, compute Haversine distance between coordinates, view grid map, view ArcGIS project URL, and exit.

 

lafleur-aedjava1-menu.png

Figure 1. The main menu for the semester project (own photo).

 

DegreeConverter.java

File code can be viewed at https://github.com/mflaneur/aed-java1/blob/main/DegreeConverter.java . Note that prior to conversions, the main menu uses do-while loops to validate data input. Valid ranges and data examples are displayed in the prompt to make layperson use (and grading) easier.

 

lafleur-aedjava1-degree.png

Figure 2. Conversions between decimal degrees and DMS notation (own photo).

 

DistanceCalculator.java

File code can be viewed at https://github.com/mflaneur/aed-java1/blob/main/DistanceCalculator.java . The author does not claim to be a mathematician. Several sources were consulted to calculate the Haversine distance between two points on a sphere and are documented in the code comments.

 

lafleur-aedjava1-distance.png

Figure 3. The Havens Auditorium AED is 0.5 miles from the Fine Arts Building AED (own photo).

 

GridMapper.java

File code can be viewed at https://github.com/mflaneur/aed-java1/blob/main/GridMapper.java . This grid uses a Cartesian coordinate system. Longitude is the x-axis value. Latitude is the y-axis value. The origin (0, 0) is where the Prime Meridian (x = 0) and the Equator (y = 0) meet (in the Gulf of Guinea). Because Indiana is northwest of this intersection (in Quadrant II), campus longitudes are negative while campus latitudes are positive.

 

lafleur-aedjava1-grid.png

Figure 4. By assigning a step value to every line, AEDs were procedurally placed and labeled on a grid map.

 

The Dark Side of the Rainbow

Like a wave of color saturating The Wizard of Oz, the next phase of this project is a stained-glass puzzle. Note that AED locations match up between the grid map and the graphical map. In Campus AED Map: Constructing a Voronoi Diagram From Thiessen Polygons With ArcGIS Runtime Java API, the author inches closer toward making an AED app.

 

lafleur-iuk-aeds-vertical.png

Figure 5. Thiessen polygons show campus AED coverage zones in ArcGIS Runtime (own photo).