Navigatour: A Mobile tourist information system

yazooalbumSecurity

Nov 3, 2013 (3 years and 10 months ago)

96 views

1



Navigatour:

A Mobile tourist information system

Srikanth Reddy Bhimavarapu
, B.Tech.

School of Computing and Intelligent Systems

Faculty of Computing and Engineering

University of Ulster, Magee Campus

E
-
mail:

bhimavaradu
-
s@email.ulster.ac.uk


Abstract

The

number of mobile devices and associated services has recently been growing considerably. This
growth has

been changing the way people access information. The technological advances of mobile devices
offer new opportunities to areas where geographic data h
as an important role. PDA, mobile phones and other
portable devices are increasingly beginning to have location awareness via GPS devices.

Location Based
Services (LBS) are expected to become the next big thing within mobile

applications as integrated GPS
is
becoming a standard feature of new phones.

These continuous improvements have made possible to incorporate
Tour Guide

f
unctionality applications to show relevant points of interest to the user without extra actions being
necessary.

Navigatour, a mobile
device web application is proposed in order to facilitate users with better tour
guide options, who seek to find places of interest through map
s
.
The proposed mobile application is developed
on Android Platform. In this paper there will be a review on how
location based services is useful and their
functionalities are discussed. Software analysis is conducted on the available technologies in order to develop
Navigatour.
To ensure the interoperability between different activities software
, the layouts and ac
tivities are
represented with XML and Java was used to code the
Navigatour

in Eclipse. An initial research on simil
ar
systems has already been completed

and as a result the architecture for Navigatour has been defined.

Finally
there will be a
brief
explanation on how the Navigatour is designed and implemented.


Keyw
ords

Eclipse,
Google
Android, Geocoding, Google Maps,
Location Based Services, Navigatour,
Wiki Entries
,
Web
Services.



1.

Introduction

The performance, memory size, bandwidth and screen
of mobile phones are getting

better and better
for each passing year. The mobile technology is driven by fierce

competition in a market where many customers
replace their phone every 1
-
2 year. The

mobile phones have seen more and more features being built
into them.
They can now

function as digital cameras, mp3 players and recently also come with built in Global

Positioning
System (GPS). These new features and other mobile phone improvements

open up a whole new world of
possibilities for the mobile applicat
ion developer.

It is not only the hardware that changes in mobile phones. The
operating systems

and software platforms have also changed in order to take advantage of the new

possibilities.
There exist quite a few p
latforms for mobile development:

Symbian
from

Nokia, Java Micro Edition (ME) from
Sun,
and
And
roid from Google

to mention some.


Navigatour is developed on the new
Google A
ndroid platform which is still under development.
The
main focus
of this project
is to provide users with a visually interactive mobile application. From this
application user can access Google maps, Web services, Location Info and Wiki content on map. User can also
load the GPX or KML files on to the maps to view the Route. Other func
tionalities like Audio Playback and
Image viewer are also provided to ensure that the user achieves basically they required from the interaction with
the system.


2. Background and Literature Review

In this section there will be a brief discussion on
Lo
cation based services (LBS), how well we can use
these services and

their Functionalities. A review is also conducted on types of web services and maps.



2


2.1
Location Based Services

Location based services are services that are based on the physical
location of the user.

A LBS is
typically used to answer questions such as “Where Am I?”, “What is nearby?”

and “How can I get from A to
B?


In order to be able to use LBS, there are some basic

compo
nents that must be available according to


Steiniger

et al
. (2006):




A mobile device must be available to the user in order to request the service. The device can be all
from mobile phones to laptops.



A mobile network must be present in order to send service requests to the provider and in order to
receive the
response.



The location of the device must be determined by using some of the available

location technologies
(e.g. GPS).



A service provider offers services to clients (e.g. address searches).



Content providers are often used by the service providers in ord
er to acquire

maps and other data that
might be collected (e.g. weather or traffic data).


LBS applicatio
ns are typically placed into three

categories
: push, pull and tracking services

according
to
Steiniger

et al. (2006
) and

Schiller et al. (2004).



Pull

service

is requested by the user. By making a request, the user also gives the

service provider
permission to use his/her location in order to perform the service. A

weather forecast service is an example of
such a service. The user can send a request for

the weather forecast the next

hours for his/her location.

Further

divides pull services

into functional services (e.g. order taxi) and information services (e.g. search for hotel).


Push service

is initiated by the service provider as a result of an event

(e.g. a given

location or a
specific time). The user must in this case give the service provider

permission to send information to the phone
by registering for the service. An

advertising service is an example of such a service. The user can register with

the

service and be notified of bargains when passing stores.


Tracking services

offers the location of the mobile phone to those who request it. The

owner of the
phone must give permission by registering the people who should be

allowed to acquire the
location. A friend
finder is an example of such a service. The

friends can all register with the service and thus be able to find each
other's locations

when needed.


2.2
Web services

Web services are often used in LBS applications in order to take
advantage of available third party
services and due to the limited resources of mobile phones.

Representational State

Transfer (REST) and Simple
Object Access Protocol (SOAP
)

can be used on the
Android platform
.


XML

XML, which is often used in web service messages, are well supported by
Android platform
. Android
includes all the main categories (pull, push and model). There are also several

available third party parsers in
addition to those included on the platforms.

More information is on
XML Web Service (2009).


REST

Representational State Transfer

(REST) attempts to describe architectures which use HTTP or similar
protocols by constraining the interface to a set of well
-
known, standard operations like GET, POST, PUT
,
DELETE for HTTP. Android platform includes an API that makes it easy to set up a HTTP connection towards
a REST service. REST based web services can therefore easily be consumed by applications on Android
platform.

More information can be found at REST.


K
SOAP
2

KSOAP
2 is a

library that can be

used in Android

platform

for accessing the web services.

More
information
is

on
KSOAP2 (2009)
.


2.3
Maps

Maps play a central role in many LBS applications as they give a clear picture of the location of the
user and the surroundings. Android comes with Google map integrated in the platform which makes it very easy
to implement maps in an application. The main

impression after using these APIs is that the map API of
3


Android is better

designed and easier to use
.

Android is developed by Google which has a lot of experience
when it comes to maps.


Map functionality

Android comes with the basic map styles, street a
nd satellite. In addition, Android can show traffic
information in the map. Android map APIs contain standard map functionality such as pan, zoom and toggling
of map style. Android lets the application nicely animate the map movement to another location

or

slave the
centre of the map to the current location. For drawing information in layers

above the map, Android comes with
a well designed Overlay class that is easy to use.


2.4 LBS Functionality

In addition to the acquisition of the user location
and the
integration of maps,

Android supports
some
common LBS functionality.


Addresses

Addresses play an important role

in many LBS applications. Android platform

have

class representing
an address.
In order to store addresses in Android, one has to use a regular

database.

Different types of address
searches are common in LBS applications. Geocoding

and reverse geocoding searches for the location of an
address and vice versa. A search

for Points of Interest (POI) returns e.g. hotels in the vicinity. Android has a
Geocoder

API that can be used to perform these services. This makes

address searches much easier to
implement in Android
.


Proximity alerts

Android platform

lets the application register itself as a listener for notification when the

user enters the
proxim
ity of a specific location.


Driving directions

How to get from one point to another is one of the most popular LBS features. The

central element here
is the

calculation of the route.
Android has an API for

acquiring routes. This makes the task of

implementing
routing much easier in Android
.


3. Software Analysis


In this s
ection the software and developing platform are

being analysed that are used for developing
Navigatour.


3.1

Google
Android

The Android platform is a software stack for mobile
devices including an operating system,
middleware and key applications. Developers can create applications for the platform using the Android SDK.
Applications are written using the Java programming language and run on Dalvik, a custom virtual machine
desi
gned for embedded use which runs on top of a

Linux kernel.

More information on Android can be found at
Android home page (2009).

Android SDK includes multiple An
droid platform versions that we

use to develop applications. For
each version, both a fully com
pliant Android library and system image are provided.

Android SDK 1.5 Release
-
3 includes two platforms: Android
-
1.1 having API level
-
2 i
ncludes a compliant Android 1.1 library and system
image with a set of development applications. Also includes the Maps

external library (due to legacy build
system issues)

and Android
-
1.5
Includes a standard Android 1.5

with API level
-
3

library and system image with
a set of development applications. Android SDK 1.5 includes the Google APIs

with API level
-
3

add
-
on. This
S
DK add
-
on provides a development environment for an Android external library or a customized (but fully
compliant) Android system image.

More information on Android can be found at
Android
SDK Content (2009).


Android support Location based service APIs.
Location service allows finding out the device current
location. The application can ask for periodic update of the device location. The application can also register a
intent receiver for proximity alerts like when the device is entering and existing from

an area of given longitude,
latitude and radius.



4


Android Location API

Following are the some important classes present under the android location package.

LocationManager:

The class provides access to the location service. It also provides facility to g
et the
best


Location

Provider as per the criteria. Proximity a
lerts can be set

with

this class.




LocationProvider:

It’s an abstract superclass for location providers. A location provider provides periodic


reports on the geographical location of the device.

LocationListener:

Provides call
-
back methods which are called when location gets

changed. The listener object


has to be registered with the location manager.



Criteria:
The class provides the application to choose suitable Location Provider by providing access to set of


required prope
rties of the LocationProvider.

Android also provide an API to access the Google MAPs. So with the help of the Google MAPs and
the location APIs the application can show required places to the user on the MAP.

Google Map
s

API

A
ndroid defines a package called
com.google.android.maps. The package contains classes related to
rendering, controlling and overlaying information on the Google maps on the android devices.
T
he most
important classes defined in the package:


MapActivity:

I
t is the spacing activity defined to show the Google MAPs. The MapActivity takes care of the



Low
-
level networking.


MapView:

MapView is the view that supports and displays the map. This must be contained by a MapActivity.

MapController:

MapController is the object used to move the map around the screen.

Overlay:

It’s a drawable object that can be shown on top of the map.

The Android Maps APIs are a collection of services that allow us to include maps, Geocoding, and
other content from Google and its content providers in our android applications.
For more information on the
Android APIs can be found at
Location and Maps (20
09).

3.2

Eclipse

Eclipse is a multi
-
language software development environment comprising an IDE and a plug
-
in
system to extend it. It is written primarily in Java and can be used to develop applications in Java and, by means
of the various plug
-
ins, in oth
er languages as well, including C, C++, COBOL, Python, Perl, PHP, and others.


The Eclipse SDK includes the Eclipse Java Development Tools, offering an IDE with a built
-
in
incremental

Java compiler and a full model of the Java source files. This allows for advanced
refa
ctoring

techniques and code analysis. The IDE also makes use of a workspace, in this case a set of
metadata

over a flat
file space allowing external file modifications as long as the corre
sponding workspace "resource" is refreshed
afterwards. The Visual Editor project allows interfaces to be created interactively, thus allowing Eclipse to be
used as a
RAD

tool.

We can use the powerful Eclipse environment to build Android applications using the Android Eclipse
plug
-
in. Android offers a custom plug
-
in for the Eclipse IDE, called Android Development Tools (ADT) that is
designed to give
a powerful, integrated environment in which to build Android applications. It extends the
capabilities of Eclipse to let you quickly set up new Android projects, create an application UI, add components
based on the Android Framework API, and debug using t
he Android SDK tools.

By analysing the information documented in section 2 gives an idea of how to use the Location based
services and to analyse the requirements needed for developing the Navigatour.


4
. Navigatour Design

This section includes the design
of Navigatour. The results of the analysis are consider
ed and used to
ensure the Navigatour

is built to meet the requirements of the user. The design of the system entails: the analysis
of the
attributes of appropriate
design; system architecture; data mod
elling design with UML diagrams to
illustrate the
proposed operation of Navigatour
; interface design with analysis of HCI Gu
idelines.

5



4
.1 Aims and Objectives

The aim of this project is to design and implement Navigatour, a mobile device web application in

order to facilitate users with better tour guide options. The main focus is to provide users with a visually
interactive mobile application. From this application user can access Google maps, Web services, Location Info
and Wiki content on map. User can a
lso load the GPX or KML files on to the maps to view the Route. Other
functionalities like Audio Playback and Image viewer are also provided to ensure that the user achieves
basically they required from the interaction with the system.


4
.2 Requirement
s analysis

According to Tele Atlas (2007)
, Tele Atlas has conducted a study which shows that 84 % of the asked

U.S. consumers, identified as relatively advanced users, regarded built
-
in GPS as a

valuable feature for their
mobile phones. The participants
ranked built
-
in GPS as a more

important feature than e.g. internet access, MP3
player and video. It was only second to

a digital camera. This might come as a surprise to some, but it shows
that GPS is likely

to become the next standard feature in mobile ph
ones. Other interesting findings in this

study
were:



73 % wanted navigation and routing information.


68 % wanted to see their location in a detailed map.


72 % would search for point of interests and other information in the vicinity.


84 % were int
erested in a child locator. 74 % would accept to pay for the

service.


47 % were interested in a friend locator. 40 % would accept to pay for the

service.


According to Allied Business Intelligence (2008),

a report by ABI Research forecasts the annual global
LBS revenue to become 13.3 billion dollars within 2013. This is up from 515 million dollars in 2007. The
highest revenue is expected to come from personal navigation ($4.3 billion) and enterprise applic
ations ($6.5
billion).
Enterprise applications include
services such as fleet management and tracking of the work force. The
article claims that a wider availability of all
-
inclusive data tariffs will increase the use of such services. The
reason for this
is that the user no longer has to worry about the amount of data traffic generated by the service.
The forecast clearly shows that LBS is about to become big business in the years to come.

Concluding from the
responses to the study conducted by Tele Atlas
and report by ABI research,

it is evident that the implementation
of
a handheld tourguide

system would be a positive im
provement.


4
.3 Architecture of Navigatour





Fig.
1 Navigatour Architecture and Data Flow


Figure
1 shows the architecture and data flow of Navigatour. User can select any option displayed in
the main activity view. When user clicks the button the sub
-
activity will appear on to the foreground. User can
select any option like Audio player, Image viewer,

Maps, WikiNav,
and Route
.
Android contains an inbuilt
media player, by calling upon the instance of the media player user can play the audio file that are located in the
6


resources or user can also play the audio file by giving the URL of the audio content
. Media player instantly
catches the audio content by using the web service and plays back. By using the Google Maps API user can
view the maps. Options are made available for the user to navigate freely through different interface layouts.


4
.4 GUI Design

To ensure that users

will be
able to intuitively use Navigatour

with little or no training, the graphical
user interface is designed in accordance with mobile HCI guidelines.
Due to the restrictive screen size of
handheld devices, a revision of the Somme
rville (2001) guidelines was required for mobile devices. Design for
users on the go, enable fast use, keep it simple and provide feedback are some of the mobile interface guidelines
listed by
Crestani et al. (2004) When designing the content of mobile d
evice, developers are advised to present
the essential information first, keep content small, design clear forms and use simple text elements and styles.

Nav
igatour
interface is designed in an unobtrusive manner. Each form will adhere to the same style
format of
colours, font and layout. Users should be able to move efficiently through the system with the functionalities
offered serving as an aid and not a hindrance to reaching their end goal.

Fig.

2 shows the navigator user
interface
.



4
.5 XML Design

To implement the map in the view, Android separates the device layout / views from the source code to
simplify development. User can modify the XML layout without impacting the underlying source code.

The
device layouts are done using the XML. The Wiki inf
ormation is collected and provided as a web service by
Geonames.org. We will be using the wikipediaBoundingBox XML API to get the information from t
he service.
By making a call to

http://ws.geonames.org/wikipediaBoundingBox?north=51.1&south=50.1&east=
-
113
&west=
-
115


we can get the XML feed of the Wiki Entries in the bounding box.


XStream
, an open source

library

is used
to parse the XML. XStream is a very powerful tool used to
serialize XML to Java Objects. By taking the source code and importing it into o
ur project we can leverage the
XStream tools in the Android environment.

During the design of Navigatour
,

Mobile interface guidelines where
researched in order to create a user friendly interface.

An architecture and dataflow was illustrated in figure 1 to

demonstrate the interaction and flow of i
nformation within Navigatour
.


5
. Implementation of Navigatour

The following software packages are used in the implementation of Navigatour: Eclipse Ganymede 3.4,
Android SDK 1.5 for windows release 3. Android off
ers a custom plugin for the Eclipse IDE, called Android
Development Tools (ADT
) that is designed to give users

a powerful, integrated environment in which to build
Android applications. It extends the
capabilities of Eclipse to lets user to

quickly set up new Android projects,
create an application UI, add components based on the Android Framework API,
and debug the

applications
using the Android SDK tools
.

Android SDK 1.5 contains three platforms: 1.1, 1.5 and Google API. User can create An
droid virtual
devices (AVD) in Eclipse by using the Android Virtual Device Manager. User can select the platform for which
he wants to create an AVD and user can also create an SD card image of whatever size he wants. When
launching the AVD
it uses the SD
Card. User can push or pull files into SD Card by switching to DDMS view
in Eclipse.
Information on the implementation of the various components

of Naviga
tour is detailed in the
following sub
-
sections.



5
.1 Audio Playback

User
can load audio files into SD card or into the resources. Android emulator contains inbuilt media
player, by calling upon the instance of media player user can play the audio files by providing path to the audio
content either it may be URL or Local file.


5
.2 Image Gallery

User can view the images that are stored in resources
. The image gallery is of switching type, so that
when user clicks on the image it switches to the next image.


5
.3 Getting Location Info

User
can get the Location info by using the onTouchEvent () method. Where ever user touches on the
map it displays the latitude and longitude. User can also get the address of the location using the process known
as Geocoding. Google maps in android supports th
is by using the Geocoder class. By using the toast method we
can display the location info on map.
Fig.

3 shows the location info.

7


5
.4 Wiki Content on Map

The Wiki information is collected and provided as a web service by Geonames.org. We will be using
the

wikipediaBoundingBox XML API to get the information from t
he service. By making a call to
“http://ws.geonames.org/wikipediaBoundingBox?north=51.1&south=50.1&east=
-
113&west=
-
115” we can get
the XML feed of the Wiki Entries in the bounding box.

XStream
, an
open source

library

is used
to parse the
XML. XStream is a very powerful tool used to serialize XML to Java Objects. By taking the source code and
importing it into our project we can leverage the XStream tools in the Android environment
.

Fig.

4 shows the
wiki entries on map.


5
.5 Route

User

can load GPX or KML files on to the map to view the route by using the Dalvik Debug Monitor
Service (DDMS) tool in android.

Whenever the location changes it displays the change of location by showing
the latitude and longitude of the location.






Fig.

2 Main Screen Fig.

3 Location
-
Info Fig.

4 Wiki Entries


6
. Evaluation and Testing of Navigatour

William Hetzel (1988, p. 26) says that “Software testing

involves any activity aimed at evaluating an
attribute or capability of a program or system and determining that it meets its required results”. To ensure that
Navigatour
produces the results required, evaluation and testing on its components was undertake
n.
Navigatour

was tested for system functionality and to evaluate its usability
,

Navigatour GPS functionality

was tested by
using the Dalvik Debug Monitor Service (DDMS) tool in android

to ensure the system is appropriate for
updating

the location info and

navigating within the
layouts.
Results of these tests are described in the following
sections.


6
.1 Functionality Testing

Throug
hout the development of Navigatour
, the code was continually checked

for defects by running
Navigatour

and ensuring that the desired output was being achieved.
Fig. 5 shows the launching of emulator,
installing the navigator in the emulator and starting the Activity.




Fig.

5
Successful

Installation of Navigatour

8



Once
Navigatour

was completed a number of test cases were conducted on each of its interface

screens to
ensure that Navigatour

was behaving as designed and that each action executed on the prototype produced the
required response. As these tests where successful it was c
oncluded th
at Navigatour

is functioning as intended.


6
.2
Testing GPS Functionality

At this time of development
, there is no
deployed Android device

to test

Navigatour
,
but
there are a
number of ways to test GPS
functionality of

Android application
s
.

The DDMS tool in the Android plug
-
in for
Eclipse allows us to test GPS functionality very easily. In Eclipse, switch to the DDMS view and locate the
Location Controls section in the Emulator Control tab.

Fig.

6 shows the Location Control tab.
T
here are th
ree
separate tabs in the Location
Controls section. First, user

can manually send in the coordinates by specifying the
latitude and longitude. When the GPS data is received on the Android emulator, the application will display the
latitude and longitude

ob
tained.
Another way to send in geographical locations is to use a
.GPX

file. GPX (GPS
Exchange Format) is a light
-
weight XML data format for interchange of GPS data.

C
lick the Load GPX
button
to load the
.GPX

file
. User
can click the Play button to send a
series of coordinates to the Android emulator at
regular time intervals.
Fig.

7 shows the Loading of GPX file.

The Android Eclipse plug
-
in also supports KML
(Keyhole Markup Language) files. Like the
.GPX

file, user

can also send a series of coordinates to
the Android
emulator by clicking on the Play button
.






Fig.

6 DDMS Location Control Fig.

7 Loading GPX File


7. Conclusion and Future Work

The main aim of
this project is to develop Navigatour, a

mobile device

web application in order to
facilitate users with better tour guide options, who seek to find places of interest
.
Navigatour offers
users access

to information regarding their
visiting places

of intere
sts
. It contains various options

from which users can get
information regarding places of interests in a more precise manner
. From the research that was conducted, it
became clear that the technology exists to develop a system capable of providing the abov
e mentioned
functionality. It was then necessary to analyse the technology available, and determine what would be best
suited to Navigatour. The analysis was performed which includes requirements analysis of users, software and
hardware. This proved to be
crucial in determining the system requirements of Navigatour. Through the
completion of the analysis phase, a sound basis was developed for the design of Navigatour.


The results of the analysis are considered and used to ensure the system design is
developed to meet the
requirements of the user. Navigatour design entails: the analysis of the attributes of good design; system
architecture; interface design with analysis of HCI Guidelines.

The Android platform appears to be the one best
suited for impl
ementing LBS applications as the developer will rarely have to rely on third party APIs and web
services.

To conclude this paper documented the research, analysis, design, implementation and testing of the
Navigatour
prototype. In future work by analysing

the advance functionalities provided by the android
platform.

It is
intend
ed

to add more features to Navigatour and implement
it
on
a deployed

Android phone.



References

Android homepage (2009),
http://code.google.com/android/documentation.html


Android SDK Content (2009), Android Developers,
retrieved 10 Sept 2009
,

http://developer.android.com/sdk/1.5_r3/index.html


9


Allied Business Intelligence

(2008)
,
Mobile Location Based Services Revenue to Reach $13.3 Billion Worldwide
by

2013, says ABI Resea
rch
, Phone Content, 2008,
retrieved 10 Sept 2009
,

http://www.phonecontent.com/bm/news/2038.shtml



Crestani, F. Dunlop, M. and Mizzaro, S.

(2004)
, One
-
Handed Use as a Design Driver: Enabling Efficent Multi
-
channel Delivery of Mobile Applications,
Proceedings of the International Workshop on Mobile and Ubiquitous
Information Access
. Udine, Italy
. September
. 28
-
41
.

Installing Android SDK (2009), Android Developers,
retrieved 10 Sept 2009,

http://developer.android.com/sdk/1.1_r1/installing.html


KSOAP
2 (2009), web service client library, http://ksoap2.sourceforge.net/


Location and Maps (2009), Android Developers,
http://developer.android.com/guide/topics/location/index.html


Mark L.Murphy (2009), Beginning Android, guide to building mobile applications.


Reto Meier (2009), Professional Android Application Development, A hands
-
on guide to building mobile
applications.


REST, Web Service,
retrieved 10 Sept 2009
,
http://en.wikip
edia.org/wiki/Representational_State_Transfer



Steiniger, M. Neun and A. Edwardes

(2006)
,
Foundations of Location Based Services
, retrieved 10 Sept 2009,
http://www.geo.unizh.ch/publications/ cartouche/lbs_lecturenotes_steinigeretal2006.pdf


Schiller Jochen and Voisard Agnes (2004),
Location
-
Based Services
,

Morgan Kaufmann Publishers, LBS
Application Taxonomy, p.14.


So
mmerville (2001) Ian
, Software Engineering, 6
th

Edition. USA: Addison Wesley.

Tele Atlas

(2007)
,
Tele Atlas Expands Commitmen
t to Wireless Industry
, 2007,

retrieved 10 Sept 2009
,
http://www.teleatlas.com/WhyTeleAtlas/Pressroom/ PressReleases/TA_CT015697


William Hetzel

(1988)
, The Complete Guide to Software Testing, 2
nd

Edition. Massachusetts: Wellesley.

XML Web Service (2009),
retrieved 10 Sept 2009
,
http://en.wikipedia.org/wiki/Web_service