如何从openstreetmap服务器导出图像?

时间:2010-07-29 09:16:11

标签: python image export openstreetmap mapserver

大家早上好, 我将尝试在这里解释整个情况:我有一个网站(django-python),显示使用Openlayers的地图。地图有两层:一个背景,显示城市名称和街道,为此我使用openstreetmaps;第二层包含一些灰度信息,为此我使用MapServer(更具体地说,我将bbox参数和其他东西发送到我的服务器并通过mapcript为python生成地图)。

现在我想在我的网站上有一个“导出”按钮,它必须创建一个包含地图图像的.zip文件(包含在.zip中的图表和文件中),所以我必须能够生成openlayers中显示的相同地图,并将其保存到文件中或直接保存到.zip中。

我的第一个猜测是我可以从openlayers获取坐标(BBOX),将这些坐标发送到python并通过url和python可以调用两个服务器(mapserver一个openmapstreets),将图像保存在.zip文件中。但生活不是那么容易不是吗? 嗯,它适用于mapserver图层,网址类似于:

http://myserver/mapscript/?LAYERS=selection&FORMAT=png&BBOX=466501.93337405,6631240.3024181,750661.93337405,6853960.3024181&WIDTH=555&HEIGHT=435

但是当我尝试使用相同的坐标调用openstreetmaps时,它会给我一个错误:

http://openstreetmapserver/?LAYERS=osm_l93&FORMAT=png&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A2154&BBOX=466501.93337405,6631240.3024181,750661.93337405,6853960.3024181&WIDTH=256&HEIGHT=256

An error occurred: can't find resolution index for 1110.000000. Available resolutions are: [4096.0, 2048.0, 1024.0, 512.0, 256.0, 128.0, 64.0, 32.0, 16.0, 8.0, 4.0, 2.0, 1.0, 0.5, 0.25]

所以现在......我不知道如何调用OSM为我给他的坐标生成图像..我在openstreetmaps中看了一个导出的例子我认为他们使用其他格式的坐标也许??

http://tile.openstreetmap.org/cgi-bin/export?bbox=-1.81,44.71,9.26,50.53&scale=3500000&format=png 

如果您有任何想法,我会很棒!!!!

1 个答案:

答案 0 :(得分:1)

也许这个例子可以是你需要的: OpenLayers Export Map Example