Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [udig-devel] Using uDig as the mapping piece to a larger application

Morning  Jerry:

Your application sounds interesting! Additional comments inline....

On Tue, May 26, 2009 at 6:03 AM, Jerry Schultz <schultjd@xxxxxxxxx> wrote:
> I have built a large subsurface 3d viewing application that combines
> integrated reports from multiple databases.

And is just the kind of intergration work we like to see uDig used
for. On uDig 1.2 we have taken pains to isolate the udig
Map/Layer/Viewport model and MapViewer widget into a feature that can
be added to an existing RCP application.

> The application is built around Java3d and Swing.

If you are making use of Java3d you will find the eclipse project
supports a very nice OpenGL widget which Java 3D can make use of; it
represents a very good integration path. Although I love Swing we do
not use it in uDig simply to take advantage of the plugin system
(which is pretty cool) - I have also found that end users like the
"native" experience offered by SWT.

> A mapping tool is badly needed as I have been using static
> detailed jpgs for the given area. I am hesitant to use ESRI' s Java
> ArcEngine for several reasons. I have recently started investigating the
> mapping or GIS Open Software and came across GeoTools. I the JMapPane module
> to quickly prove that I could display the 7 or 8 shapefiles for the given
> area. However, performance was simply 100 percent unacceptable.

You will find that uDig uses the geotools infrastructure; JMapPane is
just an example use (and not a very good one); please consider the
uDig example as an alternative. The core "StreamingRenderer" classes
can be used to render into any BufferedImage (or even printer) that
you desire. Rendering into a texture buffer for Java 3D is a suitable
use.

>  I then ran into uDig (RCP, plug-ins and everything that my app is not built around) andcI love it.

Thanks for the encouragement.

> Finally my question to Jody or anyone that has enough experience to quickly
> answer definitively the following questions.
>
> 1) Is it CURRENTLY feasible to have another RCP application (i.e. my
> retooled RCP app) use uDig as a plugin and not the other way around.

Yes; as mentioned we have taken pains to ensure this functionality can
be used without any additions to the menus by the uDig plugins.

>  If so how realistic is this (not from my learning curve but from uDig' s
> documentation of this functionality - bugs that my be show stoppers in this
> regard, etc).

I would run through the OpenGL widget first and see if you like the result:
- http://www.eclipse.org/articles/Article-SWT-OpenGL/opengl.html

I know people have used the nasa world wind client via this OpenGL
widget so you should be in good company.

Beyond that there are a couple of ways to approach intergration; uDig
has a viewport model (which right now captures a 2D viewing area);
this should be extended for 3d (either by mirroring the open gl widget
controls - defining the angles and so on to look out from; or by
defining a viewport volumn and letting the widget pan and zoom and
spin to look at the space being rendered).

> 2) If this is not a viable option - is it realistic to use uDig as the
> primary app but have much of the primary functionality of the overall user
> functionality as plug-ins to uDig. This seems very far fetched to me but I
> am only just starting to look at plug-ins and RCP.

That is another option; the MapViewer class allows you to splice in
different implementations (we have normal and tiled implementations
right now). You could proivde a 3D implementation and it would show up
as an open for the main Map editors.

 > To uDig's credit the only real thing pushing me in this direction is the
> professionalism of uDig's UI, it speed and it ArcSDE potential support
> (congratualtions on a superb job). Any insight that you have on the big
> picture would be greatly appreciated.

You can reproduce the speed by being multithreaded; the ui is mostly
the work of an excellent base in Eclipse and SWT. We should thank some
customer for the money/time for Gabriel and myself to do such a good
job of the ArcSDE datastore (before that is was very slow and single
threaded).

> I am also investigating weather the SWT_AWT bridge can handle a complex Java3D app as well.

Not so much; it kind of is good for allowing swing widgets to draw
into a buffer which it then displays. I would go straight to an OpenGL
widget (which is what Java3D is doing anyways).

> The Swing code is large and complex and will all have to be rewritten in SWT/JFace and the app
> is now over 200K lines so it will be a major effort.

For most user interface forms and trees and tables the SWT_AWT bridge
will work; just no so much for the 3D component.

> I really attempting to determine if the overall plug-in uDig project with another significant
> application is "do-able" at the current time. I would appreciate your
> thoughts.

Perhaps we should have an IRC chat on this one. Jesse has also looked
at this kind of thing and may have some advice.

Jody


Back to the top