MAPServer CGI控件

变量

变量名不区分大小写。

缓冲器[距离]

与 Mapfile 在同一坐标系中的距离,与MAPxy一起用于创建新的地图范围。

类组[名称]

A的名字 LAYER 类组。设置 LAYER CLASSGROUPname CLASS name.

上下文[文件名]

上下文文件的路径。路径与要使用的映射文件相关,也可以是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变量可用于指定映射文件的位置(而不是向外部公开完整的映射文件路径)。

  1. MY_MAPFILE)

    SetEnv MY_MAPFILE "/opt/mapserver/map1/mymapfile.map"
    
  2. 请参阅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使用最小值)。