Mapsolute MapTP JAPI
MapTP Java Reference Guide

Mapsolute MapTP JAPI

V.5.2.0

The term MapTP JAPI stands for "Map Transfer Protocol Java Application Programming Interface". It was designed to offer seamless integration of mapping functionality into software applications written in the Java programming language.

The Java and C++ programming languages have different concepts for organizing classes and for avoiding name clashes. While Java uses the package concept, C++ has namespaces. These terms are used whenever the programming language is important. For general descriptions where the particular programming language is not important and that apply to both Java and C++ the term package is used preferably throughout the documentation.

Mapsolute in turn organizes packages in package sets. A package set defines a class hierarchy of cohesive, possibly interdependent and associated classes. Many times a package set is also a compilation unit.

The following package sets are defined:

MBase The MBase package set contains utility classes for message handling, synchronization, and resource management. MUtil is the only package in the MBase package set.
MapTP The MapTP package set defines the protocol that is used between MapTP client applications and the MapTP server for compressed and incremental vector data transport. The protocol defines an object model that gives access to maps and map vector data. The package set also defines protocols for the communication between services and the MapTP server. Besides the protocols, the package set provides sessions that are used for communication, a rendering engine that controls the interaction with maps and the drawing process, and functionality for a persistent map storage.
Maplet The name Maplet stands for mapping application. The Maplet package set provides functionality that is required by most MapTP mapping applications. For example, classes of the package provide functionality for the connection management to the MapTP server and control the process of requesting map data from the MapTP server. Moreover the package set defines an interface for painters and provides a concrete painter class that can be used to paint maps according to MapTP's standard map definition scheme.

The Maplet package set further provides a windowing toolkit containing controls for building GUIs. In addition the package set contains the application's resource manager, the main panel of the application and the application frame window.

The following diagram shows the packages of the MapTP JAPI:

API_Stack.gif

All packages are available to the MapTP application programmer. Note that the Maplet package set (displayed inside the red border) is available to the programmer in source code. The programmer can use it as is, extend it or tailor it as required or desired. The programmer is free to use it without restrictions even for commercial projects. The classes provided are ready to use and for most projects the source code does not need to be changed. However this code can be used as an example on how to program with MapTP.

The table below describes briefly each package of the JAPI. The table is categorized by package set. The Service Framework is described in an own section, since it does not belong to a package set. The left column lists the package names with a link to the documentation of the package. In the right column a brief description of the package is provided.

MBase Utilities
MUtil The MUtil package contains several utility classes used for message handling, synchronization and resource management. These classes are used throughout from classes of the API. Application programmers should therefore have an understanding of the basic concepts that are introduced in this package.

MapTP Session handling, communication protocols, object model, rendering engine and persistence
MClient The MClient package contains a session class for connecting to and communicating with the MapTP server. This class does not provide any protocol commands. Instead, these commands are implemented in the communication protocols described in the following sections. The idea behind separating the session from the protocol is that a session may be used for more than one protocol.

In addition the MClient package provides classes that are used by various protocols as a mechanism for exchanging generic data structures with the MapTP server.



MapTP The MapTP package provides functionality that is essential for every MapTP client application. It contains the MapTP protocol for the communication between MapTP client applications and the MapTP server. Furthermore, the MapTP package provides an object model for representing a MapTP map containing map layers and map objects. Each map object has a geometry and generic attributes that can be accessed via iterators. Map data that is retrieved from the MapTP server is automatically stored in the object model.


MapTP Service MapTP client applications use the MapTP service protocol to access custom, business, or domain specific functionality and data. Examples for service implementations are spatial algorithms or gateways to existing infrastructure. The MapTP server routes and coordinates the communication between clients and services. The protocol is implemented in the MapTPService package.


HTTP Service The HTTP Service protocol extends the service concept introduced with the MapTP Service protocol by allowing access to services from HTTP clients via HTTP GET and POST requests. The protocol is implemented in the HTTP Service package.


MapTP MapService The MapTP Map Service package provides a protocol that allows to upload a custom map to the MapTP server and to manipulate custom maps on the server. This package provides an object model that is used to create a custom map containing map layers and map objects.


PrintTP The PrintTP package provides a protocol that enables the printing of the current canvas image into an HTML form on server side. Afterwards the mapping application can access this HTML form via a URL.


MapTPRE The MapTP rendering engine controls the rendering and paint process of maps. At its core it provides a canvas class that organizes the rendering and whose instances act as containers for maps and custom objects. Animated zooms, jumps and pans are also controlled by the canvas.


MapTPP This package provides the functionality for the persistent map storage. Any map data that is received through MapTP can be persistently stored on the client's local file system, either for caching purposes or to enable offline mapping applications.

Maplet Application and windowing – Delivered in source code
Maplet Maplet stands for mapping application. MapTP mapping applications are based on functionality of the Maplet package. For example, classes of the package provide functionality for the connection management to the MapTP server and control the process of requesting map data from the MapTP server. Furthermore, the package defines an interface for painters and provides a concrete painter class already, which can be used to paint maps according to MapTP's standard map definition scheme.


MWT The MapTP windowing toolkit (MWT) provides classes for building the GUI of a MapTP client application. MWT provides the main panel of the application as well as common controls for MapTP mapping applications.

The implementation of MWT depends on the Java abstract windowing toolkit (AWT).



MApplication MApplication provides the application's resource manager and the application frame window that can be used to create a complete MapTP application. This can be a standalone Java application or an applet running in a Web browser.

MApplication depends on MWT.



MWTMaplet This package provides class MapletPanel that is used as the root component of all MWT controls in a mapping application. In addition, this package provides some basic map controls that offer rich functionality similar to components and that can be useful to a mapping application.

MWTMaplet depends on MApplication, on MWT and on Maplet.

Service Framework Support for building services
SFW The Service Framework supports the service developer in building HTTP and MapTP Services. It provides basic concepts that are needed in every service implementation such as session management and protocols to communicate with the MapTP server.

MapTPTM is a registered Trademark of Mapsolute GmbH. Java and all Java-based marks are trademarks of Sun Microsystems, Inc. in the United States and other countries. Mapsolute GmbH is independent of Sun Microsystems, Inc. Other company and product names are the property of their respective owners.

Contact Company Newsletter
© 2008 Mapsolute GmbH, - powered by MapTP, Digital map data provided by NAVTEQ
The use of the map data is subject to the User-Terms of Mapsolute.  Privacy Policy