1st Edition

Programming GPS and OpenStreetMap Applications with Java The RealObject Application Framework

By Kristof Beiglböck Copyright 2011
    250 Pages
    by A K Peters/CRC Press

    250 Pages
    by A K Peters/CRC Press

    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