9

我正在寻找一个 Java 库来显示来自各种来源的地图数据,包括 shapefile、WMS、WFS、Google 地图,可能还有 ArcIMS 等。似乎 OpenLayers 是最接近我想要的东西,除了它是一个 JavaScript 库,并且我正在编写一个 Swing 应用程序。

GDAL 看起来很有希望,但据我所知,在未来“某个时候”之前不会有 Java 绑定。

为了清楚起见,我正在寻找一个单一的 Java API,我可以使用它来显示来自多个地图服务器/源的地图。

有谁知道这样的事情是否存在,如果没有,从这里去哪里?我应该在 GeoTools 之上构建这个 API 吗?或者...

4

10 回答 10

4

GeoTools 是一个不错的选择。Google Maps服务条款禁止访问 Google Maps 磁贴,除非通过 (JavaScript) Google Maps API,因此您不太可能找到免费可用的代码库来在 Java 应用程序中访问它们。类似的限制可能适用于其他商业层。

于 2009-05-23T23:00:27.933 回答
4

这是一个你有很多选择的情况。GeoTools 确实是一个低级库,是一些动手工作的绝佳选择。我们最近开始在示例代码中使用 Swing,以使教程更加直观。也就是说,它们只是教程代码,并不代表 uDig 等多线程系统。

如果您正在寻找从 Swing 应用程序开始的形式,那么 Jump 家族(遗憾的是分散在一个封闭的开发过程中 - OpenJump 代表了各种分叉的集合)、在 Span 中拥有出色财务支持的 gvSig 等等。

您可能还希望查看 deegree 项目的库方面(我似乎记得它也生成了一个桌面应用程序?)。

我还建议查看一些围绕 Nasa World Wind 和 Open Street Map 数据集制作的平铺地图查看器。这些将更类似于 OpenLayers 体验。

免责声明我是 GeoTools 和 uDig 指导委员会的成员。

于 2010-03-06T13:58:17.883 回答
3

如果您可以在 RCP 框架内工作,uDig 可能会很好地满足您的需求。我对 uDig 或 NASA World Wind 没有任何经验,但如果您需要将地图功能放入现有应用程序中,NASA 的 World Wind Java SDK是另一种选择。它是可扩展的并支持地理空间数据的行业标准。他们在这里有一个内容丰富的 wiki 。我第一次看到 NASA World Wind 是在 JavaOne 2007 上,它看起来 Java SDK 并没有真正起飞,看起来 .Net 版本也没有看到很多新版本,但如果它们是基本的,它可以满足您的需求.

于 2009-05-26T13:46:16.310 回答
1

OpenMap应该是相当不错的。

警告:他们使用的“开放”许可证被 Fedora 和 GNU认为 是非免费的。

于 2011-02-23T03:58:26.020 回答
0

我使用MapXtreme for Java,它非常好,支持多种格式。它并不便宜,但它提供。

它适用于渲染矢量数据格式。

您可以在服务器端或客户端使用它。

于 2009-05-25T07:57:28.103 回答
0

尝试 java 的 mapscript www.mapserver.org

于 2009-05-25T11:03:31.737 回答
0

看看UDig

http://udig.refractions.net/

它基于 eclipse RCP 与 Geotools 配合使用,可以显示大多数类型的空间数据。

它是开源的,似乎有相当多的活动

于 2009-05-26T06:37:12.293 回答
0

ArcGIS Engine Java将满足您的需求。它集成到一个完全集成的 GIS 平台中。有一些工具可以创建制图质量地图、发布它们、托管它们或构建自定义应用程序。

于 2009-06-24T19:39:11.323 回答
0

它不能处理您提到的所有格式,但我成功地使用了用于处理的适度地图显示了 Web 地图(在此处找到它)。处理 PApplet 可以嵌入到摆动 GUI 中,如此所述。

于 2011-06-18T19:22:36.137 回答
0

如果您可以在 Java swing 应用程序中嵌入 Web 浏览器,则可以使用 GoogleMaps,尝试 JDIC 或 DJ Project。另请参阅有没有办法在 Java 中嵌入浏览器?我一直在使用 C# 中的此类解决方案 - 嵌入 IE。但是,您必须嵌入一个好的网络浏览器,通常是一些本地网络浏览器,这限制了您的此类解决方案。

于 2012-07-03T15:06:14.723 回答