使用 Java 使用 Google Map 下载地图图像

Posted

技术标签:

【中文标题】使用 Java 使用 Google Map 下载地图图像【英文标题】:Downloading a map image using Google Map using Java 【发布时间】:2013-09-24 19:21:41 【问题描述】:

我想做什么:

我想用 Java 创建一个小程序(这里是 Java 初学者),我在其中指定 GPS 位置和缩放级别,并下载 Google 地图显示的地图图像。与此相关,我需要有一个与图像相关的比例(矩形图像的 x 和 y 维度的 Km 大小)。

我知道的:

我知道如何在浏览器中显示正确的图像,直接在 URL 中指定 GPS 位置和缩放级别(例如:https://maps.google.com/maps?f=q&hl=de&geocode=&q=48.167432,+10.533072&z=7)。应该有某种库,比如 Python 中的 urllib,我将用它来调用这个 URL。

然后如何下载这张图片,以及如何知道图片中的区域? 我实际上找到了一个公式来关联像素中“包含”的米量(或任何单位)(此功能取决于地图的纬度和缩放级别)。在这种情况下,如何知道地图使用的像素?

感谢您的任何建议和/或指点!

【问题讨论】:

以前从未做过任何此类事情,但是:developers.google.com/maps 似乎是一个很棒的起点。 谢谢,我已经研究了一下,但无济于事。另外,API 是针对 javascript 的,而我想使用 Java。 只需要多看一点:)(见我的回答) 【参考方案1】:

您想使用静态地图 API。

https://developers.google.com/maps/documentation/staticmaps/index

您的特定地图将位于 URL

http://maps.googleapis.com/maps/api/staticmap?center=48.167432,10.533072&size=400x400&sensor=true&zoom=7 

只是一个图像。如果您使用 GPS 传感器查找位置,请设置 sensor=true。否则设置为 false。

从这个网址读取图片:

Getting Image from URL (Java)

然后如何下载此图像,以及如何知道图中所示区域 它?我实际上找到了一个公式来关联米的数量(或 任何单位)“包含”在像素中(此功能取决于 地图的纬度和缩放级别)。在这种情况下,如何知道 地图使用的像素?

您将像素和缩放级别传递到图像中,因此该解决方案提供了所有信息,因此您的比例应该很容易计算。

【讨论】:

这听起来就是我真正需要的。我现在正在研究静态地图 API。不知何故,我错过了 API 的这一部分。非常感谢!

以上是关于使用 Java 使用 Google Map 下载地图图像的主要内容,如果未能解决你的问题,请参考以下文章

每 X 秒用 mysql 数据更新 google java map

google-map-react 标记聚类问题

请教GOOGLE MAP API国内能访问的地址

如何在 Xamarin 中使用 Google Map id?

Android onLocationChanged with Direction使用Google Map Api v2

如何在Google Map API中找到Tolls?