【发布时间】:2020-02-23 17:47:33
【问题描述】:
我正在尝试在地图中为使用 GeoTools 的 Java 应用程序显示 OSM 层作为背景层。
我的出发点是Maven quickstart tutorial 和Tile Client user guide。
因此,我的课程重现我的问题非常简单:
public class OsmMapFrame
{
public static void main(String args[])
{
String baseURL = "https://tile.openstreetmap.org/";
TileService service = new OSMService("OSM", baseURL);
MapContent map = new MapContent();
map.addLayer(new TileLayer(service));
JMapFrame.showMap(map);
}
}
当我运行它时,我收到以下错误:
2019-10-28T13:44:15.809+0100 SEVERE Failed to load image: https://tile.openstreetmap.org/2/3/0.png
java.io.IOException: Can't create an ImageInputStream!
at org.geotools.image.io.ImageIOExt.read(ImageIOExt.java:339)
at org.geotools.image.io.ImageIOExt.readBufferedImage(ImageIOExt.java:402)
at org.geotools.tile.Tile.loadImageTileImage(Tile.java:175)
at org.geotools.tile.Tile.getBufferedImage(Tile.java:163)
at org.geotools.tile.util.TileLayer.getTileImage(TileLayer.java:143)
at org.geotools.tile.util.TileLayer.renderTile(TileLayer.java:131)
at org.geotools.tile.util.TileLayer.renderTiles(TileLayer.java:125)
at org.geotools.tile.util.TileLayer.draw(TileLayer.java:86)
at org.geotools.renderer.lite.CompositingGroup$WrappingDirectLayer.draw(CompositingGroup.java:228)
at org.geotools.renderer.lite.StreamingRenderer$RenderDirectLayerRequest.execute(StreamingRenderer.java:3850)
at org.geotools.renderer.lite.StreamingRenderer$PainterThread.run(StreamingRenderer.java:3911)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
我假设在我的 pom 中缺少依赖项?目前我在pom.xml 中使用以下 GeoTools 依赖项。
...
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-shapefile</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-swing</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-tile-client</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-epsg-hsql</artifactId>
<version>${geotools.version}</version>
</dependency>
...
我使用 GeoTools 22.0 和 23-SNAPSHOT 进行了尝试,但在这两种情况下我都得到了以下图片:
【问题讨论】:
标签: java openstreetmap geotools