我正在寻找一个Java库来显示来自各种来源的地图数据,包括shapefile,WMS,WFS,谷歌地图,可能还有ArcIMS等。看起来OpenLayers是最接近我想要的东西,除了它是一个JavaScript库,我正在写一个Swing应用程序。
GDAL看起来很有希望,但据我所知,在未来“某个时间”之前不会有Java绑定。
为了清楚起见,我正在寻找一个可用于显示来自多个地图服务器/来源的地图的单一Java API。
有没有人知道这样的事情是否存在,如果没有,从哪里开始?我应该在GeoTools之上构建这个API吗?还是......
答案 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)
答案 3 :(得分:1)
警告:他们使用的“开放”许可证是Fedora和GNU的considered non-free。
答案 4 :(得分:0)
答案 5 :(得分:0)
试用java脚本www.mapserver.org
CU
答案 6 :(得分:0)
答案 7 :(得分:0)
ArcGIS Engine Java会做你需要的。它集成到一个完全集成的GIS平台中。有一些工具可用于创建制图质量图,发布它们,托管它们或构建自定义应用程序。
答案 8 :(得分:0)
它没有处理您提到的所有格式,但我使用modestmaps Processing成功显示网络地图(找到它here)。处理PApplet可以嵌入到swing GUI中,如here所述。
答案 9 :(得分:0)
如果您可以将Web浏览器嵌入到Java swing应用程序中,可以使用GoogleMaps,尝试使用JDIC或DJ Project。另请参阅Is there a way to embed a browser in Java?我一直在使用C#中的此类解决方案 - 嵌入IE。但是,您必须嵌入一个良好的Web浏览器,通常是一些本机Web浏览器,这限制了您的此类解决方案。