【发布时间】:2015-05-15 09:19:51
【问题描述】:
我的问题不是很清楚,但我会尝试解释一下。例如,当我们从 Qgis 中的 geoserver 调用 wms 层时,我们会写 http://adresse/geoserver/wms?我们找到了我们发布的所有图层.. 我也想做同样的事情:写一个 mapserver_adresse 并获取我用 mapserver 发布的图层(我不想在地址中写地图文件名).. 是吗可能,我应该从哪里开始?谢谢
【问题讨论】:
我的问题不是很清楚,但我会尝试解释一下。例如,当我们从 Qgis 中的 geoserver 调用 wms 层时,我们会写 http://adresse/geoserver/wms?我们找到了我们发布的所有图层.. 我也想做同样的事情:写一个 mapserver_adresse 并获取我用 mapserver 发布的图层(我不想在地址中写地图文件名).. 是吗可能,我应该从哪里开始?谢谢
【问题讨论】:
您必须在可执行 mapserv 所在的同一位置编写脚本。在此脚本中,您设置变量 MS_MAPFILE=/path/your/mapfile 然后执行 mapserv。
在 Linux 上是这样的:
#! /bin/bash
export MS_MAPFILE=/path/your/mapfile
./mapserv
不要忘记#! /bin/bash,否则 mapserver 将拒绝工作。
将此脚本保存在mapserv所在的同一位置并使其可执行,即:
chmod +x /usr/lib/cgi-bin/your_script
现在你可以用这个地址在qgis中作为wms服务器使用:
http://address/cgi-bin/your_script?
如果你也想隐藏“cgi-bin”部分,可以用apache来做。
另请参阅地图服务器识别的所有其他环境变量:
https://trac.osgeo.org/mapserver/wiki/EnvironmentVariables
在带有 Apache 的 Windows 上,您可以使用 SetEnvIf 指令执行相同的操作,例如:
SetEnvIf Request_URI "/cgi-bin/exemplars/BGS_Bedrock_Geology/wms" MS_map file=/ms4w/apps/cookbookExemplars/BGS_Bedrock_Raster_Map/onegeology.map
【讨论】: