6

我目前正在使用Java 地图投影库(我能够从作者那里获得用于 Applet 的代码并对其进行修改以用于桌面应用程序 - 不确定他是否在他的网站上链接到该代码)来绘制一个应用程序中的地球地图。但是,我想更进一步。我有一组要在这张地图上绘制的纬度/经度点 - 我只需要在每个点上画一个圆圈,也许还有一些线连接地图上的圆圈(点)。但是,由于用户使用内置的平移和缩放功能,需要在适当的位置重新绘制点。我能做到的最好的就是在放大时保持点,即使这样,当你放大时,点也会变大。

我完全愿意切换库,但是我真的还没有找到一个可以处理绘制世界地图的库,特别是在 Swing 组件上(它不需要那么准确,只是稍微展示一下各种陆地正确)并且还在该地图顶部绘制附加点并使它们“粘”到各种纬度/经度坐标。

我看过 Google Earth 和 NASA WorldWind,但是它们对于我的目的来说非常沉重(我不需要任何详细或准确的东西),并且允许离线使用并将世界图像视图集成到其中似乎并不容易现有的应用程序。

建议或想法?

4

5 回答 5

1

您可以查看 www.osgeo.org Java 堆栈的其他组件。其中之一是地理工具:http: //geotools.codehaus.org/

他们还在继续开发以创建 GUI: http: //geotools.codehaus.org/GUI+Architecture

于 2009-07-24T12:36:45.243 回答
0

处理地理空间数据很快就会变得非常棘手。采取什么方法在很大程度上取决于您在显示数据时需要多准确。 GIS for Web Developers是一本很棒的书,它涵盖了地理空间数据的问题以及如何将其从数据源获取到显示器上。它适用于基于 Web 的显示,但概念是相同的。

如果您不需要高精度,一种简单的方法是找到未投影的底图。使用底图,使用简单的笛卡尔坐标很容易显示纬度/经度点。

如果您确实需要准确的显示,那么确实没有办法避免相当复杂的库。将具有不同基准面和投影的地理空间数据转换为可以显示给用户的东西涉及很多数学。

于 2009-07-28T01:46:30.983 回答
0

虽然我没有使用它,但SwingLabs SwingX-WS项目有一个“丰富的地图查看器组件”。Java.net 页面上有一个地图组件入门教程。

于 2009-07-10T15:20:02.857 回答
0

你应该看看OpenMap

几年来,我们一直在使用 OpenMap 在桌面应用程序中显示 GPS 轨迹。为跟踪点、历史记录、注释和您自己的数据源添加您自己的图层非常容易。如果您不希望它拥有它们,则不需要任何外部连接。

我快速查看了 GeoTools,但它似乎开始了,至少一两年前比我们已经用 OpenMap 完成的要复杂。我们最近一直在探索WorldWind,但它肯定比我们需要的更多。OpenMap 需要很少的马力,而 WorldWind 需要相当不错的视频卡。

于 2009-11-10T16:03:24.060 回答
0

前段时间我将 OpenMap 用于一个小应用程序 - 这是一个 hack,但展示了如何做到这一点。该应用程序使用 NOAA 的数据显示不同年份的飓风轨迹。你可以在这里下载:

http://github.com/DonBranson/SnarfNOAA

于 2009-11-10T16:07:10.503 回答