2009-06-15 106 views
24

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

我需要的,虽然是一个桌面客户端,没有JavaScript来的工作库,GWT等

任何想法?

+0

顺便说一下,请在创建桌面客户端之前阅读Google Maps API的服务条款。如之前所述,静态地图必须在Web浏览器中显示。干杯 – 2010-10-16 01:26:28

回答

9

如果你只是用来显示特定的纬度经度卫星地图图像(不包括谷歌地图平移/缩放等),那么你应该检查出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。我可能会问一个谷歌的人,并得到最后的话。

编辑:谢谢Paracycle,不知道这是否是一个新的常见问题,但在任何情况下,它是相当明确的,you are not allowed to do this

+2

实际上,在同一常见问题(http://code.google.com/apis/maps/faq.html#mapsformobile)中的另一节中,他们还声明:“请注意,不允许在外部使用Static Maps API基于浏览器的应用程序“。 – paracycle 2010-01-11 14:59:10

+2

Google **确实允许在桌面应用程序中使用其静态图像服务。请参阅[问题](https://developers.google.com/maps/faq?hl=en)问题:“我可以在我的非网络应用程序中使用Google地图吗?” – dARKpRINCE 2014-03-11 12:07:40

0

您可能需要使用Microsoft Map Point Web服务。我不知道Google是否提供了一些可比的w/out Javascript。

1

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

其他一切最终都会中断,因为至少谷歌和微软会定期更改其航拍图片的链接格式,以使其更难以抓取并脱机存储(因为他们没有从内容提供商处购买许可证用于这些图像的离线存储)。

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

编辑:它可能与Google Maps for Enterprises服务有所不同,但希望为其支付五位数的美元金额......

9

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

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

+1

Google **确实允许在桌面应用程序中使用其静态图像服务。请参阅[问题](https://developers.google.com/maps/faq?hl=en)问题:“我可以在我的非网络应用程序中使用Google地图吗?” – dARKpRINCE 2014-03-11 12:09:06

0

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

+0

是的,这只是用于检索地图数据(包含地理信息的标记,线条和形状)。 – RedBlueThing 2009-06-16 04:27:14

1

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

看到这个问题,找出如何在Java应用程序中嵌入浏览器:

Embedding web browser window in Java

8

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

相关问题