JXMapKit帮助入门

时间:2011-01-28 03:04:42

标签: java

我最近遇到过JXMapKit,我不是一个强大的程序员,但我想在我的应用程序中使用它。我正在使用Eclipse并构建了GUI应用程序。我想将JXMapKit合并到我的GUI中。我有latitutude / longitude的ArrayList,使用我想在地图上显示路径叠加的坐标。

从我读到的内容可以很容易地融入到Swing中,但是没有找到足够简单的例子让我理解并让我开始。我创建了一个新项目,只是想调出地图但遇到了错误。从我的理解,它无法加载瓷砖?它可能是一个糟糕的jar文件还是我需要设置磁贴提供程序?提前感谢您的帮助。

import javax.swing.JFrame;
import org.jdesktop.swingx.JXMapKit;
import org.jdesktop.swingx.JXMapKit.DefaultProviders;

public class MapTest {
    public static void createGui(){
        JFrame frame = new JFrame();
        frame.setVisible(true);
        frame.setSize(400, 400);
        JXMapKit mapViewer = new JXMapKit();
        mapViewer.setDefaultProvider(DefaultProviders.OpenStreetMaps);
        mapViewer.setDataProviderCreditShown(true);
        frame.add(mapViewer);
    }

    public static void main(String[] args){
        createGui();
    }
}

这些是错误:

Failed to load a tile at url: http://tile.openstreetmap.org/6/32/21.png
 java.lang.NoSuchMethodError: org.jdesktop.swingx.util.PaintUtils.loadCompatibleImage(Ljava/io/InputStream;)Ljava/awt/image/BufferedImage;
 at org.jdesktop.swingx.mapviewer.DefaultTileFactory$TileRunner.run(DefaultTileFactory.java:375)
 at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
 at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
 at java.util.concurrent.FutureTask.run(Unknown Source)
 at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 at java.lang.Thread.run(Unknown Source)

如果我将setDefaultProvider设置为OpenStreetMaps,它仍然无法加载默认提供程序。

1 个答案:

答案 0 :(得分:2)

mapViewer.setDefaultProvider(DefaultProviders.OpenStreetMaps);

更改

mapViewer.setDefaultProvider(org.jdesktop.swingx.JXMapKit.DefaultProviders.OpenStreetMaps);