Slippy maps for Java Swing GUIs: SwingX-WS

2020-02-05 05:37发布

问题:

This post's purpose is to gather in one place all useful info and material needed in order to implement slippy maps in a Swing application using the SwingX-WS library, now that the SwingLabs website is no more -- in spite of the fact that, however, SwingX development is still active.

回答1:

So, first things first, the as-of-today up-to-date jars, built from the latest sources.

SwingX-ws:

  • swingx-ws rev. 317 binaries
  • swingx-ws rev. 317 sources
  • swingx-ws javadoc

SwingX v. 1.6.5-1 (required runtime dependency, requires Java6 or newer):

  • swingx binaries
  • swingx sources
  • swingx javadoc
  • swingx beaninfo (for IDEs' component palettes)

A few words on SwingX: it's an amazing project meant to extend swing functionality with extra widgets (a very well made webstartable demo here, with code samples and everything), nice-looking, powerful, fast and with no funky dependencies. One big plus IMHO is that integrates really beautifully with the modern Nimbus L&F (unlike jide-oss, for example, which, albeit very good itself, integrates poorly with Nimbus -- it has, however, a very nice alternative L&F, called Xerto, but this is another story...).

As for documentation, the sources that showcase swingx-ws use best are a series of articles written by Josh Marinacci, listed here in chronological order:

  • Getting started with the Aerith Mapping Component
  • NASA Maps in your Swing App
  • A Mapping Christmas Present
  • Tricked out maps and a new tile provider.
  • Building Maps into Your Swing Application with the JXMapViewer
  • Mapping Mashups with the JXMapViewer

In the [hopefully unlikely] event of needing to report a bug, the project's issue-tracking page can be found on JIRA.



回答2:

A descendant of swingx-ws called JXMapViewer2 can be found on github. As of April 2019, it seems to be reasonably active.



回答3:

swingx-ws-1.0.jar is compatible with swingx-1.6.jar but not with swingx-all-1.6.4.jar.
If you are using swingx-all-1.6.4.jar and wish to use Tiles as you did with swingx-1.6.jar, here is a workaround.

Copy

org.jdesktop.swingx.util.GraphicsUtilities.java
from swingx-1.6.4 to a new package of your own (the swingx-1.6 version) :

org.jdesktop.swingx.graphics.GraphicsUtilities.java