适用于Google地图的Java API(或类似版本)

我想知道是否有一个Java库充当Google Maps API的包装器。 我感兴趣的是在我的桌面应用程序上显示特定区域(lon,lat)的卫星地图。 它不一定是谷歌地图,任何地图服务都可以做到这一点。

我需要的是一个与桌面客户端一起工作的库,没有javascript,GWT等。

有任何想法吗?

如果您只想显示特定纬度经度的卫星地图图像(没有谷歌地图平移/缩放等),那么您应该查看Google静态地图 。

您只需构建一个URL字符串,然后为图像(以您喜欢的任何格式)发出HTTP请求(来自您的java实现)。 您可以在URL中指定一大堆参数来获取您所追踪的卫星图像:

从URL:

http://maps.google.com/staticmap?center=40,26&zoom=1&size=150x112&maptype=satellite&key=ABQIAAAAgb5KEVTm54vkPcAkU9xOvBR30EG5jFWfUzfYJTWEkWk2p04CHxTGDNV791-cU95kOnweeZ0SsURYSA&format=jpg 

编辑:好的,我实际上删除了这个答案,因为我发现TOS中的第10.8节明确禁止从浏览器外部访问静态地图。 但后来我发现这个FAQ更新似乎允许它。 我可能会问一个谷歌人,并得到最后的结论。

编辑:感谢Paracycle ,不确定这是否是FAQ的新增内容,但无论如何它是非常明确的, 你不允许这样做 。

Google地图不允许在桌面应用程序中使用它的图像。 Microsoft与USGS合作,url为http://terraserver-usa.com/ 。 有一个免费的Web服务与WSDL 。 您可以使用常见的Java WSDL绑定库(如Axis或CXF)来创建Java对象以访问该服务。

此外,NASA还有一个拥有Java API的World Wind项目。 图像不是Google图像,但大部分Google图像都是基于这些图像。

最近,Google推出了Maps Services for Java库,它支持Java的地理编码,方向,距离矩阵,高程和时区API。

将Web浏览器控件嵌入到您的客户端,显示使用javascript API的HTML页面。

其他一切都将最终破裂,因为至少谷歌和微软倾向于定期更改其航拍图像的链接格式,以使其更难以刮掉并将其存储离线(因为他们没有从内容提供商那里购买许可证用于离线存储这些图片)。

其他服务(如Googles地理定位服务)可以很容易地从Java中使用,“普通地图”也可以很好地工作,但是天线很棘手(至少它们是我最后一次尝试的时候),但是如果你能够的话当然可行格式更改时发送更新…

编辑 :可能与Google Maps for Enterprises服务有所不同,但预计会支付五位数的金额…

要在桌面应用程序窗口中查看文字地图,您可以嵌入基于Java的浏览器控件,并与Google Maps应用程序兼容。

请参阅此问题以了解如何在Java应用程序中嵌入浏览器:

在Java中嵌入Web浏览器窗口

您可能需要使用Microsoft Map Point Web服务。 我不知道Google是否提供了与Javascript相似的东西。

请访问http://www.javaworld.com/javaworld/jw-01-2006/jw-0116-google.html 。 他们描述了如何使用Java处理谷歌地图,他们有一个战争文件(未经测试)。

您可能想看看官方的Google Maps Data API ,我相信它有一个Java客户端。 但是我认为这只是用于检索/更新地图的“数据”部分,因此它不会为您提供实际照片的访问权限(您可能没有获得许可)。

查看http://javamaps.blogspot.com 。