MAPServer CGI控件¶
变量¶
变量名不区分大小写。
- 缓冲器[距离]
与 Mapfile 在同一坐标系中的距离,与MAPxy一起用于创建新的地图范围。
- 上下文[文件名]
上下文文件的路径。路径与要使用的映射文件相关,也可以是URL路径(有关详细信息,请参阅下面的“通过CGI支持映射上下文”一节)。
- 图标[层名称],[类索引]
在模式=legend icon中用于生成层的图例图标。类索引值是可选的,默认为0。
- ID[ ID字符串]
默认情况下,mapserver根据系统时间和进程ID生成唯一的会话ID。此参数覆盖默认值。
- IMG
与用于记录用户单击的内联映射图像关联的名称。实际上传递的是两个变量,img.x和img.y。
对于CGI应用程序,这是一个基本变量,请参阅示例以了解示例用法。
- imgbox[x1][y1][x2][y2]盒
图像中拖动框的坐标(以像素为单位)。最常用的是与基于Java的前端连接到MMASPER。
- imgext[最小值][最小值][最大值][最大值]
现有内嵌图像的空间范围,即用户可以在浏览器中看到的图像。
- imgshape[x1 y1 x2 y2 x3 y3…][wkt]
任意多边形形状(使用 图像坐标) 用于查询目的。
通过列出多边形的坐标(多个实例只需向形状添加零件,以便可以用孔构造形状)或指定WKT(众所周知的文本)表示来指定多边形。
与nquery模式一起使用。
- imgsize[列][行]
退出的内联图像的大小(像素)。
- IMGXY[X]
鼠标单击的坐标(像素)。最常用的是与基于Java的前端连接到MMASPER。
- 层[名]
图层在 Mapfile 中显示的名称。向mapserv发送层名称会将该层的状态设置为“打开”。
- 层[名称…]
要打开的层的名称。层名称必须用空格分隔。
4.4及以上版本:通过“layers=all”将自动打开所有层。
- 地图[文件名]
要使用的映射文件的路径(相对于CGI目录)。
- mapext[minx][miny][maxx][maxy],mapext(形状)
要创建的地图的空间范围。
可以设置为形状作为替代选项。在这种情况下,将mapextent设置为选定形状的范围。用于查询。
- 地图形状[x1 y1 x2 y2 x3 y3…][wkt]
任意多边形形状(使用 地图坐标) 用于查询目的。
通过列出多边形的坐标(多个实例只需向形状添加零件,以便可以用孔构造形状)或通过指定多边形的WKT(众所周知的文本)表示来指定多边形。
与nquery模式一起使用。
- 地图大小[列][行]
要创建的图像的大小(像素)。用于允许用户动态更改输出映射的分辨率。
- MAPxy[X][Y],MAPxy(形状)
与形状文件在同一坐标系中的一个点,与缓冲器或比例尺一起用来构造地图范围。
可以设置为形状作为替代选项。在这种情况下,将mapextent设置为选定形状的范围。用于查询。
- minx miny maxx maxy[数字]
新地图/查询的空间范围的最小/最大X/Y坐标。这组参数是mapext的片段。
- 模式[值]
操作模式。支持以下选项:
- BROWSE
创建地图(和交互页面)的完全交互界面。这是默认模式。
- COORDINATE
返回基于用户单击图像的地图坐标字符串。
mapserv.exe?map=/ms4w/apps/local-demo/local.map&MODE=coordinate&IMGEXT=0 0 100 100&IMGXY=10 10
- FEATURENQUERY
使用slayer中的多个功能查询其他层的空间搜索。
- FEATUREQUERY
使用slayer中的一个功能查询其他层的空间搜索。
- INDEXQUERY
根据shapeindex和tileindex参数的值查找功能。shapeindex是必需的,tileindex是可选的,仅用于平铺的shapefile层。
- ITEMFEATURENQUERY
使用qstring触发属性数据的文本搜索。返回所有匹配项。要搜索的层是使用slayer参数定义的。此搜索的结果将应用于其他可搜索层(可以使用qlayer参数进行限制)。
- ITEMFEATUREQUERY
使用qstring触发属性数据的文本搜索。返回第一个匹配项。要搜索的层是使用slayer参数定义的。此搜索的结果将应用于其他可搜索层(可以使用qlayer参数进行限制)。
- ITEMNQUERY
使用qstring触发属性数据的文本搜索。返回所有匹配项。
- ITEMQUERY
使用层qstring触发属性数据的文本搜索。返回第一个匹配项。
- LEGEND
将返回创建的图例。用于<img…>标签。
- LEGENDICON
返回图例图标。icon参数还必须用于指定层名称和类索引。类索引值是可选的,默认为0。例如:
mapserv.exe?map=/ms4w/apps/local-demo/local.map&MODE=legendicon&ICON=countries,0
- MAP
将返回创建的映射。用于<img…>标签。
- NQUERY
空间搜索(全部查找)由单击地图或用户定义选择框触发。
- QUERY
空间搜索(查找最近的)由单击地图触发。
- REFERENCE
将返回创建的引用映射。用于<img…>标签。
- SCALEBAR
将返回创建的scaleBar。用于<img…>标签。
- TILE
生成地图图块。见 瓦片模式 有关详细信息。
- ZOOMIN
切换到模式浏览,zoomdir=1
- ZOOMOUT
使用zoomdir=-1切换到模式浏览
备注
QFORMAT
- qformat[输出格式mime/类型](可选)
这个 OUTPUTFORMAT WEB 对象的queryformat参数)。该参数是可选的,与query`mode`s一起使用。默认值为text/html。
示例(映射输出):
...&mode=nquery&qformat=png24&...
- qitem[名称](可选)
要查询的层属性表中属性的名称。该参数是可选的,与用于属性查询的qstring一起使用。
- qLe[名]
查询层。在 Mapfile 中显示的要查询的图层的名称。
- qString[表达式]
VALIDATION 的参数 LAYER LAYER- 水平 METADATA
- 查询文件[文件名]
用于浏览或查询模式。此选项标识要在任何常规处理之前加载的查询文件。在浏览模式下,这将导致生成查询映射,而不是常规映射。当您希望在平移/缩放模式下隐藏某个功能时,此功能非常有用。在nquery模式下,您可以访问通常呈现查询时使用的任何模板,因此您可以访问查询映射和属性信息。请参见savequery选项。
- REF
与用于记录用户单击的内联引用映射图像关联的名称。实际传递的是两个变量,ref.x和ref.y。
对于CGI应用程序,当使用引用映射时,这是一个基本变量,请参见示例用法。
- ReXYX[Y]
在参考图像中单击鼠标的坐标(像素)。与基于Java的前端一起使用到MpServer。
- SAVEQUERY
当与任何查询模式一起使用时,这会告诉MapServer将查询结果保存到临时文件中,以便在后续操作中使用(请参见查询文件)。对于持久化查询很有用。
- scaledenom[数字]
缩放以在处创建新地图。与mapxy一起使用。比例作为实际比例分数的分母给出,例如,对于比例为1:24000的地图,使用24000。在MapServer 5.0中实现,以替换不推荐使用的scale参数。
- 比例[数字]-已弃用
因为mapserver 5.0,所以要使用的正确参数是scaledenom。不推荐使用的比例是创建新地图的比例。与mapxy一起使用。比例作为实际比例分数的分母给出,例如,对于比例为1:24000的地图,使用24000。
- SEARCHMAP
可以使用querymaps进行平移/缩放接口。在这些情况下,您可能希望获得有关新映射内容的信息,而不是以前的映射,这是查询的正常工作方式。当指定searchmap时,将创建新的映射,其范围用于查询层。仅适用于nquery模式。
- 形状索引
用于索引查询(与indexquery一起使用)。
- 杀戮[名字]
选择图层。用于任何功能(即分段)查询模式的层的名称。选择层必须是多边形层。选择功能可用于向用户演示。
- TILE [同轴]
在模式=磁贴中使用。平铺坐标。看见 瓦片模式 有关详细信息,请参阅。
- tileindex[索引]
用于索引查询(与indexquery一起使用),与平铺形状文件层一起使用。
- TILEMODE [mode]
在模式=磁贴中使用。模式可以是 gmap (谷歌地图)或 ve (必应地图/虚拟地球)。看见 瓦片模式 有关详细信息,请参阅。
TILESIZE [width] [height]
8.0 新版功能.
在模式=磁贴中使用。宽度和高度是以像素为单位的平铺尺寸。如果未指定,则默认为256x256。看见 瓦片模式 有关详细信息,请参阅。
- 缩放[数]
缩放比例以应用于创建新地图。大于0的值导致放大,0是平移,小于0的值用于缩小。值为2表示“放大两次”。
缩放可以用作zoomdir/zoomsize组合的快捷方式。默认情况下,缩放受编译到mapserver中的minzoom/maxzoom设置的限制(-25/25)。
- 缩放目录[1 0-1]
缩放方向。见上文。
- 缩放大小[数字]
缩放的绝对大小。与ZoomDir一起使用。
zoomdir仅限于编译到mapserver中的maxzoom(默认为25)。
通过窗体或URL更改映射文件参数¶
从3.3版开始,几乎可以更改表单或URL中的任何映射文件值(请参见 运行时替换 VALIDATION
警告
此功能只能通过 MAPSERV公司 CGI应用。在mapscript中,这很容易由您自己完成,因为开发人员可以完全控制如何处理输入。
使用MapServer版本<=8¶
以前版本的mapserver cgi程序允许通过使用诸如map_layer_0_class_0_color=255+0+0等繁琐语法的URL更改某些参数,这会更改一个classobj中的颜色。因此,在过去,您必须一次更改参数。现在,您可以将大量的映射文件(有安全限制)传递到CGI接口。映射对象表示法仍然是确定要修改哪个对象所必需的,但是您可以一次更改多个属性。请注意,您可以使用“u”或“.”来分隔标识符。
示例1,更改scaleBar对象:
...&map.scalebar=UNITS+MILES+COLOR+121+121+121+SIZE+300+2&...
示例2,更改演示文稿样式:
...&map.layer[lakes].class[0].style[0]=SYMBOL+crosshatch+COLOR+151+51+151+SIZE+15&...
示例3,创建新功能:
...&map_layer[3]=FEATURE+POINTS+500000+1000000+END+TEXT+'A+test+point'+END&...
示例4,设置多个Web对象参数:
...&map_web=imagepath+/ms4w/tmp/ms_tmp/+imageurl+/ms_tmp/
示例5,设置地图大小:
...&map_size=800+400
变量唯一地标识一个对象(对于layerobj和classobj,按名称或索引)。该值是映射文件的一个片段。此时不能创建内联功能以外的新对象。
使用MapServer版本<5¶
对于低于5版的MapServer,可以使用映射文件中使用的层次结构来表示任何值。地图包含一个层,该层包含一个类,该类包含一个具有颜色的标签。此层次结构表示为用下划线分隔的mapserver关键字序列。例如,如果只定义了一个类来更改一个名为“lakes”的图层的颜色,您将使用一个名为“map-lakes-class-color”的表单变量,并可以为其指定一个类似“0 0 255”的颜色。层可以通过索引(即地图层)或如上所示的名称来引用。层类由索引值引用(即map_layer_0_class_2)。如果一个层只有一个类,那么索引应该省略。这些变量必须始终以序列“map”开头。指定的值必须符合映射文件的语法。
也可以使用这种机制定义内联特性。这是唯一可以添加到 Mapfile 的情况。可以编辑/更改图层参数,但不能创建新图层。对于内联功能,您必须首先创建一个功能,然后在其基础上进行构建,但是,该功能所属的层必须存在。下面是GET请求中的一个片段,它向WebUser层添加了一个功能:
...&map_webuser_feature=new&map_webuser_feature_points=12345.6789+12345.6789
&map_webuser_feature_text=My+House!&...
“map_webuser_feature=new”为webuser层创建一个新功能。对该层的要素对象的所有后续调用都将修改新要素。可以重复此过程以创建其他功能。这实际上是针对非常小(点、矩形)的数据量。
使用Apache变量指定映射文件的位置¶
Apache变量可用于指定映射文件的位置(而不是向外部公开完整的映射文件路径)。
MY_MAPFILE)
SetEnv MY_MAPFILE "/opt/mapserver/map1/mymapfile.map"
请参阅MapServer CGI URL中的变量:
http://localhost/cgi-bin/mapserv?map=MY_MAPFILE&mode=...
Rosa小程序控件¶
注:Rosa小程序的主动开发和维护已停止
Rosa小程序参数在3.6版中添加到CGI MapServer。这个Java Applet为MaServer提供了更直观的用户界面。maptools站点提供了有关rosa applet的详细信息。
如果设置为正确的值,其他接口/工具也可以使用这些参数。请注意,这两个参数必须按照下面确定的顺序移交给TE CGI应用程序。
- 输入_类型(自动自动_点)
需要使用INPUT_TYPE参数来确定是否必须将移交给MapServer的坐标解释为矩形数据或点数据。
- 输入坐标[minx,miny;maxx,maxy]
Rosa小程序总是填充坐标对。如果一个点(input_type=auto_point)最小和最大坐标相等(mapserver使用最小值)。