You are here: 52°North>Wiki>Projects Web>Android>GeoAR>GeoARDevelopment (18 Feb 2014, DanielNuest)Edit Attach

GeoAR Development

Source Code

Source code is available under Apache License 2.0 from 52°North's GitHub organisation:

https://github.com/52North/geoar-app

Building GeoAR

The build process is based on Maven. Run mvn clean install android:deploy

Implementing Datasources

See GeoARDatasource.

Changelog

  • v 0.5
    • Map view
      • Based on Mapsforge, also fixed for Android 4.2 (mapsforge forum bugfix)
    • AR view
      • Canvas visualisation for AR elements
      • Graphics improvements: scenegraph, clipping, Phong shader, multisampling and coverage, textures, pre-frustrum culling
      • Interaction with AR elements (feature details view)
    • Different visualizations assignable for each data source
    • Data sources
      • Support for multiple different data sources, management of multiple data sources (enable/disable, download, etc.)
      • Filtering with generated UI (using annotations in code)
      • SIR Datasource (GeoARDatasourceSirSos)
        • Implementation of SearchSensor-request
        • Show data values if datasource is a SOS
      • Multiple instances of same datasource
      • Removal of datasources
      • Save state of data sources
      • SOS Datasource (GeoARDatasourceSirSos)
        • Implementation of GetCapabilities, GetObservation, GetFeatureOfInterest)
        • Show FOIs on map and in AR
        • Interactive observation view (time series plot), wizard for plot content selection based on relative time ("last hour", ... "last year") and service metadata
      • Pre-defined datasources with packaged app
    • Improved platform independence
    • Improved caching
    • Updated codebase implementation (now based on existing configuration files)
    • Improved user feedback: send error logs per email, send feedback via email

Backlog

Statuses: unchecked = open task, checked = somebody is working on the task, DONE the task is "done". We have a very loose definition of done: Contributor did some tests and it worked.

Release 0.6

Group Item PrioritySorted ascending Costs Contributor/Status
DS

As a user I want to discovery datasets from the GeoViQua Data Access Broker (see here) and view them in AR as points of interest and on the map as bounding boxes. This should be based on the OpenSearch interface, see http://23.21.170.207/gvq-demo/services. The Icon for the datasource should be the GeoViQua icon (http://23.21.170.207/gvq-demo/gi-portal/index.jsp).
Create a test dataset in GeoViQua Datamodel
Create some screenshots when visualisation works.

0 led-aqua led-aqua checked
Gen. As a user I want to be guided through the process (a wizard) of adding a datasource if no datasource is installed yet. This guide should be integrated into the regular user interface and highlight where the next action is required and give textual step-by-step descriptions. 1 led-aqua led-aqua DONE
Gen. Change AR implementation to JTS Geometry usage 1 led-aqua led-aqua checked
DS As a user I want to browse WMS layers on a map. 2 led-aqua led-aqua unchecked
DS Remodeling DataSource for generic JTS Geometry usage 2 led-aqua led-aqua DONE
DS Map all the DataSources to the changes of the geometries in the DS library 2 led-aqua led-aqua checked
DS As a user I want to view an automatically adapted visualisation of WMS-Q on a map. 3 led-aqua led-aqua unchecked
DS Implementing Rastervisualization annotation 3 led-aqua led-aqua DONE
AR Rastervisualization interface for integrating in AR 3 led-aqua led-aqua DONE
DS Requesting and handling WMS-Layers as tiles 3 led-aqua led-aqua unchecked
AR As a user I want to show basic geometries defined by the DataSource in AR view 4 led-aqua led-aqua led-aqua checked
MAP As a user I want to show basic geometries defined by the DataSource on the Map 4 led-aqua led-aqua led-aqua checked
AR As a user I want to browse WMS layers in augmented reality. 4 led-aqua led-aqua led-aqua unchecked
AR WMS-Layer direct input to FloatBuffer and OpenGL textures (for memory-saving purposes) 4 led-aqua led-aqua unchecked
AR As a user I want to view an automatically adapted visualisation of WMS-Q in augmented reality. 5 led-aqua led-aqua unchecked
Gen. As a developer, I want to use git for version management > follow instructions on SvnToGitHubMigration 6 led-aqua led-aqua unchecked
Gen. As a developer I want GeoAR and it's dependencies to be build nightly on the buildserver. 8 led-aqua led-aqua unchecked
AR

As a user I want to have a visually pleasing experience (less flickering). > Integrate OpenCV image smoothing algorithm is integrated.

10 led-aqua led-aqua led-aqua unchecked
DS enviroCar data source with interactive visualisation of track data (requires line string selection feature) 12 led-aqua led-aqua led-aqua unchecked

Release 0.7

Group Item PrioritySorted ascending Costs Contributor/Status
Gen. Fix encoding of all files, see http://sensorweb.forum.52north.org/geoAR-problem-installing-td4025991.html#a4026664 0 led-aqua unchecked
DS / MAP SOS-Q visualisation of data sources ("quality-supported datasource"), e.g. see station has the latest information available (maybe using the GDA extension). 1 led-aqua led-aqua led-aqua led-aqua unchecked
AR As a user I want to see a snapshot of the latest data as a kind of tabloid (preselected time frame) flying over the sensor location so that I do not need to open the actual data to get a grasp of the data. This way I am able to estimate fitness for use of the data. 1 led-aqua led-aqua led-aqua led-aqua unchecked
Gen. Change the logo fonttype to Trebuchet MS 1 led-aqua unchecked
AR Bringing quality awareness into context (buffered circle indicating accuracy, using focus to convey accuarcy of the direction/item location), using the GEOLabel as a billboard... 2 led-aqua unchecked
DS As a user I want to search the EuroGEOSS Broker for datasets and see their spatio-temporal extend, and if possible the data (using WMS, WMS-Q, KML...) 2 led-aqua led-aqua unchecked
Gen. As a user I want to conveniently know which libraries the project relies on and where I can get more infos about them (example). 3 led-aqua unchecked
AR As a user I want to interact with (e.g. zoom in) data previews and see live updates of data. 5 led-aqua led-aqua led-aqua unchecked
AR As a user I want the visualisation to adapt to the current locational uncertainty/error. 8 led-aqua led-aqua unchecked

For Release 0.9

Implement data sources and visualisations for community use cases: GeoARCommunitiesDemos

For Release x.x

Group Item PrioritySorted ascending Costs Contributor/Status
DS Gen. As a user I want to explore time-enabled WMS (including elevation information) in AR and mobile map view.
  • Meteorology use case, look at (projected, real time) meteorology data
  • Look up in the Sky (elevetion WMS, MetOceanDWG) > nice because scale is quite coarse!
  led-aqua led-aqua led-aqua unchecked
AR As a user I want to see details about my status and positions in AR and map view, to be switched on and off in preferences
(Details of location: Accuracy, Longitude / Latitude / Altitude; details of settings)
1 led-aqua led-aqua unchecked
DS As a user I want to browse data from Cosm that I found via the Sensor Instance Registry. 1 led-aqua led-aqua led-aqua unchecked
SIR As a user I want to discover Cosm sensors using the Sensor Instance Registry. 1 led-aqua led-aqua unchecked
CB As a provider I want to interactively upload datasources to the codebase using a web form. 1 led-aqua led-aqua unchecked
SOS DS AS a user I want the best possible performance on mobile applications and a small data usage footprint. (So I want to use JSON data encoding...) 1 led-aqua led-aqua led-aqua led-aqua unchecked
DS As a user I want to explore data based on Linked Data coming from a SPARQL endpoint such as the LODUM one: http://data.uni-muenster.de/php/sparql/ 1 led-aqua led-aqua unchecked
DS As a user I want to manage visualizations (colours, parameters, value visualization, etc.) for SOS and WMS data sources for both the AR and map view. 2 led-aqua led-aqua led-aqua unchecked
AR As a user I want an AR overlay of street layers to have a context/improved haptic to estimate the correctness of the current positioning. 2 led-aqua led-aqua led-aqua unchecked
Gen. Providing the SettingsView class also to data sources (our powerful View which makes a GUI from simple annotated fields, validates and updates inputs for both directions).
This would help making third-party plugins look and feel the GeoAR-way smile
2 led-aqua led-aqua led-aqua unchecked
AR Calculating POI pixel coordinates on display (GLUUnproject), displaying features/views based on their direction 2 led-aqua led-aqua unchecked
AR Raster support/Texture support for scene graph 2 led-aqua led-aqua unchecked
CB As a provider I want to edit the visibility of datasources in the codebase, e.g. restrict to certain download users which have a token, or IP ranges. 2 led-aqua unchecked
DS As a user I want to be able to view KML files from a URL and see their geometries (points, lines, polygons) on a map and augmented reality view. 2 led-aqua led-aqua led-aqua unchecked
DS As a user I want to be able to open an automatically adapted visualisation of KML-Q file in AR and map view. 2 led-aqua led-aqua led-aqua unchecked
DS As a auser I want to explore the OpenPOI (http://openpoi.ogcnetwork.net/) database in map and AR view > implement a datasource, the API is quite simple (http://openpoi.ogcnetwork.net/api.html). 2 led-aqua unchecked
Gen. As a user of Android 2.3.3 I want to use the app. 2 led-aqua led-aqua unchecked
DS As a user of ArcGIS Online I want to explore content from ArcGIS Online or further ArcGIS Server resources from within the app as a datasource. There also is an SDK: http://resources.arcgis.com/content/arcgis-android/about. 2 led-aqua led-aqua unchecked
Codebase As an adminstrator I want to specify the data directory of the Codebase server flexible, also configuring several directories so that I can update server components without having to upload the datasources again. 2 led-aqua unchecked
Gen. As a user I want to interactively edit the URL of the codebase server and also use several servers at the same time. 3 led-aqua led-aqua unchecked
AR As a datasource developer I want FeatureView and FeatureDetailsView integration defined in the DataSource. 3 led-aqua unchecked
Gen. As a developer I want to build seperate release and delopment versions with maven-android-plugin, use Android Lint from Maven/Eclipse, use one parent pom to build GeoAR including selected data sources using profiles.
See also http://code.google.com/p/maven-android-plugin/wiki/Changelog for useable features.
3 led-aqua led-aqua unchecked
SOS As a user I want to add and remove services myself. Also, I want my own additions to be persistent between app and datasource updates. 3 led-aqua led-aqua led-aqua unchecked
Gen. As a user I want to open a predefined datasource (e.g. SOS URL/offering/obsprop/feature) based on a 2D barcode or URL that I found on a website. 3 led-aqua led-aqua led-aqua unchecked
Gen. As a user I want to download nightly builds of the software provided by the 52N build server to always get the latest features. 4 led-aqua unchecked
AR As a user I want to enable a compass in AR view for better orientation. 4 led-aqua unchecked
AR As a user I want to enable a minimap in AR view for better orientation. 4 led-aqua unchecked
Gen. As a user I want to share my datasource settings with others using Android sharing facilities (e-mail, SMS, ...). 4 led-aqua led-aqua unchecked
DS As a user I want to set icons for different data sources. 4 led-aqua led-aqua unchecked
DS As a user I want to discover data from OGC Catalog serverices (CSW), using the open search interface, in AR and map view. 4 led-aqua unchecked
DS As a user I want to open data source results that are available as KML in Google Earth. 5 led-aqua led-aqua unchecked
DS As a user I want to view GeoJSON files including their embedded geometries on a map. 5 led-aqua led-aqua unchecked
DS As a user I want to browse OpenSearch data sources layers on a map and in AR view. 5 led-aqua led-aqua unchecked
Gen. GUI building blocks: Custom views for data sources, callbacks for interaction with AR view (get visible region, etc.) 5 led-aqua led-aqua unchecked
AR Container Representation: containerView settings, interaction with containers, the ability to switch between different representations of container. 5 led-aqua led-aqua unchecked
Gen. Include LBS using plugin framework: including altitude webservice as an additional and optional feature, orientation Change without restarting activity 5 led-aqua led-aqua unchecked
DS As a user I want to browse OpenSearch data sources layers on a map and in AR view. 5 led-aqua led-aqua unchecked
CB As a user I want to search the codebase via keywords and browse via categories from within the app. 5 led-aqua led-aqua led-aqua unchecked
DS As a user I want to load resources from a web features service and view them on both map and AR view, e.g. lines, polygons, points. 5 led-aqua led-aqua led-aqua unchecked
DS As a user I want to view GeoRSS files including their embedded geometries on a map. 6 led-aqua led-aqua unchecked
AR As a user I want to view GeoJSON files including their embedded geometries in an augmented reality view. 7 led-aqua led-aqua unchecked
AR As a user I want to view GeoRSS files including their embedded geometries in an augmented reality view. 8 led-aqua led-aqua unchecked

Use Cases/Scenarios

Augmented Reality Sensor Discovery

Walter lives in a big city, enjoying the rich cultural live and other commodities. However, he also regularly suffers from negative aspects of a city environment: pollution in the form of noise and air contamination. But he hopes that a new application for his smartphone will make his live easier. He starts the app when he leaves the house. While he is walking down the street towards the city center, he discovers that the weather is rather warm and grey clouds hang over the city. He wonders if the pollution levels are hazardous and takes out his mobile to check the application. He starts an augmented reality based discovery of nearby sensors. By pointing the phone into different directions he sees that there are a few sensor stations around, but only one is in the direction he is travelling. The icon of the station depicts that it provides current measurements and is trustworthy (because the owner of the station provides specific metadata about the station - luckily the app just shows a green circle instead of that document!). He opens the details of the station, looks at the current values and browses a time series view of the values of the pollutants during the last hours. He continues his trip... (and read on in user story "Augmented Reality Web Maps")

Implied Features
  • "discovery of nerby sensors" -> SIR data source
  • "the app just shows a green circle" for indicating quality -> Maybe generic means to express quality across different data sources, not specific to the individual visualizations of each data source
  • information about "the current values" -> SOS client (see code from Finder)
  • browse "a time series view" -> Providing data sources capability to specify Views (possibly kind of view holder pattern, see also code from Finder)
  • Discovering using SIR, viewing using SOS client -> Ability to combine data sources (maybe like issuing a request with mime and url and see if any other data source can handle it, like the Intent system)

Augmented Reality Web Maps

After a while Walter does not feel well. He opens of the environmental observation app again and checks the current level of the pollutants and looks at them together with the values of a nearby weather station. The air temperature is increasing quite steadily and the time series plot confirms what he sees around him - no wind at all. Walter is worried. Luckily the app allows to open a different type of data as well. It provides spatially covering information based on simulation and interpolation using many different environmental sensors. While that information is less precise than the station measurements, it still gives Walter an idea of the data value at his location. He explores the interpolated values using a map interface but has troubles relating it to his current position, so he switches to the AR view. He is glad to see that the pollution is estimated to be very low in the direction he is walking, and the probability of that prediction being correct is rather high. Since he can also see that there is no data available for a large area nearby, and looking up to the sky he sees some rain clouds moving from that area to his location. He makes a mental note to check again before he is going home how that could affect his day...

Implied Features
  • Support for raster data?

Future Features and Ideas

Contributor Installation

GeoAR uses a Maven (http://maven.apache.org/) build process powered by the Android Maven Plugin (http://code.google.com/p/maven-android-plugin/). Follow the steps below to download the source code from the SCM server for building it or testing it on your own (emulated) device.

Prerequisites

Eclipse Project Setup

  1. Start Eclipse
  2. Check out the project from the source code management (SCM) system
    1. Open perspective "SVN Repository Exploring"
      • New > Repository location
      • https://svn.52north.org/svn/projects/android/
      • (add login for developers only)
      • Click Finish
    2. Navigate to directory /GeoAR/trunk
    3. Right click on the directory trunk
      • Check out as Maven Project ... (this option is only available if you installed the m2e connectors properly)
      • Click Finish
    • Alternatively, you can go via File > New > Project... > Maven > Checkout Maven Projects from SCM. If there is no svn protocol in the drop-down menu next to SCM URL:, then please install m2e connectors by clicking on the link to the m2e Marketplace in the bottom of the window.
  3. You have a new Eclipse project called geoar
  4. Check out GeoAR data source project following step 2, but navigating to /GeoARDataSource/trunk
  5. Open Run configurations
  6. Run Install GeoAR
    • The file /target/geoar-0.0.1-SNAPSHOT.apk is created, as are some other directories
  7. Run the application by right-clicking the project, Run as... > Android Application
Troubleshooting
  • Make sure you have a Java SDK (not a JRE) configured as your runtime

Developers

led-aqua led-aqua
Topic revision: r49 - 18 Feb 2014 12:49:54, DanielNuest - This page was cached on 26 Aug 2016 - 06:38.

This site is powered by FoswikiCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Wiki? Send feedback