我想要一种方法来获得一个静态地图(一个图像文件),基于两个坐标表示所需的矩形或区域。
有什么建议吗?
发布于 2009-06-29 23:53:35
是啊。Google有一个静态地图API,它就是这样做的。它基本上只是一个URL,带有作为参数传递的纬度、经度和缩放级别(以及许多其他变量)。您可以在Google Maps API documentation中阅读有关它的内容。
以下是您可以执行的操作的示例:
从URL:
http://maps.google.com/staticmap?center=40,26&zoom=1&size=150x112&maptype=satellite&key=ABQIAAAAgb5KEVTm54vkPcAkU9xOvBR30EG5jFWfUzfYJTWEkWk2p04CHxTGDNV791-cU95kOnweeZ0SsURYSA&format=jpg
编辑:根据您的评论。我能得到的最接近正方形的形状是30,40纬度,60,70LNG是中心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指出span参数(我以前没有见过)。我用example的span版本更新了我的URL:
http://maps.google.com/staticmap?center=35,65&span=5,5&size=400x400&key=<your key here>&sensor=false
正如您从示例中看到的,这将生成与原始URL相同的缩放级别,但提供了一种更简单的方法(而不是手动调整缩放和检查边缘)。
正如Chris指出的,缩放级别的粒度只能近似于地图的边缘。如果您需要更近的近似,我只能建议调整静态图像地图的大小,以尝试更接近您的边界纬度/经度。
发布于 2009-06-30 15:30:02
如果你需要地图精确地适应一个特定的区域,你不太可能做到这一点,因为大多数地图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
请注意,根据请求的图像大小,您将获得不同的结果。
发布于 2009-07-21 15:23:15
http://wiki.openstreetmap.org/wiki/MapOf
然而,这是关于OpenStreetMap的
https://stackoverflow.com/questions/1061057
复制相似问题