IbnBatota -- Technology for a Mobile Map Application

March 28, 2005

Sharing is Caring

A mobile map application is not a conventional GIS modified to operate on mobile devices, but rather is a system built using a fundamentally new paradigm, as mentioned by David Maguire in 2001.In this article, I will discuss the integration of XML (eXtensible Markup Language) and J2ME (Java 2 Micro Edition) to build a mobile map application running on 2.5G and 3G mobile devices such as the Nokia Series 60.

The Characteristics of the Mobile Market
It is important to look at the mobile market in isolation.It has specific needs that make it unlike markets for PCs or fixed domestic appliances.Five key characteristics help make it unique, according to Symbian OS perspective:
  • mobile phones are both small and mobile;
  • mobile phones are ubiquitous - they target a mass market of consumer, enterprise and professional users;
  • mobile phones are occasionally connected, they can be used when connected to the wireless phone network, locally to other devices or on their own;
  • there is a need to differentiate the products in order to innovate and compete in a fast evolving market; and
  • the development platform is open to enable independent technology to develop third party applications and services.
Available Knowledge and Tools
In the past years, GIS application developers have had to rely on programming languages and tools that were supplied by GIS vendors. Moving GIS to mobile technology is a big challenge, taking into consideration the special characteristics of spatial data.

The combination of XML and J2ME introduces a powerful tool for serving spatial data on mobile devices.Using an XML-based data format provides an object-based data format in which each feature can be defined as an object or set of objects, independent from other features.Storing spatial data in XML formats reduces the storage size of the data and improves the performance of the application.Developing in J2ME provides flexibility to adapt to many different platforms.Object-based data formats supply a spatially suited data format.

Understanding Mobile Map Applications
To understand the mobile map application, we need to understand what is an "application." An end-user application consists of the following components (refer to Figure 1, below).
  1. A user interface (UI) where user gestures are applied and interpreted as actions.
  2. Application logic which receives the actions and may request application data from a repository.
  3. A data repository (both spatial and tabular data).

Figure 1. Typical end user mobile map applications.Click image for larger view.

The application can then be classified as distributed or local. Distributed applications typically involve both a client component and a server component of the application, whereas a local application resides on a single device.

Application development is always constrained by the target platform's capabilities.This is especially true for the "ultralight" J2ME platform, because developers face many difficulties related to the platform's physical limitations.These difficulties include:
  1. the physical screen size (96 x 128 to 176 x 208 pixels), this covers a display area of 12,288 to 36,608 pixels;
  2. limited input/output capabilities;
  3. limited memory;
  4. limited processing power; and
  5. intermittent network connections.
These characteristics are defined in J2ME configurations, (connected limited device configuration of CLDC,) which provide specifications for all java-enabled mobile devices.

System Application Mode
There are three models of mobile map applications based on the connectivity.
  1. Offline mode (standalone), the application and data stored locally on the compact flash card.
  2. Server connected mode, only the application (not always) has been installed locally ,but all data comes from a centralized database stored on the server.
  3. Hybrid mode, some data has been installed locally and frequently business data will be fetched from server.
Each mode has its own advantages and disadvantages. Offline mode can work independently (anytime and anywhere).In this mode, all data must to be installed in advance and therefore it will not provide dynamic information.On the other hand, the server connected mode might be expensive to access the application, and wireless connections can occasionally drop off due to low signal strength.

Overview of the J2ME Platform
J2ME is aimed squarely at consumer devices with limited resource (memory display size and processing power).Many such devices have no option to download and install software beyond what was included in the manufacturing process.With the introduction of J2ME, devices no longer need to be "static" in nature.

Like its enterprise (J2EE), desktop (J2SE) and smart card (Java Card) counterparts, the J2ME platform is a set of standard Java APIs defined through the Java Community Process (JCP) program.

The J2ME Architecture
The J2ME architecture defines configurations, profiles and optional packages as elements for building complete Java runtime environments that meet the requirements for a broad range of devices.

Configurations. Configurations are composed of a virtual machine (VM) and a minimal set of class libraries.They provide the base functionality for a particular range of devices that share similar characteristics, such as network connectivity and memory footprint. Currently there are two J2ME configurations: the Connected Limited Device Configuration (CLDC) and the Connected Device Configuration (CDC).CLDC is designed for devices with intermittent network connections, slow processors and limited memory-devices such as mobile phones, two way pagers and PDAs.

Profiles. In order to provide a complete runtime environment targeted at specific device categories, configurations must be combined with a set of higher level APIs, or profiles, that further define the application life cycle, the user interface and access to device specific properties.

The Mobile Information Device Profile (MIDP) offers the core application functionality required by mobile applications, including the user interface, network connectivity, local data storage and application management.Combined with CLDC, MIDP provides a complete Java runtime environment that leverages the capabilities of handheld devices and minimizes both memory and power consumption.

Optional Packages. The J2ME platform can be further extended by combining various optional packages with CLDC and their corresponding profiles.Created to address very specific requirements, optional packages offer standard APIs for using both existing and emerging technologies such as Bluetooth, web services, wireless messaging and database connectivity.

In addition to J2ME's configurations, profiles and optional packages, Figure 2 shows that applications may draw on vendor-specific interfaces when needed.These are not parts of standard J2ME, but extend or provide functionality that is specific to a given device.We can think of vendor-specific APIs as extensions to configurations and profiles.

Figure 2.The organization of J2ME.Source: Sun Microsystems.

System Design and Implementation
The most important elements of successful mobile map applications are the availability of quality data content and a user interface allowing easy, accurate and quick access to that content.User interface design is a significant challenge for any mobile software development due to the limited device resources.In the design phase we focused on creating an intuitive interface based on requirements and recommendations from previous ethnographic studies on mobile applications practices and ways of using information resources.

1.Database structure
The spatial and attribute data was stored in XML format.XML provides a common data exchange format, encapsulating both metadata and data.This allows different applications and databases to exchange information and communicate without having to understand anything about each other.

The initial task in the implementation phase was to convert the spatial data from an ESRI shapefile to XML format.Each feature is stored as an object.Three types of objects were defined:
  1. Point objects, presenting the services layer.
  2. Line objects, presenting the streets layer.
  3. Rectangle objects, presenting districts boundaries.
As shown in Figure 4 (M2), the services layer contains more than 1,500 points in eight categories (hospitals, hotels, museums, clubs, cinemas, squares, malls and landmarks).

2.Function definitions
The main functions in the application can be summarized as follows:
  1. Map manipulation: zoom-in, zoom-out and pan.
  2. Identification of any feature from the map, and retrieval of the information for the selected feature.This information can be text data or a photo.
  3. Search for a street or point of interest by specifying name, prefix or by select from a sorted list of names.
  4. Clear selection of the selected feature.
  5. As shown in Figure 3, use of the mobile cursor keys (joy-stick) to scroll the map in the four main directions (right-left-up-down).The digit keys (1-2-3-4-6-7-8-9) can also be used to scroll the map in eight directions.

Figure 3.Mobile cursor keys can be used to scroll the map.

The '*' key can be used to select a feature from the map such as a hotel (Figure 4-M10), and the '#' key can be used to retrieve the information about the selected feature (Figure 4-M4).(This information can be text data, photo or both.)

The user can search for any service point or street by specifying name prefix (Figure 4-M5).The result is a list of that prefix.By selecting any of these services, it will be marked and flashed with red color on the map.

3-User interface and menu hierarchy
Java-enabled phone interface design is very different from the design used for PC or Internet applications.System functionalities are organized in a hierarchy of nested menu options.Figure 4 shows the cascading menu for the IbnBatota application.When users select a menu option, it takes them to a submenu with another list of available options.Users continue to navigate down the menu system till they hit the menu hierarchy node, which usually instructs the system to perform a function (e.g., locate a point of interest on the map or retrieve data about selected feature).

Figure 4.IbnBatota menu hierarchy. Click image for larger view.

  • Liu Yong, Li Qing Quan, Xie Zhi Ying and Wang Chong: Research of mobile GIS application based on handled computer, ISPRS Proceeding 2002.
  • Java 2 Platform, Micro Edition (J2ME)
  • Mobile Information Device Profile (MIDP)
  • Rainer Malaka, Robert Porzel, Alexander Zipf and Vasu Chandrasekhara: Integration of smart components for building your personal mobile guide.European Media Laboratory.
  • Sonera MediaLab: Mobile java application development, 2002.
  • Takino Shuichi: "GIS on the fly" to realize wireless GIS network by java mobile phone, International Symposium on Asia GIS 2001.

Sharing is Caring

Geospatial Newsletters

Keep up to date with the latest geospatial trends!

Sign up

Search DM

Get Directions Magazine delivered to you
Please enter a valid email address
Please let us know that you're not a robot by using reCAPTCHA.
Sorry, there was a problem submitting your sign up request. Please try again or email editors@directionsmag.com

Thank You! We'll email you to verify your address.

In order to complete the subscription process, simply check your inbox and click on the link in the email we have just sent you. If it is not there, please check your junk mail folder.

Thank you!

It looks like you're already subscribed.

If you still experience difficulties subscribing to our newsletters, please contact us at editors@directionsmag.com