Wi-Fi Interactive Mapping

Text Box: Design Text Box: The projectText Box: The TeamText Box: HomeText Box: Research A Northern Arizona University Capstone Project

 

 

Research

 

Phone Application Languages/Software

 

When it comes to choosing the software that we will use to complete our capstone project, we are left with several different coding languages that each hold their own advantages and disadvantages for solving the task at hand. Of the many languages we have to choose from, only a select few meet the requirements of our project, making the selection of an appropriate language much easier. The C language, while being a popular language, offers small program size and faster program execution however it does not offer object-oriented programming; a trait that would prove quite useful in the design of our project. For this reason, it would behoove our team to use a high level programming language capable of object oriented programming. Using an object-oriented language would allow our team to better divide the work among our members as each "object" can be assigned to individual members and placed within the necessary portion of our main program. C++ is such a language that offers many of the favorable traits of C while also allowing object-oriented structure. Another option is Apple's Objective-C language which was derived from C++ and C# and therefore shares similar traits as these languages. However, unlike other languages, Objective-C runs only on Apple operating systems, limiting our devices to iPhone, iPad, and Mac OS X systems which is an important constraint to be aware of. Finally, the last language most suitable for our purposes is Java. Put best by, "Java is a multi-platform language that is especially useful in networking," a task that will play a large and important role in our project. Java is however much slower than languages like C++ and C# but given the devices that our group has in mind, computation speed and power do not impose strict constraints on the design of our project. As a start, the team will begin by using Androids free software, Eclipse.

 

GPS Signals

 

A big part of this project depends on learning how to access and use GPS signals, or Global Positioning System signals. Currently GPS satellites broadcast microwave signals to enable GPS receivers on Earth. If a device similar to a smart phone is used it will already be GPS prepared and thus make the task easier. Setting up GPS on a phone application will require a user to accept GPS permissions when downloading the application. These signals work by satellites sending out a signal to a device, that device sending a signal back, and calculating how long the passing of these signals take. While doing this a navigation signal called, ephemeris data, must also be passed. This date calculates the position of each satellite and its network. Almanic data must be used as well. Almanic data tells the receiver which satellites to search for, and this data is good for 180 days, while ephemeris data is only useful for 4 hours, as it is highly detailed.

 

Application Multitasking

 

Allowing a device to perform multitasking requires a strict set of rules that each app must follow in the design of their apps. A large portion of a devices multitasking ability relies solely on the trust of the app developers to design efficient and device-friendly applications. In this way, the Android and iOS operating systems depend on apps behaving as "good citizens," meaning that the developed apps "keep the time it takes to move to the foreground as short as possible while also reducing its memory footprint when it is in the background." In the case of Android applications, the applications may run in the background and can perform any task that it has been granted permission for (i.e. access to microphone and speaker). In doing so, we can essentially run an application responsible for voice communication in the background behind our tracking program. However, this is not the task that is required of us. Our group is tasked with developing one application that handles both bi-directional voice communication as well as personnel tracking. To accomplish this, the code for our application must be aware of the limits of memory within the devices we will be using and optimize our application to make the best use of the available memory.

 

How Device can Access Maps

 

Originally this was thought to be a difficult part of the project. However after researching phone applications integrating a map into the program became clearer. Even games such as, Ingress, use google maps in order to play in a more realistic setting. All it takes is a few lines of code in the app and for the user to accept the permissions. If using an Android application, Google Maps Android API must be used. This will allow the team to add maps to our application based on Google Maps data. The API automatically handles access to Google Maps Servers, data downloading, map display, and touch gestures on the map. Answering many difficult questions the team thought it would take hours to figure out, and yet a few lines of code will display maps. Now what might be more difficult is getting the map to display the location of multiple users at once.

 

Current Technologies

Satellite communicators are similar to what this team is trying to design. Communicators such as the DeLorme InReach SE Two-Way Satellite Communicator can send text messages, communicate verbally, send an SOS signal, and provide you user with their current location, and it can work in locations where there is no cellular signal. But these devices can cost upwards of $300. If a user already owns a smart phone our app will be much cheaper, the only downside being that the user will need to be in an area with cell service.