GEOENGINE - MSc in Geomatics Engineering, Master Thesis Run SHI
Master Thesis Run SHI
Run SHI
Development of a Mobile Campus Information System
Duration of the Thesis: 6 months
Completion: June, 2013
Supervisor: Dr.-Ing. Volker Walter
Examiner: Dr.-Ing. Volker Walter
Background
Smartphones are highly integrated devices with basic mobile functions, high-speed
Internet surfing, photo taking, media playing and many more. The wide selection of
third-party applications enriches the functions of smartphones. Most location-based
applications apply GPS to acquire location data and the location information is used
for navigation, finding POI (Place of Interest) and geocoding. To develop a
location-based application, different APIs (Application Programming Interface) are
available, such as Google Maps API, ArcGIS Runtime SDK, Microsoft Bing Map
SDK and OSMDroid. Among these, the first two APIs are mostly used because they
have the most searching results in Google Search. It is very interesting to understand
how to develop a location-based application on mobile phones and to evaluate
developing experience of different APIs.
Objective
Owing to the fact that Android is open source and has the biggest market share
(Gartner 2013), it is chosen as the operating system for developing mobile
applications. Moreover, some of the existing APIs for programmers to develop a LBS
application are: Google Maps API, ArcGIS Runtime SDK, Microsoft Bing Map SDK
and OSMDroid. Since the first two APIs are the mostly used, they are adopted to
develop the application. In addition, the LBS application is a campus information
system which assists users, especially new students, to get familiar with the campus
site “Stadtmitte, Univeristy Stuttgart, Germany”.
In summary, the objective of the thesis is to develop a campus information system on
Android with both Google Maps API and ArcGIS Runtime SDK and a comparison is
made from the perspective of both functionality and developing experience.
GEOENGINE - MSc in Geomatics Engineering, Master Thesis Run SHI
Implementation
This campus information system is developed for Android phones to present Campus
Stadtmitte of University Stuttgart. It has functions of positioning, routing, showing
GPS information and important building information.
Developed in Java language, the application is implemented by two different
Application Programming Interfaces (APIs), Google Maps API for Android and
ArcGIS Runtime SDK for Android, in order to compare their pros and cons.
Development environment:
Operating System: Windows 7 Ultimate, 64-bit
IDE: Eclipse Helios and Android SDK
API: Google Maps API for Android v2
ArcGIS Runtime SDK for Android v10.1.1
1 Displaying the Map
To display a map, Google Maps API requires a key while ArcGIS Runtime SDK does
not. At the same time, ArcGIS Runtime SDK has a wider selection of map resources.
Developers can use not only online maps (ArcGIS online, ArcGIS server), but ArcGIS
portal of users as well. That is to say, the developer can use maps he created in
ArcGIS Desktop in Android application, which helps the application have a clearer
aim. For instance, if an application is aimed for people to find the nearest health care
facility such as hospitals, pharmacies, or clinics, a thematic map emphasizing both on
road features and health care features is better than common base maps.
2 Positioning
Android SDK provide a class named LocationManager to access system location
services. It can update periodically the device’s geographical location. If the
application has the coarse permission only, then GPS services or other passive
location services are no longer available. Position can still be acquired, but is updated
less frequently with less accuracy.
3 Routing
Google Maps API Approach
Routing in the Campus Information System applies Google Navigator. The core code
to fire up Google Navigator is as follows:
Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
GEOENGINE - MSc in Geomatics Engineering, Master Thesis Run SHI
Uri.parse("http://maps.google.com/maps?saddr=<" + lat + ">,<" + lon +
">&daddr=<" + lat_k1 + ">,<" + lon_k1 + ">"));
startActivity(intent);
In the code above, “lat” and “lon” are WGS84 coordinates of the user’s current
location, updated in real-time. Parameters “lat_k1” and “lon_k1” are coordinates of
the destination, in this case, building K1. This code shows the routing from current
location to building K1. Figure 1 shows the driving direction of current location to
Mensa in campus. Once the direction result is viewed by the user, he can switch back
to Campus Information System by pressing “back” button beneath the phone screen
and exiting Google Navigator.
Figure 1 Driving direction from current location to Mensa
ArcGIS Runtime SDK Approach
In the example downloaded from ESRI, starting point of routing is current location of
the device and ending point is the location chosen by the user designated by a long
press of the screen. Unfortunately, the example does not work on Sony Xepria U or
HTC Wildfire. The error message is shown in Figure 2. If run in debug mode, it could
be found that both coordinates for starting and ending points are stored in variables.
The exception happens with the creating of routing task.
GEOENGINE - MSc in Geomatics Engineering, Master Thesis Run SHI
Figure 2 Error message of routing
4 Displaying Satellite Information
Android SDK provides a public static interface GpsStatusListener to report current
state of GPS. The method onGpsStatusChanged (int event) should be called in
MainActivity to report changes in GPS status. LocationManager has a getGpsStatus( )
function to acquire GPS status. There are four statuses in total:
GPS_EVENT_STARTED: GPS has started.
GPS_EVENT_STOPPED: GPS has stopped.
GPS_EVENT_FIRST_FIX: GPS has received its first fix. Function
getTimeToFirstFix() acquires the time to receive first fix from starting.
GPS_EVENT_SATELLITE_STATUS: GPS has functioned periodically and
function getSatellites( ) can be called to find the status of each satellite.
Figure 3 shows the information displayed on the device screen.
GEOENGINE - MSc in Geomatics Engineering, Master Thesis Run SHI
Figure 3 GPS information
5 Displaying Relevant Information
Google Maps API Approach
To display information of at certain location when touched, Google Maps API
provides two methods: OverlayItem and Markers. In Campus Information System,
OverlayItem is adopted considering it is built on MapView structure.
Building information is displayed as in Figure 4.
Figure 4 Displaying building information
6.5.2 ArcGIS Runtime SDK Approach
The concept of features and layers are applied in ArcGIS Runtime SDK, as in other
GEOENGINE - MSc in Geomatics Engineering, Master Thesis Run SHI
products of Esri. In the Campus Information System, each building is created as a
feature and added to a new layer. The information necessary for displaying are stored
as attributes of the building. Furthermore, ArcGIS Runtime SDK offers the method of
“callout” to display information.
Figure 5 is the information window tapped by the user.
Figure 5 Building information
Conclusion
Below is a summary table of comparison.
Table 1 comparison between two methods
Google Maps API ArcGIS Runtime SDK
Functions Map display Requires API key Does not require key
Map resource Google Maps Maps from ArcGIS
Online, ArcGIS Portal
of users, ArcGIS
Server
Routing Apply Google
Navigator
Not applicable
Information Display Overlay method Feature and layer
method
Network Analysis No Yes
Support Official Tutorial Requires developing
experience
Requires developing
experience
Official Example No Yes
Online Help Many posts and blogs Very few information
Updates 4 updates since Dec
2012
5 updates since Dec
2011
GEOENGINE - MSc in Geomatics Engineering, Master Thesis Run SHI
In short, ArcGIS Runtime SDK has a more powerful functionality, considering its rich
map resource and network analysis service. But the developing experience with
Google Maps API is definitely better. As a new and fast developing technology,
implementing applications on Android may meet many problems and errors.
Therefore, articles and problems discussed by other developers on the Internet
contribute a lot to solving problems.
From my point of view, Google Maps API is more suitable to develop location based
application for daily uses, such as finding the nearest restaurant or supermarket, while
ArcGIS Runtime SDK is more appropriate to implement applications for professional
GIS people. For instance, GIS people wants to investigate land use in an area and it is
necessary for them to go out and record the use of each land polygon. Computers are
too big to carry and an application on Android will solve the problem. They can edit
the attributes of land polygons, adding or deleting features according to the land in
reality, or even do some simple analysis on the phone. In summary, both Google Maps
API and ArcGIS Runtime SDK can develop location based applications on Android.
The choice to apply which method depends on the aim the application, as well as the
consideration of developing experience.
Reference
(Mari 2013) Marcello Mari. Top global smartphone apps, who’s in the top 10.
GlobalWebIndex. Aug. 2nd 2013. Available at :
https://www.globalwebindex.net/Top-global-smartphone-apps.
(Gartner 2013) Gartner. Gartner Says Asia/Pacific Led Worldwide Mobile Phone
Sales to Growth in First Quarter of 2013. Gartner Newsroom. May 14th 2013.
Available at
http://www.gartner.com/newsroom/id/2482816
(FCC 2005) Federal Communication Commission. FCC Amended Report to Congress
on the Deployment of E-911 Phase II Services by Tier III Service Providers. April 1st
2005. p1.
(Karimi, Hammad 2004) Hassan A. Karimi, Amin Hammad. Telegeoinformatics:
location-based computing and services. US. CRC Press. 2004. 171-172.
(Brewer 2009) Charles W.G. Brewer. How effective can GSM signals, using DCM, be
as an aid to coastal navigation. The Plymouth Student Scientist. 2009, 2, (2). 170-198