uDig OSGi Mapping Platform
Summary
TLDRThe talk introduces 'Unique', a Java software stack for desktop applications in geographic information systems (GIS) and image processing. It highlights its SDK, which offers tools for spatial data visualization and processing, and is built on top of the Eclipse RCP. The platform focuses on accessing spatial information through a repository approach, while the application layer provides map editing and data rendering tools. The script also showcases custom applications built using the SDK, demonstrating its versatility in various GIS domains.
Takeaways
- π The talk discusses the unique software stack, a Java desktop application framework specifically designed for spatial data handling in GIS and image processing contexts.
- π The unique stack was initially an RCP (Rich Client Platform) application for Eclipse, marking it as one of the first applications of its kind.
- π The software is not just a product but an SDK (Software Development Kit) that allows developers to build and customize applications to suit their needs.
- π The unique stack supports a variety of spatial data types including vector data, line strings, point data sets, and raster data.
- π The software enables local desktop GIS capabilities and can integrate with spatial databases and web services, emphasizing a desktop-internet GIS approach.
- π The SDK is built upon a layered architecture that includes leading open-source spatial libraries and leverages Eclipse RCP along with other Eclipse projects like EMF and GEF.
- π The GIS platform layer of the SDK focuses on accessing spatial information through interfaces like icatalog, Isearch, and Iservice.
- π The GIS application layer is centered around visualization and processing, utilizing an EMF model of maps composed of layers and viewports.
- π The software includes a multi-threaded rendering engine suitable for desktop applications that aggregate data from various services.
- π The custom application level allows for integration of different tools and renderers into the GIS platform, showcasing its flexibility for developers.
- π The talk also highlighted various case studies where the unique stack has been utilized to develop specialized applications for tasks like route planning, network analysis, and environmental management.
Q & A
What is the main focus of the UNIQUE software stack?
-The UNIQUE software stack is focused on providing capabilities for desktop applications to work with special data sets, particularly in the spatial domain such as Geographic Information Systems (GIS) and image processing.
What does the acronym 'RCP' stand for and how is it related to UNIQUE?
-RCP stands for Rich Client Platform. UNIQUE was one of the first applications built on Eclipse RCP, which is a framework for building rich desktop applications.
What types of spatial data does UNIQUE support?
-UNIQUE supports various types of spatial data including vector data (shapes and lines), point data sets (locations of features), and raster data (aerial imagery, satellite data, and scientific measurements like elevation).
What is the purpose of the SDK in the context of UNIQUE?
-The SDK (Software Development Kit) in UNIQUE is not intended to build a customized product for end-users but rather provides a set of tools and functionalities that developers can use and rearrange to suit their specific needs.
How does UNIQUE differentiate from other GIS systems?
-UNIQUE differentiates itself by offering a layered architecture and a focus on desktop applications that can work with both local and remote data sets, providing a comprehensive solution for spatial data visualization and processing.
What is the significance of the 'gis platform' layer in UNIQUE's SDK?
-The 'gis platform' layer in UNIQUE's SDK is significant as it focuses on accessing spatial information. It introduces concepts like the icatalog interface for accessing services, the I search interface for querying web catalogs, and the I service interface for representing connections to spatial information.
Can you explain the role of the 'iresolve' interface in UNIQUE?
-The 'iresolve' interface in UNIQUE is a custom adaptation of the Eclipse 'IResource' approach. It accounts for delays and data volume in spatial data access, introducing a progress monitor and allowing for IO exceptions, making it suitable for connecting to files or databases in the spatial industry.
What is the 'map editor' in UNIQUE and how does it function?
-The 'map editor' in UNIQUE is a tool that provides visualization and a set of tools for working with spatial data. It uses a data model based on a map consisting of layers arranged in draw order, a viewport representing the area of the world being viewed, and possibly a time range or elevation.
How does UNIQUE handle styling and theming of spatial data?
-UNIQUE allows for dynamic styling and theming based on attribute data. Users can explore attribute information in a tabular form or with an info tool and adjust styles accordingly, a process known as theming in GIS.
What kind of tools and functionalities are available in the UNIQUE SDK for developers?
-The UNIQUE SDK offers a variety of tools and functionalities for developers, including editing tools for spatial data, printing facilities, location search modules, routing information modules, and a toolbox of plugins for processing.
Can you provide an example of a custom application built using UNIQUE?
-An example of a custom application built using UNIQUE is a distance early warning system developed by Potstorm Gear, which integrates UNIQUE maps and facilities to add data sources to their application.
Outlines
π» Introduction to Unique Software Stack
The speaker introduces the topic of the talk, which is about the Unique software stack, a Java-based stack for desktop applications in the spatial domain, specifically for Geographic Information Systems (GIS) and image processing. The talk is given by two committers, Jody and Andrea, who have been involved with the project since its early beginnings. The software stack is designed to work with special data sets, both remotely and locally stored. The talk will cover the history of the project, its SDK, and various types of applications built on the platform. The Unique stack was initially an RCP Eclipse application, and the talk aims to provide insights into its capabilities and usage.
π Understanding Unique's Capabilities and SDK
The paragraph discusses the capabilities of Unique, emphasizing its focus on spatial data handling, both locally and through integration with web services and spatial databases. The speaker highlights the importance of vector, raster, and point data in GIS, and how Unique allows users to visualize and manipulate these data types. The SDK (Software Development Kit) is described as a layered architecture that includes open-source spatial libraries like JTS Topology Suite and GeoTools, as well as Eclipse projects like EMF and GEF. The SDK is not intended for end-users but rather for developers to build customized applications. The paragraph also touches on the ability to work with attribute information and dynamically adjust styles, a process known as theming in GIS.
π οΈ Developing with the GIS Platform and Application
This section delves into the technical aspects of developing with the GIS platform, focusing on how to access and process spatial information. It introduces the concepts of the GIS application layer, which is built on top of an EMF model consisting of maps and layers. The map editor and the rendering engine are discussed, along with the idea of map decorators for additional system aspects like scale bars and north arrows. The paragraph also covers the multi-threaded rendering engine, which is crucial for desktop applications that pull data from various services. The architecture includes tools associated with maps, categorized and organized for efficient use, and the ability to edit spatial data and print outputs.
π Custom Applications and Extensions
The speaker discusses the creation of custom applications using the facilities provided by the Unique platform. Examples of such applications include a distance early warning system, a line cleaner tool, a potato farm analysis tool, a route planning tool, and applications for monitoring and planning power plants. These applications showcase the versatility of the Unique platform in handling various types of spatial data and analysis. The paragraph also mentions the availability of tutorials and GitHub resources for developers interested in extending the platform's capabilities.
π³ Forest Management and Other Applications
In the final paragraph, the speaker mentions a forest management application from Finland that uses Unique for monitoring and planning forest resources. The talk concludes with an invitation for questions from the audience, indicating that the presentation has covered a wide range of topics related to the Unique software stack and its applications in spatial data management and analysis.
Mindmap
Keywords
π‘Eclipse RCP
π‘GIS
π‘SDK
π‘Spatial Data
π‘Vector Data
π‘Raster Data
π‘Styling and Theming
π‘iGo Resource
π‘Eclipse EMF
π‘Progress Monitor
π‘Custom Application
Highlights
Introduction to the unique software stack for desktop applications in the spatial domain.
Jody's involvement from the early beginnings of the project provides deep insights.
Eclipse RCP was first applied in the project, highlighting its innovative use at the time.
The software stack is designed for working with special data sets in GIS and image processing.
The SDK is not a product but a set of tools for developers to build customized applications.
The project's early beginnings in 2004 with the first RCP release.
udig is a desktop application for spatial data visualization and processing.
The ability to work with spatial information both locally and from web services.
Vector data visualization, including circular rings, line strings, and point data sets.
Raster data representation, such as aerial imagery and digital elevation models.
The SDK's layered architecture built on top of leading open source spatial libraries.
The gis platform's focus on accessing spatial information through a repository.
The gis application layer focuses on visualization and processing of spatial data.
The map editor and its tools for working with layers and styles.
Custom applications built on top of udig, showcasing the extensibility of the platform.
Tutorials and resources available on GitHub for extending and customizing udig.
Case studies of applications built using udig, including a distance early warning system and a route planning tool.
The importance of the community and developers in keeping the open source project viable.
Transcripts
yeah Welcome to our talk about the
unique
software stack
um like and we are introduced we are
committers from the project itself Jody
from the early Beginnings so he knows
everything from the start unlike Andrea
mentioned before it was the first
application of RCP Eclipse so we're at
the mouse
our eclipse
conferences and no one knew anything
about Eclipse RCP so
please enjoy this talk
yeah okay I have another question
whoever worked with unique or ever heard
about it
okay two hours three fine
um okay about us like Andrea said we are
committers in this project since the
beginning I joined in 2008 and this Java
spatial level stack and we are both in a
eclipse Foundation active and location
Tech as well
okay
what what is unique about unique is
Java software stack built for desktop
applications
to provide capabilities to work with to
use special data sets and to work with
remote and locally stored data sets GIS
who ever heard it it's for a spatial
domain geographic information systems
mainly for Geographics and image
processings
okay here we can see a sample
application for udic or built with udek
mainly the main Windows the map window
and all the other views around to work
with data sets
okay about SDK it's not really unique
itself it's not really an idea to build
a real customized product for end users
it's just an SDK so we have several or
lots of things within the SDK everybody
can use and rearrange foreign
for their purpose
and that's what we are talking about in
this talk
um
we have two three different types of
like gender uh the platform the
applications and at the end some custom
applications as a sample or showcase
yeah
in the early Beginnings so infections
found in this project in 2004 the first
is the LCP
has been released and many others
application companies joined during this
during years
our electrologists come to camp and
neither served and spawned that
development for this project
yeah like Andrea mentioned this was a an
article about the first RCP Project
based on Eclipse RCP and it was unique
in 2004.
thank you very much okay I went over to
to during
thank you
that's a little bit exciting
um thank you Frank so
um it's just worth repeating that I'm
showing the udig desktop application
here but that's not really the product
that keeps the open source project
viable the real product is reaching out
to the developer Community such as
yourself
I was just going to review some of the
capabilities of vudig starting off with
the ability to visualize Vector data
when I gave a talk earlier in the week a
lot of people weren't necessarily with
different familiar with different kinds
of spatial information so Vector data
consists of drawing a a circular ring
that encloses an area representing it a
shape on the physical world
another thing we work with here is line
strings you can use LINE strings to
represent thing features such as rivers
or roads Network
sorry it looks like I have to click to
get that one started
so what we're seeing here is we're you
seeing you they bring together lots of
different kinds of spatial information
I'll just skip over to the next one
so the other kind of spatial information
we work with is point data sets often
representing like the locations of
physical features or features such as
cities
um the other kind of information we tend
to work with is raster data so you might
be familiar with raster data from things
like aerial imagery or satellites as in
the previous talk
and
raster data can also be used to
represent scientific measurements such
as elevation
which we'll see there or known as a
digital elevation model
one thing that's really valuable about
udic is the ability to work with spatial
information locally on your desktop but
also combine that with spatial databases
information from web services
so it's really focused on that desktop
internet GIS story
the vector data also contains attribute
information one thing we can do here is
we can explore that attribute
information either in a tabular or with
an info tool and we can also start to
adjust our Styles dynamically based on
the attribution data and that's a
process known as theming in GIS
so here we can see the construction of a
theme based on one of the attribute
types
so
how many people are familiar with these
kind of GIS terms Vector raster
styling and theming
okay so for those coming from an RCP
background this is kind of the
um the base steps that you're expecting
out of any GIS system these abilities to
work with spatial information
the SDK also offers the ability to do
printing generation of PDFs and so on
moving on to the SDK the SDK is going to
be divided up in it's a layered
architecture divided up into a stack
so at the bottom of the stack we're
going to be working with a lot of the
leading open source spatial libraries
this is actually a prime benefit for
people using the eudig SDK they don't
have to go and hunt down the best of
breed software we're bringing in the jts
topology Suite which provides the
concept of geometry and that is a
location Tech project we're also
bringing in the geotools library which
does a lot of the data access we're
working with and we're also using the
image i o extension for a lot of the
raster formats
so in addition to this spatial
functionality we're we're building on
top of the eclipse RCP and a few of the
other Eclipse projects such as EMF and
gef
so just to take the first layer of the
Utica SDK is called the gis platform
this platform is going to mostly focus
on accessing spatial information and
it's going to be done in a in a way
that's a little bit different than
you're familiar with as an eclipse
developer
our core data access is expressed in
terms of a repository
the icatalog interface allows us to
access a list of services
and search for a list of services the I
search interface is used to query web
catalogs that are out there on the
internet so you can discover new sources
of spatial information
because this is a spatial
SDK we're doing our searches both based
on keywords and text but also on spatial
attributes such as bounding boxes
the I service interface
um
is used to uh to access a uh or to
represent a range of connections to
spatial information could be a database
it could be a web service
or vector files
once we've accessed
a service
um
we get down the next level is the iGo
resource so this represents the contents
of a of a spatial file or represents
different tables within a database or
different data data products that a web
service is publishing
how many people are familiar with the
eye resource interface from eclipse
okay we've got one person
the eye resource approach is called an
adaptable interface
and we initially tried using this
um
from within udig but it had a couple of
limitations for our use it it definitely
assumed like a very short turn around
time
so we've made our own
version of this called iresolve and the
difference is that it accounts for some
of the delays and data volume that we
see in this industry so rather than
being able to directly connect to a file
we've had to introduce a progress
monitor so we could track progress as we
connect to a database and we also had to
allow like an i o exception in the event
some of the information was not
available
so here's just an example of using
iresolve to connect to something called
a web map service
you can see that we were first of all
checking can this
can this Geo resource actually resolve
to the webmap service interface and then
we go about connecting to it
so as a developer this is how you are
interacting with spatial data
I can see a lot of people squinting at
the code example
um so the gis platform was very focused
on accessing spatial information the gis
application is focused on a lot of the
things you actually want to do in terms
of visualization and processing
so this is the next layer up in our
stack
the The Core Concepts that the gis
application are built around is an
eclipse EMF model focused on the idea of
a map consisting of a of a series of
layers the layers are arranged in a draw
order
the other part of the the map is the
viewport so the viewport represents the
area of the world that the user is
looking in as well as the projection
they're using for their visualization
also as part of the viewport you can
have a Time range for working with
historical information or you might also
have like an elevation if you're looking
at
hide information or depth if you're
looking at bathymetry data
this data model is used behind the map
editor editor provided by udic and you
can see that the map editor is providing
a visualization and it also have a has a
palette of tools
and then we also have the individual
layers
and each layer is responsible for
rendering a single Geo resource and it
also has a style Blackboard which is
used to Stage any styling information
used for this display
so this is the data structures that are
behind some of the dialogues you saw
previously
the other thing we've got here is we've
got the idea of a map decorator these
are layers that are not backed by an iGo
resource because they're drawing some
other aspect of the system so a scale
bar will actually change depending on
the zoom level that you're working with
a North aerial will change its
orientation depending on where you're
looking in the world in which way up
your map is
you can also use these facilities for
drawing um
your own object model onto the screen
the udig rendering engine is it's a
multi-threaded rendering engine which is
fairly
um unusual when you're working with web
services but it's critical when working
with a desktop application that's
pulling information from a range of
different services
in terms of architecture we have a
series of tools associated with a map
we've got modal tools which take over
the entire screen and control all
interaction with the pointer each modal
tool is provided with a different Mouse
pointer so you can the user can tell
which what tool they're using the tools
are organized into categories which we
can see over in the tool palette one
thing that's interesting from a
traditional GIS application is each tool
does not have its own separate keyboard
shortcut instead the category does so I
would hit I to cycle between all the
tools in the information category and
this is one of the approaches we use to
scale udigap to GIS applications or
custom applications that that might be
working with just dozens and dozens of
tools
the other kind of tools we have are
active tools so these are things like
the zoom in and zoom out button which
will control the viewport model or
background tools such as when we move
our map the Latin long information
displayed in the corner is updates using
a background tool
there's a lot more facilities at this
level of the architecture we've got
editing facilities so you can have tools
that edit the spatial data there's
printing facilities as I mentioned we
also have a number of modules that don't
make it into the example UV Gap so
modules that provide a location search
using a geocoder behind the scenes also
a module that provides routing
information so you can build up a graph
based on your road Network and do route
analysis to figure out which way to go
and there's also a whole toolbox
of plugins for processing that have been
added by different projects
the final kind of level I'm going to
talk about here is the custom
application so this is where
the eclipse RCP developers come in
and so the custom application is can be
built using
a lot of the facilities provided by udig
and we can see an application being
built on top and you can plug different
tools and renderers into the gis
platform and you can plug different data
sources into the gis platform
so out of the box we provide a Hello
World tutorial tutorial and I'm just
going to pass things back over to you
Frank in order to go through some of the
example case studies from applications
built
I would like to add some details about
for the last slide go back
um for lots of this
extension points and plugins we provide
we set up several tutorials GitHub
unique is called the hostel of GitHub
down below the location Tech
organization
and the tutorials describe you see the
link below how to set up which tools to
import into workspace and how to get
started with this kind of tutorials and
right here
you see this description uh just having
a map view a layer View and a bookmark
View and work with data set in this
from the
potstorm gear set there they set up an
application called distance early
burning system
they built on top of eclipse as a p as
well and integrated the unique maps and
Facilities to add data sources to to
their map they have other kind of data
sources to integrate in this application
that will be implemented these mentioned
plugins and resources Jody talked about
a line cleaner tool has been created
by a company
to work with Vector data sets and
harmonize and
clean up data already from
customers
digitalized data sets to clean up and
build topological Networks
um from South America there are has been
created in Lima Peru an application
called potato
or it's a diva guess and they managed to
analyze the potato
farms and their different kind of sorts
of potatoes were there and building
statistics on the
uh
from
a route planning tool developed by
Europe bios has been developed to plan
routes for Logistics so they have
networks structures and would find the
best
routes for their
creations
from Poland the company globem developed
two different tools one of these is a
four rails application where the
monitoring and analyzing the current
state of power plants and reports these
informations to their monitoring system
uh this is uh one application and the
other one is um
planning tool to find the best place for
such a power plant Farms because of a
different kind of influence parameters
coming from their analytics so they
already had the implementations of
algorithmisms to analyze things but need
an application to visualize the results
and use this external year developer
algorithms within the application
just developed a network analysis tool
for hydrology
to get the clue to find out what happens
if it's heavily raining at some point
and of time and how many water we can uh
right and where's the best place to put
dams in the
environment to collect water
in addition it's also for risk
management
once if it's heavy raining there's a
yeah may be possible for a landslides
and something like that and to identify
risk reasons to avoid building houses
right there or using infrastructure
right there that's a kind of planning
tool for this one
um
Force management management application
from Finland it's just a management tool
to uh
monitor the first state and where they
have to
I can say have to plan a new forest in
in
trees and where to
how big is the result planning from from
there
so we are pretty fast with our flights
we have a lot of room for questions
so if you have any feel free to ask
that's actually one thing I
just um
so the thing is
when I
when I think of a source alternative
systems which is something like small
world then
5.0 / 5 (0 votes)