谷歌地图的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 调用(例如,必应地图、谷歌地图)从街道地址获取商店网站地址? [关闭]