Java相当于OpenLayers

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

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

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

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

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

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

如果你正在寻找Swing应用程序来启动表单,那就是Jump系列(遗憾地分散在一个封闭的开发过程中 – OpenJump代表了各种分支的集合),gvSig在Span中有很好的资金支持,等等。

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

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

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

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

据说OpenMap相当不错。

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

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

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

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

试试java的www.mapserver.org的mapscript

CU

看看UDig

http://udig.refractions.net/

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

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

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

它没有处理你提到的所有格式,但我成功地使用modestmaps显示Web地图进行处理 (在此处找到)。 处理PApplet可以嵌入到swing GUI中,如此处所述。

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