我如何像使用地理服务器一样从地图服务器获取 wms-Layer?
How I can get a wms-Layer from mapserver like we do with a geoserver?
我的问题不是很清楚,但我会尝试解释一下。例如,当我们从 Qgis 中的地理服务器调用 wms 层时,我们写 http://adresse/geoserver/wms?我们找到了我们已经发布的所有图层。我想做同样的事情:写一个 mapserver_adresse 并获取我用 mapserver 发布的图层(我不想在地址中写 mapfile 名称)。 . 有可能吗?我应该从哪里开始?谢谢
您必须在与可执行 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 来实现。
另请参阅 mapserver 可识别的所有其他环境变量:
https://trac.osgeo.org/mapserver/wiki/EnvironmentVariables
在 Windows 上使用 Apache,您可以使用 SetEnvIf 指令执行相同的操作,例如:
SetEnvIf Request_URI "/cgi-bin/exemplars/BGS_Bedrock_Geology/wms" MS_map file=/ms4w/apps/cookbookExemplars/BGS_Bedrock_Raster_Map/onegeology.map
我的问题不是很清楚,但我会尝试解释一下。例如,当我们从 Qgis 中的地理服务器调用 wms 层时,我们写 http://adresse/geoserver/wms?我们找到了我们已经发布的所有图层。我想做同样的事情:写一个 mapserver_adresse 并获取我用 mapserver 发布的图层(我不想在地址中写 mapfile 名称)。 . 有可能吗?我应该从哪里开始?谢谢
您必须在与可执行 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 来实现。
另请参阅 mapserver 可识别的所有其他环境变量:
https://trac.osgeo.org/mapserver/wiki/EnvironmentVariables
在 Windows 上使用 Apache,您可以使用 SetEnvIf 指令执行相同的操作,例如:
SetEnvIf Request_URI "/cgi-bin/exemplars/BGS_Bedrock_Geology/wms" MS_map file=/ms4w/apps/cookbookExemplars/BGS_Bedrock_Raster_Map/onegeology.map