谷歌地图的Java API(或类似的)[关闭]

Posted

技术标签:

【中文标题】谷歌地图的Java API(或类似的)[关闭]【英文标题】:Java API for Google Maps (or similar) [closed] 【发布时间】:2010-11-03 01:47:53 【问题描述】:

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

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

有什么想法吗?

【问题讨论】:

顺便说一下,在创建桌面客户端之前,请阅读 Google Maps API 的服务条款。正如 paracycle 之前所说,静态地图必须在网络浏览器中显示。干杯 【参考方案1】:

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

您只需要构建一个 URL 字符串,然后为图像(以您喜欢的任何格式)发出 HTTP 请求(来自您的 java 实现)。您可以在 URL 中指定一大堆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 似乎允许它。我可能会问一个 Google 人员并得到最终决定。

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

【讨论】:

实际上,在同一常见问题解答 (code.google.com/apis/maps/faq.html#mapsformobile) 的另一部分中,他们还声明:“请注意,不允许在基于浏览器的应用程序之外使用静态地图 API。” Google确实允许在桌面应用程序中使用其静态图像服务。请参阅问题“我可以在我的非 Web 应用程序中使用 Google 地图吗?”下的FAQ FAQ Link Staticmap API v1 在 2016 年 1 月被拒绝。因此,该 URL 不再有效。检查新的Google Static Maps API。 最新 API 的示例:URL.【参考方案2】:

Google 地图不允许在桌面应用程序中使用其图像。 Microsoft 在http://terraserver-usa.com/ 与美国地质调查局合作。有一个freely available web service 和一个WSDL。您可以使用Axis 或CXF 等常见的Java WSDL 绑定库来创建java 对象来访问服务。

另外,NASA 有一个 World Wind 项目,它有一个 Java API。这些图片不是 Google 图片,但大部分 Google 图片都是基于这些图片。

【讨论】:

Google确实允许在桌面应用程序中使用其静态图像服务。请参阅问题“我可以在我的非 Web 应用程序中使用 Google 地图吗?”下的FAQ【参考方案3】:

最近 Google 推出了 Maps Services for Java 库,它为 Java 带来了对地理编码、方向、距离矩阵、海拔和时区 API 的支持。

【讨论】:

【参考方案4】:

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

其他一切最终都会崩溃,因为至少 Google 和 Microsoft 倾向于定期更改其航拍图像的链接格式,以便更难抓取它们并离线存储它们(因为他们没有从内容提供商处购买许可证)这些图像的离线存储)。

其他服务(如谷歌的地理定位服务)可以很容易地从 Java 中使用,“法线地图”也可以很好地工作,但是天线很棘手(至少在我上次尝试时是这样),但如果您可以在格式更改时发布更新...

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

【讨论】:

【参考方案5】:

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

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

Embedding web browser window in Java

【讨论】:

【参考方案6】:

您可能需要使用 Microsoft Map Point Web 服务。我不知道 Google 是否提供类似的不带 Javascript 的功能。

【讨论】:

【参考方案7】:

看看http://www.javaworld.com/javaworld/jw-01-2006/jw-0116-google.html。他们描述了如何从 Java 中使用 Google 地图,并且他们有一个 war 文件(未经测试)。

【讨论】:

【参考方案8】:

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

【讨论】:

是的,这只是用于检索地图数据(带有地理信息的标记、线条和形状)。【参考方案9】:

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

【讨论】:

目前有很多错误,但可能值得一看以等待未来的更新。

以上是关于谷歌地图的Java API(或类似的)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

GWT 2.5 的最佳谷歌地图 V3 API 是啥? [关闭]

是否可以使用地图 API 调用(例如,必应地图、谷歌地图)从街道地址获取商店网站地址? [关闭]

融合位置 API 在关闭谷歌地图后给出高度不准确的位置

是否有任何国际地址验证提供商?试图避免谷歌地图api [关闭]

如何使用谷歌地图api V3计算两个城市之间的距离[关闭]

没有谷歌如何反转地理编码? [关闭]