Java相当于OpenLayers

时间:2009-05-21 22:49:20

标签: java api swing gis geotools

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

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

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

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

10 个答案:

答案 0 :(得分:4)

这是一个你有很多选择的情况。 GeoTools确实是一个低级库,是一些工作的绝佳选择。我们最近开始使用Swing作为示例代码来制作教程more visual。这表示它们只是教程代码,并不代表多线程系统,如uDig。

如果您正在寻找Swing应用程序以启动表单,那么就有Jump系列(可悲地分散在一个封闭的开发过程中 - OpenJump代表各种分支的集合),gvSig在Span中具有出色的财务支持,等等。

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

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

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

答案 1 :(得分:3)

GeoTools是一个很好的选择。除了(JavaScript)Google Maps API之外,Google地图Terms of Service禁止访问Google地图图块,因此您不太可能找到可在Java应用程序中访问它们的免费代码库。类似的限制可能适用于其他商业层。

答案 2 :(得分:3)

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

答案 3 :(得分:1)

据说{p> OpenMap非常好。

警告:他们使用的“开放”许可证是Fedora和GNU的considered non-free

答案 4 :(得分:0)

试用java脚本www.mapserver.org

CU

答案 5 :(得分:0)

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

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

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

答案 6 :(得分:0)

ArcGIS Engine Java会做你需要的。它集成到一个完全集成的GIS平台中。有一些工具可用于创建制图质量图,发布它们,托管它们或构建自定义应用程序。

答案 7 :(得分:0)

它没有处理您提到的所有格式,但我使用modestmaps Processing成功显示网络地图(找到它here)。处理PApplet可以嵌入到swing GUI中,如here所述。

答案 8 :(得分:0)

看看UDig

http://udig.refractions.net/

它基于日食RCP与Geotools一起使用,可以显示大多数类型的空间数据。

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

答案 9 :(得分:0)

如果您可以将Web浏览器嵌入到Java swing应用程序中,可以使用GoogleMaps,尝试使用JDIC或DJ Project。另请参阅Is there a way to embed a browser in Java?我一直在使用C#中的此类解决方案 - 嵌入IE。但是,您必须嵌入一个良好的Web浏览器,通常是一些本机Web浏览器,这限制了您的此类解决方案。