4

如何使用 OpenStreetMap 服务(在线服务器)以编程方式获取街道地图图像,作为可下载的图像文件,仅从纬度-经度值和缩放系数?

我的应用程序有一组纬度-经度值,对于每一个值,我都需要一个 OpenStreetMap 图——一张图像,而不是一个网页——在街道地图上用大头针显示位置。图像需要是单个 SVG 或 PNG 才能进行进一步的离线处理。

我如何以编程方式构造一个 URL(例如http://www.openstreetmap.org/http://www.opencyclemap.org/或类似服务),由纬度-经度值和可能的缩放因子参数化,这将返回我感兴趣的地图图像,包括指定位置的图钉?

4

2 回答 2

5

为了获取特定图块,您必须向 URL 提供缩放、x 坐标和 y 坐标

这是 OpenStreetMap 的 URL

http://[abc].tile.openstreetmap.org/zoom/x/y.png 

[abc] 表示您使用 a 或 b 或 c。这是 OpenStreetMap 服务器上的三个不同的子域。

这是我使用缩放 11 拉下的图块,x = 510,y = 844

在此处输入图像描述

您必须将纬度和经度转换为 (x, y) 坐标。有关图块集和转换代码链接的更完整说明,请参阅此答案

您可以从 OpenStreetMap 服务器检索的图块数量受到限制。请务必缓存您检索的切片。

于 2013-07-02T19:49:08.653 回答
0

听起来您想通过 WMS(网络地图服务)访问。您可以在此处找到 OSM WMS 的镜像列表。我不确定您对它的最终用途,但此 wiki 页面上有几个链接指向可以使用 WMS 的项目。我在以前的一些 GIS 项目中使用过GeoServer,并且非常喜欢它(虽然不知道这是否是您的用例)。

于 2013-07-02T19:46:40.837 回答