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

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

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

有什么想法吗?

【问题讨论】:

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

标签: java google-maps


【解决方案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
  • Staticmap API v1 在 2016 年 1 月被拒绝。因此,该 URL 不再有效。检查新的Google Static Maps API
  • 最新 API 的示例:URL.
【解决方案2】:

Google 地图不允许在桌面应用程序中使用其图像。 Microsoft 在http://terraserver-usa.com/ 与美国地质调查局合作。有一个freely available web service 和一个WSDL。您可以使用AxisCXF 等常见的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】:

            【讨论】:

            • 目前有很多错误,但可能值得一看以等待未来的更新。
            猜你喜欢
            • 2011-03-25
            • 2011-05-08
            • 1970-01-01
            • 2011-04-06
            • 2018-02-26
            • 2012-07-06
            • 2016-05-10
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多