是否有任何地图api允许您检索确切的区域?

时间:2009-06-29 23:23:16

标签: google-maps mapping maps

我想要一种基于表示所需矩形或区域的两个坐标来获取静态地图(图像文件)的方法。

建议?

4 个答案:

答案 0 :(得分:2)

是的。谷歌有一个静态地图API,它正是这样做的。它基本上只是一个URL,其纬度,经度和缩放级别作为参数传递(以及许多其他变量)。您可以在Google Maps API documentation

中阅读相关内容

以下是您可以执行的操作示例:

来自网址:

http://maps.google.com/staticmap?center=40,26&zoom=1&size=150x112&maptype=satellite&key=ABQIAAAAgb5KEVTm54vkPcAkU9xOvBR30EG5jFWfUzfYJTWEkWk2p04CHxTGDNV791-cU95kOnweeZ0SsURYSA&format=jpg

编辑:根据您的评论。我最接近方形30,40 lat 60,70 lng的中心是35,65 zoomlevel 6.我有created an example 400x400 image。只需更改以下URL中的密钥即可获取静态地图图像:

http://maps.google.com/staticmap?center=35,65&zoom=6&size=400x400&key=<your key here>&format=jpg

感谢ChrisB指出了跨度参数(之前我没有看到)。我使用URL的span版本更新了我的example

http://maps.google.com/staticmap?center=35,65&span=5,5&size=400x400&key=<your key here>&sensor=false

从示例中可以看出,这会产生与原始URL相同的缩放级别,但提供了更简单的方法(而不是手动调整缩放并检查边缘)。

正如克里斯指出的那样,缩放级别的粒度只能接近地图的边缘。如果您需要更接近的近似值,我只能建议调整静态图像映射的大小以尝试接近您的边界纬度/经度。

答案 1 :(得分:2)

如果您需要地图以精确适合特定区域,则您不太可能这样做,因为大多数地图API都有预先指定的缩放级别,并且可能不会有缩放级别这将使您完全适合您的区域。

但是,如果您只是需要关闭,Google Static Maps API会提供一种指定viewport的方法,从而无需自行设置缩放级别。您所需要的只是中心点和跨度。如果你想要从SW(30,70)到NE(40,60)的区域,中心将是(35,65),跨度将是(5,5)。

http://maps.google.com/staticmap?center=35,65&span=5,5&size=400x400&key=MAPS_API_KEY&sensor=false

请注意,根据请求的图像尺寸,您将得到不同的结果。

答案 2 :(得分:0)

http://wiki.openstreetmap.org/wiki/MapOf

然而,这是关于OpenStreetMap

答案 3 :(得分:0)

使用OGC WMS GetMap request获取图片

page说明了如何获取此图片。该图片来自DEMIS,但有数千家提供商使用WMS服务

enter image description here

我建议DEMIS,但这里有一些免费的WMS服务列表。