1st Edition
Programming GPS and OpenStreetMap Applications with Java The RealObject Application Framework
Written by an expert in the development of GPS systems with digital maps and navigation, Programming GPS and OpenStreetMap Applications with Java: The RealObject Application Framework provides a concrete paradigm for object-oriented modeling and programming. It presents a thorough introduction to the use of available global positioning data for the development of applications involving digital maps.
The author first describes the different formats of GPS data and digital maps and shows how to use recorded GPS traces to replay and display this data on a digital map. Then, he works through in detail the processing steps of obtaining dedicated data from OpenStreetMaps and how to extract a network for a simple navigation application. For each topic covered—GPS data, OpenStreetMaps, and navigation—Java code is developed that can easily be adapted to the readers’ needs and locality.
Finally, all components are put together in a sample computer-game application modeled on the well-known board game, Scotland Yard. The computer game is intended to be a basis from which readers can develop and customize their own application for their desired geographical area. The developed application can be "published" on the Internet and made available for interactive multiplayer competition.
This book provides a fun and interesting way to learn distributed programming with Java and real-world data. Open-source software is available on a companion website at www.roaf.de
FROM VISION TO MISSION
Software Objects and Real-World Representations
Introduction
Controlling Remote Objects via References
Object-Oriented Programming
Models in Physics
The Vision
Introduction
Physical Objects
Projecting Reality into Virtual Worlds
Real-World Objects (ROs)
Real Object Applications (RO-Apps)
Real Object Application Framework (ROAF)
OOA Analysis and Mission
Introduction
Language Analysis
Semantic Network
Gathering Information
Data Dictionary
Problem Statement
Candidate Objects
The Mission
GLOBAL POSITIONING
Space and Time
Introduction
A GeoPoint for Spatial Coordinate Systems
A Position Interface for Various Coordinate Systems
A Route to Manage an Array of Positions
NAVSTAR GPS
GPSpoint implements GPSinfo
GPStrace extends Route
JavaGPS
Requirements for a GPSunit
Real vs. SimulatedMotion
Recording a liveTrace
Loading a GPX File to a GPStrace
Play Back a GPStrace
The GPS Package: roaf.gps
From Geography to Cartography
Introduction
Map Projection Systems
Requirements for a Map GUI
The Framework Pattern
Creating a MapPanel
Creating a Swing Mapping Application
Interacting via MapEvents
Deploying the GPXviewer.jar
The GUI Mapping Package
REALOBJECTS (ROs)
Objects in Motion
Introduction
Every RealObject has a GPSunit
abstract Motion of a RealObject
Creating a Motorcycle
Observing Motorcycles
Processing Digital Maps
Introduction
Overview
A Map Compiler for OSM Data
Collecting Geometry in the Field
Map Attribution with JOSM
Map Formats
Processing Maps with Osmosis
Parsing OSM Files with the OSMparser
toolchain Configuration
Rendering OpenStreetMaps with Kosmos
Making Maps Navigable
Introduction
Map Compiler Branches
Networking
Creating a NavigableMap
Conclusion
Navigating Objects
Introduction
Navigation Systems
Route Calculation
Exploring the Graph with a GameMap
The Navigator
ROAPPS: REALOBJECT APPLICATIONS
Separating the RO Client and the ROA Server
Introduction
Observing Remote Objects
ROAF Client Software
The roaf.util.RMI Class
Client Server Architecture
Introduction
Status Report
Four-Layer Architecture
The ServerEngine
The RealObjectsServer
SOs: ServerObjects
Server Tuning
The RealObjectsBox
ROAdio Broadcasting
Rolling out a ROApp
Introduction
LC: The Game Scenario
Server Architecture
Application Layer: ROApp Extends ROServer
ROF: The RealObject Framework
ROApp clients: LCPlayer extends RealObject
More ServerObjects
The ROApp Scenario
Mission Accomplished: Time to Play
Introduction
Using the Application
Interactive GUIPlayers
Intelligent Players
Robocode
ROAF: REAL OBJECT APPLICATION FRAMEWORK
Evolution
Introduction
Game Scenario versus Real World
ROApp Classification
RO Classification
Decouple Mature ROs
The RealObject Hierarchy
Biography
Kristof Beiglböck