获取指定纬度和经度的OpenStreetMap图片

4
如何使用OpenStreetMap服务(在线服务器)以编程方式从仅具有纬度-经度值和缩放因子的位置获取街道地图图像作为可下载的图像文件?我的应用程序具有一组纬度-经度值,对于每个值,我需要一个OpenStreetMap图表 - 一个图像,而不是网页 - 显示带有街道地图上的引脚的位置。该图像需要是单个SVG或PNG文件,以供进一步离线处理。如何以编程方式构建URL(例如http://www.openstreetmap.org/http://www.opencyclemap.org/或类似服务),由纬度-经度值和可能的缩放因子参数化,返回我感兴趣的地图图像,包括指定位置处的引脚?

你不能这样做。你必须同时拥有缩放级别,才能计算出要检索哪个瓦片集中的瓦片。 - Gilbert Le Blanc
请查看此答案:https://dev59.com/00_Sa4cB1Zd3GeqP8gna#3238960 - Gilbert Le Blanc
2个回答

6
为了获取特定的瓦片,您需要将缩放级别、x坐标和y坐标提供给URL。
以下是OpenStreetMap的URL:
http://[abc].tile.openstreetmap.org/zoom/x/y.png 

[abc]的意思是你可以使用a或b或c。这些是OpenStreetMap服务器上的三个不同的子域。

这是我使用缩放级别11、x=510、y=844下载的瓦片。

enter image description here

你需要将纬度和经度转换为(x, y)坐标。参见此答案,了解更完整的图块集和转换代码的链接。

你所能从OpenStreetMap服务器检索到的瓦片数量是有限的。一定要缓存你检索到的瓦片。


0

听起来你想通过 WMS(Web Mapping Service)访问。你可以在这里找到 OSM WMS 的镜像列表here。我不确定你的最终用途是什么,但是这个维基页面上有几个链接指向可以使用 WMS 的项目。我之前在一些 GIS 项目中使用过GeoServer,非常喜欢它(不知道这是否符合你的用例)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接