[josm-dev] An Introcudtion

Frederik Ramm frederik at remote.org
Fri Apr 18 21:50:40 BST 2008


> Most of my Java programming work is done as a volunteer for OpenJUMP,
> which is also a mapping/GIS program. I would imagine JOSM and OpenJUMP
> share a lot of the same functionality. I would like to tentatively
> offer my support for the development of JOSM, as I plan on using it as
> my principle software tool for OSM contributions.

You have three options basically. One, write cool plugins for JOSM;
that's an area where you can do whatever you want. Two, contribute to
the JOSM core, which would also be welcome but you'd probably need
more time to understand how things work than with option 1. Three,
ditch JOSM and work on JOSM-NG, a re-implementation which aims to be
leaner and faster and better designed than JOSM is. 

If you want to do something for which everybody will love you, then
write a JOSM plugin that can load arbitrary georeferenced images from
disk and display them as a background layer. You could use the
existing WMS plugin as a basis (which loads bitmaps from a WMS) and
applying your OpenJUMP knowledge it shouldn't be too hard to tweak
this. For extra bonus points, implement some image warping techniques
for those who have images that aren't georeferenced and who just
"rubber-band" them into place according to existing data.

This is probably one of the most-asked questions ("can I load an image
as a background layer") and would really help people.

Also, there's josm.openstreetmap.de with a trac system that has loads
of error reports and enhancement requests. 

JOSM is generally a bit weak in the drawing department, I have only
yesterday added code that makes it easier to draw rectangualar shapes
(a Google Sketchup like interface), but there are many more things to
do here; people start to draw lots of buildings and they will need
some sort of "align to grid" function or the ability to set a master
angle to which everything will be aligned, and so on. Some standard
CAD features like "here's a point, now draw a line 120m long in the
120° direction" or so.

> [1] Is there a developer's guide avialable? What about other
> programmer documentation or tutorials?

Not really, but some stuff in the josm.openstreetmap.de wiki.

> [2] Can the Javadoc for JOSM be accessed online?

No, you'll have to download the code and extract it yourself.

> [3] It looks like JOSM can be extended with plug-ins. Where do I learn
> more about creating a plug-in?

There's a guide here:


But to be honest I'd just look at the existing plugins in the OSM SVN
and pick one that does a similar thing to what you want to do, and
then start from there.

> I'd also like to learn if JOSM programmers think there would be any
> opportunities to share code with OpenJUMP, or to port OpenJUMP
> functionality to JOSM.

I doubt that OpenJUMP could use any of our code; and whether we could
use any of theirs I don't know. But if there's something to be gained
from it, I have no reservations whatsoever.


Frederik Ramm  ##  eMail frederik at remote.org  ##  N49°00'09" E008°23'33"

More information about the josm-dev mailing list