Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf ·...
Transcript of Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf ·...
![Page 1: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/1.jpg)
MUM/EOGEO 2005
Paul Ramsey Jody GarnettJesse Eichar
![Page 2: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/2.jpg)
MUM/EOGEO 2005
Refractions ResearchRefractions Research
• Victoria, BC, Canada
• Spatial Systems Consulting
• Open Source Software
• PostGISuDig / GeoTools
![Page 3: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/3.jpg)
MUM/EOGEO 2005
Geospatial ArchitectureGeospatial Architecture
• Spatial Database
– Concurrency
– Transactions
– Seamlessness
• Internet Publishing
– Feature Access
– Map Access
• Data Manipulation
– Direct Access
– Editing
– Cartography
![Page 4: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/4.jpg)
MUM/EOGEO 2005
ESRI ArchitectureESRI Architecture
ArcSDE
ArcIMS
ImageServer
FeatureServer
Web Pages
ArcMap
![Page 5: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/5.jpg)
MUM/EOGEO 2005
Web Pages
??
Open Source ArchitectureOpen Source Architecture
PostGISuDig
![Page 6: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/6.jpg)
MUM/EOGEO 2005
Missing Link for Missing Link for OpenGISOpenGIS
• “Integrated Client”
• Ability to directly view WMS
• Ability to directly edit WFS
• Ability to search catalogues
• Ability to integrate standard GIS data
• Hides complexity of network access
![Page 7: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/7.jpg)
MUM/EOGEO 2005
Missing Link for Open SourceMissing Link for Open Source
• “Standard GIS Functionality”
• Ability to directly edit GIS data
• Ability to connect to PostGIS, Mapserver, GeoServer
• Ability to create paper cartography
• Ability to integrate with proprietary infrastructures
![Page 8: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/8.jpg)
MUM/EOGEO 2005
Gimmee Gimmee a “u” a “u” !!
• “User Friendly”
–Sensible Defaults
• Use Preferences for Complexity
–Automatic Integration
• Coordinate Reference Systems
• Formats, Services
–Drag and Drop Everywhere
–Hide Differences
![Page 9: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/9.jpg)
MUM/EOGEO 2005
Gimmee Gimmee a “D” a “D” !!
• “Desktop”
–Not a Web Application
–Desktop Look and Feel
•Windows, Linux, Apple OS/X
–Desktop Integration
• Cut and Paste, External Drag and Drop
–Desktop Installation
• One Click Installers
![Page 10: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/10.jpg)
MUM/EOGEO 2005
Gimmee Gimmee an “i” an “i” !!
• “Internet”
–Consume Remote Data and Services
–View OGC Web Map Server
–View/Edit OGC Web Feature Server
–View ESRI ArcIMS Server *
–Multi-catalogue Search
–Treat Local and Internet Layers Equally
* Coming Soon
![Page 11: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/11.jpg)
MUM/EOGEO 2005
Gimmee Gimmee a “g” a “g” !!
• “GIS”
–Platform Extensibility
–Platform “De-stensibility”
–Hooks for Analytical Plugins
–Data Editing
–Standard GIS Data Sources
–Paper Cartography
![Page 12: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/12.jpg)
MUM/EOGEO 2005
Whaddaya Whaddaya Got ?!?Got ?!?
DEMO…
![Page 13: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/13.jpg)
MUM/EOGEO 2005
Jody GarnettJody Garnett
• uDig Development Team Leader
• GeoTools Project Management Committee (PMC) Member
• GeoServer contributor
• Anachronistic pugilist
• Technology Platforms and Decisions We Made
![Page 14: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/14.jpg)
MUM/EOGEO 2005
Java Image I/O
Java 1.5
Java Topology Suite (JTS)
uDig ArchitectureuDig Architecture
PostGIS WMS WFS GML Shape
GeoTools
Libraries
Platform
Application
Eclipse RCP
uDig
EMF GEF
JAILanguage
![Page 15: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/15.jpg)
MUM/EOGEO 2005
Java 1.5Java 1.5
• Risks
–Compatibility with other Java libraries that are 1.4 only
–Danger of the bleeding edge
• Rewards
–New language features
• type narrowing
• enumerations
–More explicit API for uDig
–Better Linux support for JAI under SWT
![Page 16: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/16.jpg)
MUM/EOGEO 2005
Java 1.5Java 1.5
![Page 17: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/17.jpg)
MUM/EOGEO 2005
• Risks
–Needed to add a GML parser
–Had to coordinate a scheduled project with an unscheduled community
• Rewards
–Larger base of developers
–Rich API
–Standards (OGC, ISO) compliant by design
GeoToolsGeoTools
![Page 18: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/18.jpg)
MUM/EOGEO 2005
GeoToolsGeoTools
![Page 19: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/19.jpg)
MUM/EOGEO 2005
GeoTools GeoTools –– WMS ClientWMS Client
• We wrote generic WMS client
–WMS has 4 versions!
Web Map Server
Specification
1.0.0 1.1.0 1.1.1 1.3.0
![Page 20: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/20.jpg)
MUM/EOGEO 2005
GeoTools GeoTools –– WFS ClientWFS Client
• We wrote generic WFS client
–GML handling is hard!
Parser
Source Code
JVM
XML
Schema
Code
Generator
CompileClassic XML Schema
Processing System
![Page 21: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/21.jpg)
MUM/EOGEO 2005
GeoTools GeoTools –– WFS ClientWFS Client
• We wrote generic WFS client
–GML handling is hard!
Parser
Schema
JVM
Our XML Schema
Processing System
XML Data Objects
(XDO)
![Page 22: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/22.jpg)
MUM/EOGEO 2005
Eclipse RCPEclipse RCP
• Risks
–Bleeding edge when we started
–Not Swing
–SWT integration with core Java
• Rewards
–Plug-in environment pre-defined
–Documented platform
–Attractive and extensible by design
![Page 23: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/23.jpg)
MUM/EOGEO 2005
Eclipse RCPEclipse RCP
vs
Eclipse RCP is more than an application framework system, it is an
platform that not only allows extension via plug-ins, but also organizes
the plug-ins into a rational structure.
PlatformFramework
![Page 24: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/24.jpg)
MUM/EOGEO 2005
Eclipse RCPEclipse RCP
Primary
Application
Runtime (OSGi)
SWT
JFace
UI (Generic Workbench)
Text
IDE
Resources
Help UpdateCompare Debug Search
Team/
CVS
Eclipse RCP
(optional) (optional) (optional)
(optional)
IDE
Text
![Page 25: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/25.jpg)
MUM/EOGEO 2005
Eclipse EMFEclipse EMF
• Risks–Eclipse Modelling Framework (EMF)
–New technology
–More complex API
• Rewards– Integrates modelling into programming environment
–Allows rapid changes in application model•Weeks versus Hours
–Drag-n-drop, events, persistence all built-in
![Page 26: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/26.jpg)
MUM/EOGEO 2005
Model
EMF
Eclipse EMFEclipse EMF
Compile
Edit Debug
![Page 27: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/27.jpg)
MUM/EOGEO 2005
Eclipse GEFEclipse GEF
• Risks
–Graphical Editing Framework (EMF)
–New technology
• Rewards
–Pre-built graphical manipulation toolkit
– Future use in GIS process model builder
![Page 28: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/28.jpg)
MUM/EOGEO 2005
Eclipse GEFEclipse GEF
![Page 29: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/29.jpg)
MUM/EOGEO 2005
Development EnvironmentDevelopment Environment
ProductComponent
JIRABug Tracking
ConfluenceWiki / Documentation
Cruise ControlReal Time Build
SubversionVersion Control
Eclipse / PDEBuildBuild System
EclipseIDE
![Page 30: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/30.jpg)
MUM/EOGEO 2005
MistakesMistakes
OpenGLDraw2D
Java 2D Render
Release early, release less
Scope
ConfluenceDrupal
CGDI / Google XMLCatalog 2.0
Aaaahh!Ooops!
![Page 31: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/31.jpg)
MUM/EOGEO 2005
How to ContributeHow to Contribute
• Everyone– Join the udig-devel list
• Developers–Quickstart
–Source Code
• Users (Future Developers)–Download
–Test / Bug Report
–Translate
–Supply Crazy Ideas (Toolkits, 3D, GML3!)
![Page 32: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/32.jpg)
MUM/EOGEO 2005
Questions?Questions?
J
G
![Page 33: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/33.jpg)
MUM/EOGEO 2005
Architecture of uDigArchitecture of uDig
![Page 34: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/34.jpg)
MUM/EOGEO 2005
Jesse Jesse EicharEichar
• Developed uDig Core Model
• Developed uDig Renderer
• GeoTools Committer
• Solver of Hard Problems
• Brazilian pugilist
• Example of Extending uDig
![Page 35: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/35.jpg)
MUM/EOGEO 2005
GoalGoal
• A tool that returns the ground distance between the point the mouse is clicked and the point the mouse is released.
Click!
Release!
Draaaag…
X Meters
![Page 36: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/36.jpg)
MUM/EOGEO 2005
OSGi Framework
Plugin 3
PlugPlug--insins
Plugin 2Plugin 1
Plugin 4Plugin 5
• Basic building block of Eclipse and uDig
• Have dependencies on and provide facilities for other plug-ins
![Page 37: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/37.jpg)
MUM/EOGEO 2005
Extension PointsExtension Points
• Every plug-in uses extension points
• Some plug-ins provide extension points
• Extension points provide organization in a potentially chaotic situation:
– Applications built entirely of different plug-in components
– Each plug-in must know its role, and advertise it, so that others know too
– Each plug-in must know what other plug-ins it depends on
– Stay in your sandbox!
![Page 38: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/38.jpg)
MUM/EOGEO 2005
Extension PointsExtension Points
<< Screenshot of Eclipse Extension Point editor >>
![Page 39: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/39.jpg)
MUM/EOGEO 2005
uDig Extension PointsuDig Extension Points
• Resources
• Renderers / Styles
• Operations
• MapGraphics
• Tools
• Drag’n’Drop
• FeatureEditor
![Page 40: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/40.jpg)
MUM/EOGEO 2005
Distance ToolDistance Tool
• Will use the uDig Tool extension point
• Tool extension point provides:
–A Context (simple API to Map)
–A Panel (the Map Editor UI)
• Tools must extend an AbstractTool:
–Modal Tool (“info”)
–Action Tool (“zoom in”)
–Background Tool (“current coords”)
![Page 41: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/41.jpg)
MUM/EOGEO 2005
![Page 42: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/42.jpg)
MUM/EOGEO 2005
Distance ToolDistance Tool
Map
Context
Panel
SimpleDistanceTool
Tool Extension Point
![Page 43: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/43.jpg)
MUM/EOGEO 2005
SimpleDistanceToolSimpleDistanceTool
• Small tool, so just one class with three methods:
• mouseDown
–Mark the button click
• mouseUp
–Mark the button release and calculate the distance
• displayOnStatusBar
–Get the calculated distance into the workbench status bar
![Page 44: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/44.jpg)
MUM/EOGEO 2005
DistanceToolDistanceToolpackage net.refractions.udig.distanceTool;
import org.eclipse.jface.action.IStatusLineManager; import org.geotools.referencing.CRS; import com.vividsolutions.jts.geom.Coordinate; import net.refractions.udig.project.ui.render.displayAdapter.MapMouseEvent; import net.refractions.udig.project.ui.tool.AbstractModalTool; import net.refractions.udig.project.ui.tool.ModalTool;
public class DistanceTool extends AbstractModalTool implements ModalTool { public DistanceTool() { // Register for mouse events // Options are: MOUSE, MOTION, WHEEL super(MOUSE);
}
Coordinate start; . . .
![Page 45: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/45.jpg)
MUM/EOGEO 2005
mousePressedmousePressed
public void mousePressed(MapMouseEvent e)
{
start=getContext().pixelToWorld(e.x, e.y);
}
![Page 46: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/46.jpg)
MUM/EOGEO 2005
mouseUpmouseUp
public void mouseReleased(MapMouseEvent e) {
Coordinate end=getContext().pixelToWorld(e.x, e.y);
try {
double distance=CRS.distance(
start, end, getContext().getCRS());
displayOnStatusBar(distance);
}
catch (Exception e1) {
displayError();
}
}
![Page 47: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/47.jpg)
MUM/EOGEO 2005
displayErrordisplayError
private void displayError() {
final IStatusLineManager statusBar = getContext().getStatusBar();
if( statusBar==null )
return; // shouldn't happen if the tool is being used.
getContext().updateUI(new Runnable() {
public void run() {
statusBar.setErrorMessage("Unable to calculate the distance");
}
});
}
![Page 48: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/48.jpg)
MUM/EOGEO 2005
displayOnStatusBardisplayOnStatusBarprivate void displayOnStatusBar(double distance) {
final IStatusLineManager statusBar =
getContext().getStatusBar();
if( statusBar==null ) return;
int totalmeters=(int)distance;
final int km=totalmeters/1000;
final int meters=totalmeters-(km*1000);
float cm = (float) (distance-totalmeters)*10000;
cm = Math.round(cm);
final float finalcm=cm/100;
getContext().updateUI(new Runnable(){
public void run() {
statusBar.setMessage("Distance = "+km+","+meters+"m "+finalcm+"cm");
}
});
}
![Page 49: Paul Ramsey Jody Garnett Jesse Eicharudig.refractions.net/files/docs/osg05TechnologySession.pdf · Mapserver, GeoServer •Ability to create paper cartography •Ability to integrate](https://reader030.fdocuments.net/reader030/viewer/2022040803/5e3e8bbd5a7ded596922b6bd/html5/thumbnails/49.jpg)
MUM/EOGEO 2005
DemonstrationDemonstration
Questions?