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

时间:2009-06-15 16:07:45

标签: java google-maps

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

我需要的是一个用于桌面客户端的库,没有javascript,GWT等。

有什么想法吗?

9 个答案:

答案 0 :(得分:9)

Google地图不允许在桌面应用程序中使用它的图像。 Microsoft在http://terraserver-usa.com/与USGS合作。 freely available web service有一个WSDL。您可以使用常见的Java WSDL绑定库(如AxisCXF)来创建用于访问服务的Java对象。

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

答案 1 :(得分:9)

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

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

来自网址:

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

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

编辑:感谢Paracycle,不确定这是否是常见问题解答的新增内容,但无论如何它都非常明确,you are not allowed to do this

答案 2 :(得分:8)

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

答案 3 :(得分:1)

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

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

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

修改:Google Maps for Enterprises服务可能会有所不同,但预计会支付五位数的美元金额...

答案 4 :(得分:1)

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

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

Embedding web browser window in Java

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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

答案 8 :(得分:-2)