uDig is built to be an "internet GIS", a system which can interact with data across potentially slow and/or unreliable networks using open and de facto standards, such as OpenGIS and ESRI standards.
The "internet GIS" philosophy means that we treat all map layers the same way, and try to provide the same capabilities for all layers, whether local or remote:
- All layers can be reprojected into arbitrary coordinate systems.
- All layers can be queried with the same tool.
- All read/write layers can be edited with the same tools.
- All layers are re-orderable, can be made semi-transparent, and can be turned off and on separately – layers received from the same server are not bound together into a monolithic layer stack.
- All data sources are managed in the same catalogue.
- All data sources are searched through the same interface.
Keeping layer interactions the same between data sources simplifies use understanding of the application – whether data is a local shape file, nearby database, or remote Web Feature Server, the same tools and operations apply.
- File Formats
- Spatial Databases
- PostGIS / PostgreSQL
- Oracle Spatial
- OpenGIS Web Map Service
- OpenGIS Web Feature Service
- WFS-T Read/Write Supported
- NASA OneEarth
- Direct spatial and attribute editing
- Shape File
- Web Feature Service
- Handles very large data layers
- Not limited by system memory
- Multi-million record database tables
- Hundred-megabyte shape files
- Multi-threaded rendering
- Draws multiple layers simultaneously, faster rendering times
- Fully interuptable, no waiting for a render to finish before starting another action
- On-the-fly coordinate system reprojection
- Raster and vector reprojection
- Includes client-side reprojection for WMS
- Thematic Mapping
- Includes thematic mapping of databases and WFS
- Customizable Layouts
- Wheel-mouse zoom-in and zoom-out
- Editing tools
- Draw polygon / line / point
- Move shape
- Cut hole
- Alter polygon / line / point
- Table tools
- Direct attribute edit
- Double-click and go!
- Quick sort
- Promote selection
uDig supports in-place software upgrades! Once you install it once, you never have to re-install, just go to the software update menu to load the latest version.
Use the software update system to download and install optional extensions! GPS loading, specialized map graphics, and other community contributed tools.
The uDig platform has chosen technologies and design strategies with the goals of:
- Avoiding duplication of effort. Where existing open source technologies can provide funcitonality, the uDig architecture integrates them rather then re-building.
- Providing modular architecture. All major components of the uDig platform are pluggable. Data sources, renderers, tools, operations and more.
- Using Java best practices. Testing frameworks, the Eclipse platform, the build system, and non-code components, like the issue tracking system, use tools and techniques proven in the wider Java community.
The Eclipse "Rich Client Platform" (RCP) is the generic software extension framework that underlies the widely-used Eclipse Java development environment. The RCP includes the following components:
- A plug-in mechanism (OSGi) that defines what functionality each software component provides, and how the components can be extended.
- Native operating system widets (SWT), which look great and perform well.
- Standard user interface building blocks (JFace), like tables, wizards, and dialogues.
- A workbench framework that allows tearable interface components, easy interaction with native drag-and-drop capabilities, and common layout for applications.
An RCP application can use some or all of the components provided by the RCP toolkit. uDig uses them all.
Parsing XML is a simple task that becomes surprisingly complex when extended to the realm of geographic data sets represented in GML (geographic markup language).
- GML documents allow for flexible structures, so in-memory approaches to loading and analyzing them are easiest.
- Large documents are too big to hold in memory all at once, so "event driven" on-the-fly approaches to processing them are easist.
Since GML document are frequently both large and flexibly defined, uDig includes a special XML handling environment that self-configures an event driven parser, and automatically maps document contents into known Java object structures. The result is a system which can read and render arbitrarily large GML documents on the fly.
A geographic framework is more than a user interface and a map window. It requires large quantities of basic spatial software infrastructure to operate:
- Data format readers
- Coordinate reprojection algorithms
- Rendering systems
- Cartographic styling representations
- Feature representations
- Feature manipulation algorithms
Rather than writing all the infrastructure for a geographic framework from scratch, uDig builds on top of the existing GeoTools library. GeoTools provides the basic geospatial functionality, and uDig provides the user interface and interaction functionality. GeoTools is also used as an infrastructure library by Geoserver – by sharing infrastructure, uDig and Geoserver can avoid reinventing common pieces of functionality.
To allow uDig to be used around the world, we have ensured that all strings in the platform are "externalized". That is, they are not hard coded into the source, but are part of external manifest files. Translators can easily add new manifest files that provide translations for each string used in the English version. The uDig platform currently has translations for German, Spanish, French and Italian.
Open Source Company
Refractions Research sponsors and develops uDig as an open source project in collaboration with developers from around the world. Visit the uDig open source community site at udig.refractions.net.