我最近遇到了JXMapKit,我不是一个很强的程序员,但我想在我的应用程序中使用它。我正在使用Eclipse,并构建了GUI应用程序。我想把JXMapKit整合到我的图形用户界面中。我有纬度/经度的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)如果我去掉设置为OpenStreetMaps的setDefaultProvider,它仍然无法加载默认的提供程序。
发布于 2012-06-17 22:53:05
mapViewer.setDefaultProvider(DefaultProviders.OpenStreetMaps);更改为
mapViewer.setDefaultProvider(org.jdesktop.swingx.JXMapKit.DefaultProviders.OpenStreetMaps);https://stackoverflow.com/questions/4824443
复制相似问题