PHP映射脚本API

作者

丹尼尔·莫里塞特

联系

在mapgears.com的dmorissette

作者

叶旺沃森阿塞法

联系

位于dmsolutions.ca的Yassefa

作者

艾伦布德罗

联系

地图齿轮网的Aboudreault

作者

杰夫麦克纳

联系

jmckenna在gatewaygeomatics.com

备注

如果您使用的是MapServer 5.6及更高版本,请参阅 PHP MapScript 5.6 documentation 相反。

小技巧

自MapServer7.4.0版本起,就包含了PHP7本机支持。另外,从7.4.0版本开始,PHP 7可以通过MapServer的 SWIG 应用程序编程接口。

重要注意事项

  • 常量名和类成员变量名在PHP中区分大小写。

常量

以下mapserver常量可用:

布尔值

真的,假的,开的,关的,是的,不

地图单位

ms英寸,ms英尺,ms英里,ms米,ms公里,ms-dd,ms-pixels,ms-nauticalmiles

层类型

MS层点、MS层线、MS层多边形、MS层栅格、MS层注释(自6.2起已弃用)、MS层查询、MS层圆、MS层tileindex、MS层图表

层/图例/比例尺/类状态

ms-on、ms-off、ms-default、ms-embed、ms-delete

层透明度

允许阿尔法透明像素映射与RGB映射图像一起使用ms_gd_alpha

标签位置

女士,女士,女士,女士,女士,女士,女士,女士,女士,女士

位图字体样式

Miny女士、Small女士、Medium女士、Large女士、Giant女士

形状类型

ms-shape_点,ms-shape_线,ms-shape_多边形,ms-shape_空

整形器类型

点、弧、多边形、多点

查询/联接类型

女士单,女士多

查询映射样式

女士正常,女士hilite,女士选定

连接类型

女士inline,女士shapefile,女士tiled,女士sde,女士ogr,女士tiled,女士postgis,女士wms,女士oraclespatial,女士wfs,女士graticle,女士graster,女士plugin,女士union

错误代码

MS_NOERR、MS_IOERR、MS_MEMERR、MS_TYPEERR、MS_SYMERR、MS_REGEXERR、MS_TTFERR、MS_DBFERR、MS_GDERR、MS_IDENTERR、MS_EOFERR、MS_PROJERR、MS_MISCERR、MS_CGIERR、MS_WEBERR、MS_IMGERR、MS_HASERR

符号类型

MS符号简单,MS符号向量,MS符号椭圆,MS符号像素地图,MS符号TrueType

图像模式类型( outputFormatObj

ms_ImageMode_PC256、ms_ImageMode_RGB、ms_ImageMode_RGBA、ms_ImageMode_Int16、ms_ImageMode_Float32、ms_ImageMode_Byte、ms_ImageMode_功能、ms_ImageMode_空

样式/属性绑定

MS-Style_-binding_-size,MS-Style_-binding_-angle,MS-Style_-binding_-color,MS-Style_-binding_-outlinecolor,MS-Style_-binding_-symbol,MS-Style_-binding_-width

标签/属性绑定

MS_label_binding_size,MS_label_binding_angle,MS_label_binding_color,MS_label_binding_outlinecolor,MS_label_binding_字体,MS_label_binding_优先级,MS_label_binding_位置,MS_label_binding_shadowsizex,MS_label_binding_shadowsizey

对准

ms_-align_-left,ms_-align_-center,ms_-align_-right

OwsRequest

女士获取请求,女士发布请求

功能

字符串ms_GetVersion())

返回字符串中的MapServer版本和选项。可以解析这个字符串以找出编译的模块等等。

int ms_getversionint()中的

以整数(x*10000+y*100+z)形式返回MapServer版本号(x.y.z)。(v5.0中新增)例如v5.4.3将返回50403。

int-ms-iogetstdobufferbytes()。

将当前缓冲区写入stdout。在调用函数之前,应使用php header()函数设置文档的内容类型。返回输出发送到stdout时写入的字节数。见 WXS服务的MAPScript包装器 更多信息。

void ms_iogetstdobufferstring())

以字符串形式获取当前stdout缓冲区内容。此方法不清除缓冲区。

void ms_ioinstallstdinfrombuffer()。

安装一个MapServer IO处理程序,引导将来的stdin读取(即请求后捕获)来自缓冲区。

void ms_ioinstallsdouttobuffer()。

安装一个MapServer IO处理程序,将未来的stdout输出定向到内存缓冲区。

void ms-ioresethandlers()。

重置默认stdin和stdout处理程序,而不是基于“缓冲区”的处理程序。

字符串ms_iostripstdobuffercontenttype()

从stdout缓冲区中除去content-type头(如果有),如果找到content-type,则返回。否则返回false。

void ms_iostripstdobufferContentHeaders()。

从stdout缓冲区中除去所有内容-*头(如果有的话)。

数组ms_tokenizemap(字符串映射文件名)

通过mapserver解析器准备一个mapfile,并为mapfile中的每个令牌返回一个带有一个项的数组。字符串、逻辑表达式、regex表达式和注释作为单个标记返回。

ErrorObj MS_GetErrorObj()。

返回对ErrorObj列表头的引用。

void ms_reseterorlist()无效

清除当前错误列表。请注意,清除列表会使通过$error->next()方法获得的所有errorobj句柄失效。

Classes

下面的类对象通过php-mapscript提供。

类对象

构造函数

类对象可以由 layerObj 类,或者可以使用以下方法创建:

new classObj(layerObj layer [, classObj class])

或者使用旧的构造函数

classObj ms_newClassObj(layerObj layer [, classObj class])

第二个参数类是可选的。如果给定,则创建的新类将是该类的副本。

成员

类型

名字

注意

一串

一串

关键图像

拉贝洛夫

标签

删除(6.2)-使用addlabel,getlabel,…

双重的

最大刻度

哈希表对象

元数据

双重的

最小尺度

一串

名称

利息

数字标记

只读(从6.2开始)

利息

数字

只读的

利息

地位

ms-on、ms-off或ms-delete

一串

模板

一串

标题

利息

类型

方法

int addlabel(labelobj标签)

6.2 新版功能.

将labelobj添加到classobj并在labels数组中返回其索引。

字符串ConvertToString()

将对象保存到字符串。为UpdateFromString提供反转选项。

ImageObj CreateLegendicon(int宽度,int高度)

绘制图例图标并返回新的ImageObj。

int deletestyle(int索引)

删除样式索引指定的样式。如果删除的样式后面有任何样式,则其索引将减少1。

int drawlegendicon(int宽度,int高度,imageobj im,int dstx,int dsty)

在dstx,dsty的im对象上绘制图例图标。返回ms-success/ms-failure。

空()

释放对象属性并中断内部引用。注意,您必须取消设置php变量以完全释放资源。

字符串GetExpressionString()

返回 expression 类对象的字符串。

labelobj getlabel(int索引)

6.2 新版功能.

返回对labelobj的引用,位于 index 在标签数组中。

有关多个类标签的详细信息,请参阅labelobj_u部分。

int getmetadata(字符串名称)

按名称提取类元数据项。如果没有与名称匹配的条目,则返回“”。请注意,搜索区分大小写。

备注

GetMetadata的查询区分大小写。

StyleObj GetStyle(int索引)

使用索引返回样式对象。index>=0&&index<class->numstyles。

字符串gettextstring()

返回类对象的文本字符串。

INT INSERT样式( styleObj 风格 [, int index=-1 ] )

插入一个 copy风格 放到索引处的样式数组中 索引 。默认值为-1,即数组的末尾。返回插入样式的索引。

int movestyledown(int索引)

样式索引指定的样式将向下移动到类数组中。返回ms-success或ms-failure。ex class->moveStyleDown(0)将具有向上移动样式0到位置1的效果,位置1处的样式将移动到位置0。

int movestyleup(int索引)

样式索引指定的样式将向上移动到类数组中。返回ms-success或ms-failure。ex class->moveStyleup(1)将具有将样式1向上移动到位置0的效果,并且位置0处的样式将移动到位置1。

labelobj removelabel(int索引)

6.2 新版功能.

移除位于的Labelobj index 从标签数组返回对labelobj的引用。numLabels将递减,数组将更新。

int removemetadata(字符串名称)

删除类的元数据项。返回ms-success/ms-failure。

int set(字符串属性_name,new_value)

将对象属性设置为新值。

int setexpression(字符串表达式)

设置 expression 类对象的字符串。

int setmetadata(字符串名称、字符串值)

设置类的元数据项。返回ms-success/ms-failure。

int settext(字符串文本)

设置类对象的文本字符串。

int updatefromstring(字符串片段)

从字符串片段更新类。返回ms-success/ms-failure。

/*set the color */
$oClass->updateFromString('CLASS STYLE COLOR 255 0 255 END END');

聚类对象

构造函数

clusterObj的实例始终嵌入在 layerObj .

成员

类型

名字

双重的

缓冲区

双重的

最大距离

一串

区域

方法

字符串ConvertToString()

将对象保存到字符串。为UpdateFromString提供反转选项。

字符串GetFilterString())

返回 expression 对于此群集筛选器,或者出错时为空。

字符串GetGroupString()

返回 expression 对于此群集组,或者出错时为空。

int setfilter(字符串表达式)

设置层筛选器 expression .

int setgroup(字符串表达式)

设置层组 expression .

色度Objo

构造函数

colorobj的实例总是嵌入到其他类中。

成员

类型

名字

利息

红色

利息

绿色

利息

蓝色

利息

阿尔法

方法

int setrgb(int red,int green,int blue,int alpha=255)

设置红色、绿色、蓝色和字母值。返回ms_success。

字符串to6()

7.0.0 新版功能.

获取十六进制字符串“rrggbb”或(如果alpha不是255)“rrggbb a a”的颜色。

int sethex(字符串hex)

7.0.0 新版功能.

设置红色、绿色、蓝色和字母值。十六进制字符串的格式应为“rrggbb”(alpha将设置为255)或“rrggbbaa”。返回ms_success。

Error Objr

当发生错误时,MapServer会在内部创建ErrorObj实例。错误作为链接列表进行管理,第一个项是最新的错误。可以使用ms_GetErrorObj()提取列表头,也可以使用ms_ResetOrList()清除列表。

成员

类型

名字

利息

代码//请参阅上面的错误代码常量

一串

消息

一串

常规

方法

ErrObj.NEXT()

返回列表中的下一个ErrorObj,如果到达列表末尾,则返回空值。

例子

此示例绘制地图并报告在draw()调用期间生成的所有错误,错误可能来自多个层。

ms_ResetErrorList();
$img = $map->draw();
$error = ms_GetErrorObj();
while($error && $error->code != MS_NOERR)
{
  printf("Error in %s: %s<br>\n", $error->routine, $error->message);
  $error = $error->next();
}

GRIDOBJ

构造函数

格网始终嵌入定义为格网的Layer对象中(Layer->ConnectionType=MS_GRATICULE)(更多文档:https://github.com/MapServer/MapServer/wiki/MapServerGrid)

层可以通过使用:ms_newgridobj(layerobj layer)向其添加网格对象而成为网格层。

$oLayer = ms_newlayerobj($oMap);
$oLayer->set("name", "GRID");
ms_newgridobj($oLayer);
$oLayer->grid->set("labelformat", "DDMMSS");

成员

类型

名字

一串

标签格式

双重的

麦克拉克斯

双重的

最大间隔

双重的

最大细分

双重的

小圆弧

双重的

最小间隔

双重的

小分界

方法

int set(字符串属性_name,new_value)

将对象属性设置为新值。

哈希表对象

构造函数

hashTableObj的实例始终嵌入在 classObjlayerObjmapObjwebObj .它使用只读。

$hashTable = $oLayer->metadata;
$key = null;
while ($key = $hashTable->nextkey($key))
  echo "Key: ".$key." value: ".$hashTable->get($key)."<br/>";

方法

空隙清除()

清除哈希表中的所有项(为空)。

string get(字符串键)

按名称提取类元数据项。如果没有与名称匹配的条目,则返回“”。请注意,搜索区分大小写。

string nextkey(字符串previouskey)

如果previousKey=空,则返回下一个键或第一个键。如果哈希表中没有项或达到哈希表结尾,则返回空值

int remove(字符串键)

删除哈希表中的元数据项。返回ms-success/ms-failure。

int set(字符串键,字符串值)

在哈希表中设置元数据项。返回ms-success/ms-failure。

图像对象

构造函数

ImageObj的实例始终由 mapObj 类方法。

成员

类型

名字

注意

利息

宽度

只读的

利息

高度

只读的

利息

分辨率

只读的

利息

溶解因子

只读的

一串

意象派

一串

意象派

方法

void pasteimage(imageobj srcimg,int transparentcolorhex[,int dstx,int dsty],int angle])

复制当前图像对象顶部的srcimg。transparentcolorhex是srcimg中的颜色(采用0xrrggbb格式),应视为透明(即不会复制这些像素)。如果你不想要任何透明的颜色,可以通过-1。如果提供可选的DSTX、DSTY,则它定义应复制图像的位置(DSTX、DSTY=左上角位置)。可选角度是0到360度之间的值,用于逆时针旋转源图像。请注意,如果指定角度(即使其值为零),则DSTX和DSTY坐标指定目标区域的中心。注意:此函数仅适用于8位gd图像(png或gif)。

int saveimage([字符串文件名,mapobj omap])

将图像对象写入指定的文件名。不传递文件名或空文件名会将输出发送到stdout。在这种情况下,在调用saveimage()之前,应使用php header()函数设置文档的内容类型。输出格式是当前在 Mapfile 中选择的格式。第二个论点OMAP不是管理学。当保存到需要 Mapfile 中包含的地理参考信息的格式(如gtiff)时,这很有用。成功时,如果写入外部文件,则返回ms_success;如果将输出发送到stdout,则返回写入的字节数。

字符串savewebimage()

将映像写入临时目录。返回图像URL。输出格式是当前在 Mapfile 中选择的格式。

标签缓存成员对象

只能通过 mapObj (map->getLabel())。

成员

类型

名字

注意

利息

类别索引

只读的

利息

特征尺寸

只读的

利息

层次索引

只读的

利息

马克里德

只读的

利息

数字

只读的

利息

形态指数

只读的

利息

地位

只读的

一串

文本

只读的

利息

倾斜指数

只读的

方法

没有

LabelCaseObjo

只能通过 mapObj (map->labelcache)。此对象仅用于提供释放标签缓存的可能性(map->label cache->free cache())

方法

布尔自由缓存()

释放标签缓存。总是返回“成功”女士。例如:map->labelcache->freecache();

拉贝洛夫

构造函数

labelobj总是嵌入到其他类中。

new labelObj()

成员

类型

名字

利息

排列

双重的

利息

角反射器

利息

反别名

利息

自动进料尺寸

色度Objo

背景色(自6.0以来已弃用)

色度Objo

backgroundshadowcolor(自6.0以来已弃用)

利息

BackgroundshadowSizex(自6.0以来已弃用)

利息

BackgroundshadowSizey(自6.0以来已弃用)

利息

缓冲区

色度Objo

颜色

一串

编码

一串

字体

利息

利息

最大长度

利息

最大尺寸

利息

最小距离

利息

最小特征尺寸

利息

最小长度

利息

最小尺寸

利息

数字

利息

偏移量x

利息

杂乱

色度Objo

外部色彩

利息

外宽

利息

分音

利息

位置

利息

优先

利息

重复动作

色度Objo

暗色

利息

阴影线

利息

幽灵

利息

大小

利息

方法

字符串ConvertToString()

将对象保存到字符串。为UpdateFromString提供反转选项。

int deletestyle(int索引)

删除样式索引指定的样式。如果删除的样式后面有任何样式,则其索引将减少1。

空()

释放对象属性并中断内部引用。注意,您必须取消设置php变量以完全释放资源。

字符串getbinding(混合labelbinding)

获取指定标签属性的属性绑定。如果此属性没有绑定,则返回空值。

例子:

$oLabel->setbinding(MS_LABEL_BINDING_COLOR, "FIELD_NAME_COLOR");
echo $oLabel->getbinding(MS_LABEL_BINDING_COLOR); // FIELD_NAME_COLOR
字符串GetExpressionString()

返回标签表达式字符串。

StyleObj GetStyle(int索引)

使用索引返回样式对象。index>=0&&index<label->numstyles。

字符串gettextstring()

返回标签文本字符串。

INT INSERT样式( styleObj 风格 [, int index=-1 ] )

插入一个 copy 属于 style 到索引处的样式数组中 指数. 默认值为-1,或数组的结尾。返回插入样式的索引。

int movestyledown(int索引)

样式索引指定的样式将向下移动到类数组中。返回ms-success或ms-failure。ex label->moveStyleDown(0)将具有向上移动样式0到位置1的效果,位置1处的样式将移动到位置0。

int movestyleup(int索引)

样式索引指定的样式将向上移动到类数组中。返回ms-success或ms-failure。例如label->moveStyleup(1)将具有将样式1向上移动到位置0的效果,并且位置0处的样式将移动到位置1。

int removebinding(混合labelbinding)

删除specField样式属性的属性绑定。

例子:

$oStyle->removebinding(MS_LABEL_BINDING_COLOR);
int set(字符串属性_name,new_value)

将对象属性设置为新值。

int setbinding(混合labelbinding,字符串值)

设置指定标签属性的属性绑定。

例子:

$oLabel->setbinding(MS_LABEL_BINDING_COLOR, "FIELD_NAME_COLOR");

这会将颜色参数与数据绑定(即从名为“字段名称颜色”的字段中提取颜色值)

int setexpression(字符串表达式)

设置标签表达式。

int settext(字符串文本)

设置标签文本。

int updatefromstring(字符串片段)

从字符串片段更新标签。返回ms-success/ms-failure。

层对象

构造函数

层对象可以由 mapObj 类,或者可以使用以下方法创建:

layerObj ms_newLayerObj(MapObj map [, layerObj layer])

第二个可选参数可以给ms_newlayerobj()以创建新层作为现有层的副本。如果将某个层作为参数提供,则该层的所有成员都将复制到创建的新层中。

成员

类型

名字

注意

利息

注释

哈希表对象

绑定

一串

类别组

一串

类项目

聚类对象

集群

一串

连接

利息

连接类型

只读,使用setConnectionType()设置

一串

数据

利息

调试

利息

倾倒

自6.0以来已弃用

一串

过滤项

一串

页脚

GRIDOBJ

网格

仅在定义为网格的层上可用(ms分划)

一串

一串

页眉

利息

指数

只读的

利息

标记缓存

一串

标签项目

双重的

标签最大刻度

双重的

labelminscaledenom公司

一串

标签要求

一串

面具

利息

最大特征量

双重的

最大刻度

哈希表对象

元数据

双重的

最小尺度

一串

名称

利息

num_processing

利息

数字类

只读的

色度Objo

场外

利息

不透明性

投影对象

投影

利息

标签缓存

一串

要求

利息

尺寸单位

利息

起始索引

利息

地位

ms-on、ms-off、ms-default或ms-delete

一串

样式项

双重的

符号尺度

一串

模板

一串

倾斜指数

一串

梯级项目

双重的

容忍

利息

公差单位

利息

转型

利息

类型

方法

int addfeature(shapeobj shape)

在图层中添加新功能。返回ms_success或ms_failure on error。

int applysld(字符串sldxml,字符串名称层)

应用 SLD 文档到层对象。SLD文档和层之间的匹配将使用层的名称完成。如果传递了namedlayer参数(参数是可选的),则SLD中匹配该参数的namedlayer将用于设置层的样式。参见 SLD HowTo 有关SLD支持的更多信息。

int applysldurl(字符串sldurl,字符串名称层)

应用 SLD 指向层对象的URL所指向的文档。SLD文档和层之间的匹配将使用层的名称完成。如果传递了namedlayer参数(参数是可选的),则SLD中匹配该参数的namedlayer将用于设置层的样式。见 SLD HowTo 有关SLD支持的更多信息。

无效清除处理()

清除所有处理字符串。

空闭包()

关闭以前用open()打开的层。

字符串ConvertToString()

将对象保存到字符串。为UpdateFromString提供反转选项。

int draw(图像对象图像)

绘制一个图层,必要时向缓存中添加标签。返回ms_success或ms_failure on error。

int drawquery(图像对象图像)

为单个层绘制查询映射。

字符串executewfsgetfeature()

在WFS层上执行GetFeature请求,并返回创建的临时GML文件的名称。出错时返回空字符串。

空()

释放对象属性并中断内部引用。注意,您必须取消设置php变量以完全释放资源。

字符串生成ld()

STATUS

classobj getclass(int classindex)

从给定索引值的层返回ClassObj(0=第一类)

int getclassindex(shape[,classgroup,numclasses])

获取给定比例的形状的类索引。如果没有类匹配,则返回-1。ClassGroup是要检查的类ID数组(可选)。NumClasses是ClassGroup数组包含的类数。默认情况下,将选中所有图层类。

rectobj getextent()。

返回层的数据区或出错时为空。如果设置了层的扩展数据块成员,则使用此值,否则此调用将打开/关闭层以读取扩展数据块。这在shapefiles上很快,但在某些文件格式或数据源上可能是一个昂贵的操作。在打开或关闭的层上都可以安全地使用此函数:在调用它之前/之后不必调用open()/close()。

字符串GetFilterString())

返回 expression 对于此层,或者出错时为空。

数组getGridIntersectionCoordinates()

返回包含网格交叉点坐标的数组。如果没有坐标,则返回空数组。

数组getitems()

返回包含项的数组。必须先调用open函数。如果没有项,则返回空数组。

int getmetadata(字符串名称)

按名称获取层元数据条目。如果没有与名称匹配的条目,则返回“”。请注意,搜索区分大小写。

备注

GetMetadata的查询区分大小写。

int GetNumResults()。

返回上一个查询中的结果数。

数组getprocessing()

返回包含处理字符串的数组。如果没有处理字符串,则返回空数组。

字符串GetProjection()

返回的字符串表示形式 projection . 出错或未设置投影时返回空值。

结果obj getresult(int index)

从索引在0到numResults-1范围内的层对象中按索引返回resultObj。返回有效的对象,如果索引无效,则返回false(0)。

rectobj getresultsbounds()。

返回最新结果的边界框。

shapeobj getshape(resultobj result])

如果传递的resultObj具有有效的resultIndex,请从层的resultset中检索shapeObj。(例如,从getresult()返回的resultObj中获取)。否则,它将在层上执行单个查询以获取shapeindex

$map = new mapObj("gmap75.map");
$l = $map->getLayerByName("popplace");
$l->queryByRect($map->extent);
for ($i=0; $i<$l->getNumResults();$i++){
  $s = $l->getShape($l->getResult($i));
  echo $s->getValue($l,"Name");
  echo "\n";
}
string getwmsfeatureinfourl(int clickx,int clicky,int featurecount,string infoformat)

返回一个wms getfeatureinfo url(仅适用于wms层)clickx,clicky是要在像素坐标中查询的位置,其中(0,0)位于图像的左上角。FeatureCount是要返回的结果数。infoformat是请求结果的格式。取决于远程服务器的功能。mapserver wms服务器只支持“mime”(很快就会支持“gml.1”)。如果层不是WMS层或不可查询,则返回“”并输出警告。

布尔值可见()

根据图层当前在地图中是否可见(即打开、按比例等),返回ms_true/ms_false。

int moveclassdown(int索引)

类索引指定的类将向下移动到层数组中。返回ms-success或ms-failure。ex-layer->moveClassDown(0)将具有将类0向上移动到位置1的效果,位置1的类将移动到位置0。

int moveclassup(int索引)

类索引指定的类将向上移动到层数组中。返回ms-success或ms-failure。ex-layer->moveClassup(1)将类1移动到位置0,位置0的类将移动到位置1。

int开()

打开层以与getshape()一起使用。返回ms-success/ms-failure。

形状obj nextshape()

在调用mswhichshapes以实际检索给定区域内的形状后调用。返回形状对象或出错时返回空值。

$map = ms_newmapobj("d:/msapps/gmap-ms40/htdocs/gmap75.map");
$layer = $map->getLayerByName('road');
$status = $layer->open();
$status = $layer->whichShapes($map->extent);
while ($shape = $layer->nextShape())
{
  echo $shape->index ."<br>\n";
}
$layer->close();
int querybyattributes(字符串qitem、字符串qstring、int模式)

查询与当前地图范围相交的形状的图层。qitem是执行查询的项(属性),qstring是要匹配的表达式。查询是对作为 CLASS 包含一个 TEMPLATE 值或与包含 LAYER TEMPLATE 值。请注意,此函数将忽略层的筛选器/筛选器项。根据您想要的结果数量,模式是ms-single或ms-multiple。如果找到形状,则返回ms-success;如果找不到任何形状,则返回ms-failure;如果发生其他错误,则返回ms-failure(请注意,如果使用“@”控制运算符在PHP中找不到任何内容,则返回错误消息)。

int querybyfeatures(int slayer)

根据另一层的前一组结果执行查询集。目前,结果必须基于多边形层。如果找到形状,则返回ms-success;如果找不到任何形状,则返回ms-failure;如果发生其他错误,则返回ms-failure(请注意,如果使用“@”控制运算符在PHP中找不到任何内容,则返回错误消息)。

int querybypoint(pointobj点,int模式,双缓冲区)

在地理参考地图坐标中指定的点位置查询图层(即,不是像素)。查询将在属于包含模板值的类或与包含层模板值的层中的任何类匹配的所有形状上执行。根据您想要的结果数量,模式是ms-single或ms-multiple。传递缓冲区-1默认为在 Mapfile 中设置的公差(以像素为单位),但可以使用常量缓冲区(以地面单位指定)。如果找到形状,则返回ms-success;如果找不到任何形状,则返回ms-failure;如果发生其他错误,则返回ms-failure(请注意,如果使用“@”控制运算符在PHP中找不到任何内容,则返回错误消息)。

int querybyrect(rectobj rect)

使用地理参考地图坐标中指定的矩形(即非像素)查询图层。查询将在属于包含模板值的类或与包含层模板值的层中的任何类匹配的所有形状上执行。如果找到形状,则返回ms-success;如果找不到任何形状,则返回ms-failure;如果发生其他错误,则返回ms-failure(请注意,如果使用“@”控制运算符在PHP中找不到任何内容,则返回错误消息)。

int querybyshape(shapeobj shape)

查询层基于单个形状,此时形状必须是多边形。如果找到形状,则返回ms-success;如果找不到任何形状,则返回ms-failure;如果发生其他错误,则返回ms-failure(请注意,如果使用“@”控制运算符在PHP中找不到任何内容,则返回错误消息)。

classobj removeclass(int索引)

删除指示的类并返回副本,如果失败则返回空值。请注意,此操作将对后续类重新编号。numClasses字段包含可用的类数。

int removemetadata(字符串名称)

删除层的元数据项。返回ms-success/ms-failure。

int set(字符串属性_name,new_value)

将对象属性设置为新值。

int setconnectiontype(int connectiontype[,string plugin_library])

更改层的连接类型,并根据新的连接类型重新创建vtable。应该使用此方法而不是直接设置ConnectionType参数。如果layer.connectiontype=ms_plugin,还应指定plugin_library参数,以便选择要由mapserver加载的库。对于其他连接类型,不使用此参数。

int setfilter(字符串表达式)

设置层筛选器 expression .

int setmetadata(字符串名称、字符串值)

设置层的元数据项。返回ms-success/ms-failure。

int setprocessing(字符串)

将字符串添加到层的处理字符串列表中。层->num_处理增加1。返回ms_success或ms_failure on error。

$oLayer->setprocessing("SCALE_1=AUTO");
$oLayer->setprocessing("SCALE_2=AUTO");
int setprojection(字符串项目参数)

设置层 projection 以及坐标系。参数以逗号分隔的项目4参数的单个字符串形式给出。返回ms_success或ms_failure on error。

int setwktprojection(字符串proj_参数)

与setProjection()相同,但将ogc wkt投影定义字符串作为输入。

备注

setwktprojection需要gdal支持

int updatefromstring(字符串片段)

从字符串片段更新层。返回ms-success/ms-failure。

/*modify the name */
$oLayer->updateFromString('LAYER NAME land_fn2 END');
/*add a new class*/
$oLayer->updateFromString('LAYER CLASS STYLE COLOR 255 255 0 END END END');
int whichshapes(rectobj)

执行空间和基于属性的特征搜索(可选)。该函数基本上准备好了一些东西,以便查询或绘图函数(例如使用nextshape函数)可以访问候选特性。返回ms-success、ms-failure或ms-done。如果层范围不与rectobj重叠,则返回ms-done。

传奇对象

构造函数

legendobj的实例始终嵌入在 mapObj .

成员

类型

名字

注意

利息

高度

色度Objo

图像颜色

利息

凯西泽

利息

基西齐

利息

密钥空间

利息

键间距

拉贝洛夫

标签

色度Objo

外部色彩

框的轮廓颜色,-1表示无轮廓

利息

位置

对于嵌入的图例,ms-ul,ms-uc,…

利息

标签缓存

真的,真的

利息

地位

打开,关闭,嵌入

一串

模板

利息

宽度

方法

字符串ConvertToString()

将对象保存到字符串。为UpdateFromString提供反转选项。

空()

释放对象属性并中断内部引用。注意,您必须取消设置php变量以完全释放资源。

int set(字符串属性_name,new_value)

将对象属性设置为新值。

int updatefromstring(字符串片段)

从字符串片段更新图例。返回ms-success/ms-failure。

线路对象

构造函数

new lineObj()

或者使用旧的构造函数

LineObj ms_newLineObj()

成员

类型

名字

注意

利息

点数

只读的

方法

int加法(pointobj point)

在行尾添加一个点。返回ms-success/ms-failure。

int addxy(双x,双y[,双m])

在行尾添加一个点。返回ms-success/ms-failure。

备注

第3个参数m仅用于测量的形状文件。这不是强制性的。

int addxyz(双x,双y,双z[,双m])

在行尾添加一个点。返回ms-success/ms-failure。

备注

第4个参数m仅用于测量的形状文件。这不是强制性的。

点obj点(int i)

返回对点号i的引用。

int项目(projectionobj-in,projectionobj-out)

将线从“in”投影(第一个参数)投影到“out”投影(第二个参数)。返回ms-success/ms-failure。

MAPbOBJ

构造函数

new mapObj(string map_file_name [, string new_map_path])

或者使用旧的构造函数

mapobj ms_new mapobj(字符串map_file_name[,字符串new_map_path])

返回一个新对象以处理MapServer映射文件。

mapobj ms_newmapobjfromstring(字符串map_file_string[,字符串new_map_path])

从mapfile字符串构造新的mapobj。返回一个新对象以处理MapServer映射文件。

备注

默认情况下,映射文件中的符号集、字体集和其他路径是相对于映射文件位置的。如果提供了新的_map_路径,那么该目录将用作映射文件中所有重新关联路径的基路径。

成员

类型

名字

注意

双重的

栅格尺寸

利息

调试

双重的

分辨力

每英寸像素数,默认为72

雷克托布杰

范围;

一串

字体集文件名

只读,由setfontset()设置

利息

高度

请参见setsize()。

色度Objo

图像颜色

利息

凯西泽

利息

基西齐

利息

密钥空间

利息

键间距

LabelCaseObjo

标记缓存

没有会员。仅用于释放标签缓存(map->label cache->free())

传奇对象

传奇

一串

映射器

利息

最大尺寸

哈希表对象

元数据

一串

名称

利息

数字符号

只读的

输出格式对象

输出格式

利息

数字输出格式

只读的

投影对象

投影

CuryMyAppObjo

查询程序

参考对象AppObjt

参考

双重的

分辨率

每英寸像素数,默认为72

斯巴巴罗夫

标尺

双重的

缩放索引

只读,由drawmap()设置

一串

肖佩思

利息

地位

一串

符号集文件名

只读,由setsymbolset()设置

利息

单位

地图单位类型

韦博伊

网状物

利息

宽度

请参见setsize()。

方法

int应用程序配置()。

应用映射文件中设置的配置选项。例如,使用setconfigOption设置proj库只修改映射对象中的值。applyconfigOptions实际上会更改处理投影时将使用的proj库值。

int applysld(字符串sldxml)

应用 SLD 文档到映射文件。SLD文档和映射文件之间的匹配将使用层的名称完成。见 SLD HowTo 有关SLD支持的更多信息。

int applysldurl(字符串sldurl)

将URL指向的SLD文档应用于映射文件。SLD文档和映射文件之间的匹配将使用层的名称完成。见 SLD HowTo 有关SLD支持的更多信息。

字符串ConvertToString()

6.4 新版功能.

将对象保存到字符串。

备注

对于mapobj,反向方法updatefromstring不存在

图像对象绘制()

渲染映射并返回图像对象或出错时为空。

Int DrawLabelCache(图像对象图像)

呈现地图的标签。返回ms_success或ms_failure on error。

图像对象绘图图例()

渲染图例并返回图像对象。

图像对象DrawQuery())

呈现查询映射并返回图像对象或出错时为空。

图像对象DrawReferenceMap()

渲染引用映射并返回图像对象。

图像对象DrawscaleBar())

渲染比例尺并返回图像对象。

Int EmbedLegend(图像对象图像)

嵌入一个传说。实际上,图例只是添加到标签缓存中,因此必须调用drawLabelCache()才能实际执行渲染(除非设置了postlabelCache,在这种情况下,它会立即绘制)。返回ms_success或ms_failure on error。

int embedscalebar(图像对象图像)

嵌入一个scaleBar。实际上,scaleBar只是添加到标签缓存中,因此必须调用drawLabelCache()来实际进行渲染(除非设置了postlabelCache,在这种情况下,它是立即绘制的)。返回ms_success或ms_failure on error。

空()

释放对象属性并中断内部引用。注意,您必须取消设置php变量以完全释放资源。

void freequery(层索引)

在指定的层上释放查询结果。如果layerIndex为-1,则将释放对层的所有查询。

字符串生成ld()

STATUS

数组getAllGroupNames()

返回包含层中使用的所有组名的数组。如果没有组,则返回空数组。

数组getAllLayerNames()

返回包含所有层名称的数组。如果没有层,则返回空数组。

颜色obj getcolorbyindex(int icloindex)

返回与调色板中的颜色索引相对应的ColorObj。

string getconfiguration(字符串键)

返回与键关联的配置值。如果找不到键,则返回空的sting。

labelcachememberobj getlabel(int索引)

返回给定索引值(0=第一个标签)的映射中的LabelCacheMemberObj。必须启用LabelCache。

while ($oLabelCacheMember = $oMap->getLabel($i)) {
  /* do something with the labelcachemember */
  ++$i;
}
layerobj getlayer(int索引)

从给定索引值的映射返回layerObj(0=第一层)

layerobj getlayerbyname(字符串层名称)

从给定层名称的映射中返回layerobj。如果层不存在,则返回空值。

数组getlayersDrawingOrder())

返回一个数组,该数组包含层索引的绘制顺序。如果没有层,则返回空数组。

数组getlayersindexbygroup(字符串groupname)

返回一个数组,该数组包含给定组名的所有层索引。如果没有层,则返回空数组。

int getmetadata(字符串名称)

按名称提取元数据项(存储在 WEB 映射文件中的对象)。如果没有与名称匹配的条目,则返回“”。

备注

GetMetadata的查询区分大小写。

int getnumsymbols()。

返回地图中的符号数。

字符串GetProjection()

返回投影的字符串表示形式。出错或未设置投影时返回空值。

int getsymbolbyname(字符串符号_name)

使用名称返回符号索引。

symbolobj getsymbolobjectbyid(int符号化)

使用符号ID返回符号对象。有关详细信息,请参阅“符号对象引用”部分。

int insertlayer(layerobj层[,int nindex=-1])

插入的副本 layer 进入索引处的地图 N索引. 默认值为 nIndex 是-1,这意味着最后一个可能的索引。返回新层的索引,如果失败则返回-1。

int loadmapcontext(字符串文件名[,布尔唯一层名称])

仅在启用WMS支持时可用。加载A WMS Map Context XML文件到当前的mapobj中。如果地图已经包含了一些图层,那么在WMS地图上下文文档中定义的图层将添加到当前地图中。第二个参数unique_layer_name是可选的,如果设置为ms_true layers created,将具有唯一的名称(唯一前缀添加到名称中)。如果设置为ms_false,层名称将与上下文中的名称相同。默认值为ms_false。返回ms-success/ms-failure。

int loadowsparameters(owsrequestobj请求,字符串版本)

将OWS请求参数(bbox、layers和c)加载到地图中。返回ms-success或ms-failure。第二个参数版本不是必需的。如果没有给出,版本将设置为1.1.1。

int loadquery(文件名)

从文件加载查询。返回ms-success或ms-failure。与savequery一起使用。

int movelayerdown(int layerindex)

在绘图层次中向下移动图层。返回ms_success或ms_failure on error。

int movelayerup(int层索引)

在绘图层次中向上移动层。返回ms_success或ms_failure on error。

int offsetextent(双x,双y)

根据地图坐标中给定的距离偏移地图范围。返回ms-success或ms-failure。

Int OwsDispatch(OwsRequestObj请求)

处理并执行地图上传递的OpenGIS Web服务请求。如果req对象中没有有效的OWS请求,则返回ms_done(2),如果成功处理了OWS请求,则返回ms_success(0),如果未成功处理OWS请求,则返回ms_failure(1)。OWS请求包括 WMSWFSWCSSOS MapServer支持的请求。已调度请求的结果将写入stdout,并可以使用msio服务(即ms-ioinstallstdouttobuffer()和ms-iogetstdobufferstring())捕获。

图像对象准备图像()

返回空白图像对象。

无效的PrepareEquery()

计算地图的比例,并设置地图->比例尺。

字符串processLegendTemplate(数组参数)

处理图例模板文件并将结果返回到缓冲区。

字符串处理querytemplate(数组参数,布尔生成图像)

处理查询模板文件并将结果返回到缓冲区。第二个参数generateimages不是强制的。如果没有给出,它将被设置为真。

字符串处理模板(数组参数、布尔生成图像)

处理Web对象中指定的模板文件,并将结果返回到缓冲区中。处理过程包括打开模板文件并替换其中找到的所有标记。只有映射对象中具有等效元素的标记才会被替换(例如[scaledenom])。前一条语句有两个例外:

  • 如果参数generateimages设置为ms-true,则会将[img]、[scaleBar]、[Ref]、[Legend]替换为适当的URL。(注:如果在 Mapfile 中将对象设置为ms_on,则会生成与不同对象对应的图像)

  • 用户可以使用params参数指定标记及其值。例如,如果用户有一个特定的标记调用[我的标记],并且希望它被替换为“我的标记的值”,他会这样做

$tmparray["my_tag"] = "value_of_my_tag";
$map->processtemplate($tmparray, MS_FALSE);
int querybyfeatures(int slayer)

基于一个层上一组结果执行查询。目前,结果必须基于多边形层。如果找到形状,则返回ms-success;如果找不到任何形状,则返回ms-failure;如果发生其他错误,则返回ms-failure(请注意,如果使用“@”控制运算符在PHP中找不到任何内容,则返回错误消息)。

int querybyindex(layerindex,tileindex,shapeindex[,addtoquery])

将给定层上的特定形状添加到查询结果中。如果addtoquery(非强制参数)设置为ms_true,则该形状将添加到现有查询列表中。默认行为是释放现有查询列表并仅添加新形状。

int querybypoint(pointobj点,int模式,双缓冲区)

在地理参考地图坐标中指定的点位置(即不是像素)查询地图中的所有选定图层。查询是对作为 CLASS 包含一个 模板法 值或与包含 LAYER TEMPLATE 价值。根据您想要的结果数量,模式是ms-single或ms-multiple。传递缓冲区-1默认为在 Mapfile 中设置的公差(以像素为单位),但可以使用常量缓冲区(以地面单位指定)。如果找到形状,则返回ms-success;如果找不到任何形状,则返回ms-failure;如果发生其他错误,则返回ms-failure(请注意,如果使用“@”控制运算符在PHP中找不到任何内容,则返回错误消息)。

int querybyrect(rectobj rect)

使用地理参考地图坐标中指定的矩形(即非像素)查询地图中的所有选定图层。查询是对作为 CLASS 包含一个 模板法 值或与包含 LAYER TEMPLATE 价值。如果找到形状,则返回ms-success;如果找不到任何形状,则返回ms-failure;如果发生其他错误,则返回ms-failure(请注意,如果使用“@”控制运算符在PHP中找不到任何内容,则返回错误消息)。

int querybyshape(shapeobj shape)

基于单个形状查询地图中所有选定的图层,此时形状必须是多边形。如果找到形状,则返回ms-success;如果找不到任何形状,则返回ms-failure;如果发生其他错误,则返回ms-failure(请注意,如果使用“@”控制运算符在PHP中找不到任何内容,则返回错误消息)。

层obj removellayer(int nindex)

从mapobj中删除一个层。参数是要删除的层的索引。成功时返回删除的layerObj,否则返回空值。

int removemetadata(字符串名称)

删除映射的元数据项(存储在映射文件中的Web对象中)。返回ms-success/ms-failure。

int save(字符串文件名)

将当前映射对象状态保存到文件。出错时返回-1。使用绝对路径。如果使用相对路径,则它将相对于映射文件位置。

int savemapcontext(字符串文件名)

仅在启用WMS支持时可用。将当前映射对象状态保存到 WMS Map Context 格式。只有WMS层保存在WMS映射上下文XML文件中。返回ms-success/ms-failure。

int savequery(字符串文件名[,int results])

将当前查询保存在文件中。结果确定保存格式-ms_true(或1/true)保存查询结果(tile index和shape index),ms_false(或0/false)保存查询参数(查询将在loadquery中重新运行)。返回ms-success或ms-failure。任何一种保存格式都可以与LoadQuery一起使用。有关不同保存格式的详细信息,请参阅RFC 65和票据3647。

int scaleextent(双缩放因子、双minscaledenom、双maxscaledenom)

使用缩放因子缩放地图范围,并确保范围在minscaledenom和maxscaledenom域内。如果minscaledenom和/或maxscaledenom为0,则不考虑该参数。返回ms-success或ms-failure。

int selectoutputformat(字符串类型)

选择要在地图中使用的输出格式。返回ms-success/ms-failure。

备注

使用的类型应该对应于映射文件中声明的一种输出格式。传递的类型参数将与输出格式结构中的mimetype参数进行比较,然后与结构中的name参数进行比较。

int appendoutputformat(输出格式obj outputformat)

在映射对象中追加outputformat对象。返回新的numOutputFormats值。

int removeoutputformat(字符串名称)

从映射中删除outputformat。返回ms-success/ms-failure。

outputformatobj getoutputformat(int index)

返回索引位置的输出格式。

int set(字符串属性_name,new_value)

将“映射对象”属性设置为新值。

int setcenter(点对象中心)

将地图中心设置为给定的地图点。返回ms-success或ms-failure。

int setconfigOption(字符串键,字符串值)

使用键和传递的值设置配置参数

void setextent(双minx、双miny、双maxx、双maxy)

使用传入的georef extents参数设置映射范围。返回ms_success或ms_failure on error。

int setfontset(字符串文件名)

加载并设置新的 FONTSET .

布尔集合层DrawingOrder(数组层索引)

设置层的顺序数组。传递的参数必须是包含所有层索引的有效数组。返回ms_success或ms_failure on error。

int setmetadata(字符串名称、字符串值)

设置映射的元数据项(存储在映射文件中的Web对象中)。返回ms-success/ms-failure。

int setprojection(字符串proj_参数,布尔值bsetUnitsExtents)

设置地图投影和坐标系。返回ms_success或ms_failure on error。

参数以逗号分隔的项目4参数的单个字符串形式给出。参数:bsetUnitsExtents用于根据新投影自动更新地图单位和范围。可能的值为ms_true和ms_false。默认设置为ms_false。

int setrotation(双旋转角度)

设置地图旋转角度。地图视图矩形(按范围指定)将按指示的角度逆时针旋转。请注意,这意味着渲染的地图将按顺时针方向的角度旋转。返回ms-success或ms-failure。

int setsize(int宽度,int高度)

设置地图的宽度和高度。此方法更新了地图旋转所需的内部地理变换和其他数据结构,因此应使用它而不是直接设置宽度和高度成员。返回ms-success或ms-failure。

int setsymbolset(字符串文件名)

动态加载和设置符号文件。

int setwktprojection(string proj_params,boolean bsetUnitsandxtents)

与setProjection()相同,但将ogc wkt投影定义字符串作为输入。返回ms_success或ms_failure on error。

备注

setwktprojection需要gdal支持

int zoompoint(int nzoomfactor、pointobj opixelpos、int nimagewidth、int nimageheight、rectobj ogeorefext)

缩放到给定的xy位置。返回ms_success或ms_failure on error。

参数是

  • 缩放因子:正值放大,负值缩小。系数1将重新居中。

  • 像素位置(pointobj):单击的x,y坐标,左上角有(0,0)

  • 宽度:当前图像的像素宽度。

  • 高度:当前图像的像素高度。

  • georef范围(rectobj):当前georef范围。

  • 最大georef范围(rectobj):(可选)最大georef范围。如果提供,则无法在这些范围之外缩放/平移。

int zoomrectangle(rectobj opixelext,int nimagewidth,int nimageheight,rectobj ogeorefext)

将地图范围设置为给定范围。返回ms_success或ms_failure on error。

参数为:

  • opixelext(rect对象):像素范围

  • 宽度:当前图像的像素宽度。

  • 高度:当前图像的像素高度。

  • georef范围(rectobj):当前georef范围。

int zoomscale(双nscaledinom,pointobj opixelpos,int nimagewidth,int nimageheight,rectobj ogeorefext[,rectobj omaxgeorefext])

放大或缩小到给定的xy位置,以便以指定的比例显示地图。返回ms_success或ms_failure on error。

参数为:

  • 比例尺:显示地图的比例尺的比例尺分母。

  • 像素位置(pointobj):单击的x,y坐标,左上角有(0,0)

  • 宽度:当前图像的像素宽度。

  • 高度:当前图像的像素高度。

  • georef范围(rectobj):当前georef范围。

  • 最大georef范围(rectobj):(可选)最大georef范围。如果提供,则无法在这些范围之外缩放/平移。

输出格式对象

构造函数

outputformatobj的实例始终嵌入在 mapObj .它使用只读。

没有可用的构造函数(即将推出,请参阅票据979)

成员

类型

名字

注意

一串

驱动

一串

延伸

利息

图像模

ms_imagemode_ux值。

一串

拟态

一串

名称

利息

渲染器

利息

透明的

方法

string getoption(字符串属性u name)

返回作为参数传递的格式选项属性的关联值。如果找不到属性,则返回空字符串。

int set(字符串属性_name,new_value)

将对象属性设置为新值。

void setoption(字符串属性名称,字符串新值)

添加或修改格式选项列表。成功后返回true。

$oMap->outputformat->setOption("OUTPUT_TYPE", "RASTER");
int有效()

检查一些内部一致性问题,返回ms-success或ms-failure。有些问题是内部解决的。如果遇到问题,可能会生成调试输出。

OwsrequestObj

构造函数

new OWSRequestObj()

或者使用旧的构造函数

request = ms_newOwsrequestObj();

创建新的OWS请求对象。

成员

类型

名字

利息

numparams(只读)

利息

类型(只读):ms-get-u请求或ms-post-u请求

方法

int addparameter(字符串名称、字符串值)

添加一个请求参数,即使参数键是预先设置的。当需要具有相同键的多个参数时,这很有用。例如:

$request->addparameter('SIZE', 'x(100)');
$request->addparameter('SIZE', 'y(100)');
字符串getname(int index)

返回位于的参数的名称 index 在请求的参数名数组中。

字符串GetValue(int index)

返回参数的值 index 在请求的参数值数组中。

string getvaluebyname(字符串名称)

返回与参数关联的值 name.

int加载参数()

从CGI环境变量request_方法、query_字符串和http_cookie初始化owsrequest对象。返回收集的名称/值对的数目。

int setparameter(字符串名称、字符串值)

设置请求参数。例如:

$request->setparameter('REQUEST', 'GetMap');

彭波托基

构造函数

new pointObj()

或者使用旧的构造函数

PointObj ms_newPointObj()

成员

类型

名字

注意

双重的

X

双重的

Y

双重的

Z

用于三维形状文件。其他类型设置为0

双重的

仅用于测量的形状文件-对于其他类型,设置为0

方法

双距离直线(pointobj p1,pointobj p2)

计算由传入参数的两点定义的线条和点之间的距离。

双距离topoint(pointobj popoint)

计算两点之间的距离。

双距离形状(shapeobj shape)

计算点和形状之间的最小距离。

int draw(mapobj map,layerobj layer,imageobj img,int class_index[,string text])

使用图层绘制单个点。类索引用于根据为层定义的类对点进行分类。文本字符串用于注释点。(可选)返回ms_success/ms_failure。

int项目(projectionobj-in,projectionobj-out)

将点从“in”投影(第一个参数)投影到“out”投影(第二个参数)。返回ms-success/ms-failure。

int setxy(双x,双y[,双m])

设置X、Y坐标值。

备注

第3个参数m仅用于测量的形状文件。这不是强制性的。

int setxyz(双x,双y,双z[,双m])

设置X、Y、Z坐标值。

备注

第4个参数m仅用于测量的形状文件。这不是强制性的。

投影对象

构造函数

new projectionObj(string projectionString)

或者使用旧的构造函数

ProjectionObj ms_newProjectionObj(string projectionString)

基于作为参数传递的投影字符串创建投影对象。

$projInObj = ms_newprojectionobj("proj=latlong")

将创建地理投影类。

以下示例将把lat/long点转换为lcc投影:

$projInObj = ms_newprojectionobj("proj=latlong");
$projOutObj = ms_newprojectionobj("proj=lcc,ellps=GRS80,lat_0=49,".
                                  "lon_0=-95,lat_1=49,lat_2=77");
$poPoint = ms_newpointobj();
$poPoint->setXY(-92.0, 62.0);
$poPoint->project($projInObj, $projOutObj);

方法

int GETUNITSH()

返回投影对象的单位。出错时返回-1。

CuryMyAppObjo

构造函数

querymapobj的实例始终嵌入在 mapObj .

成员

类型

名字

注意

色度Objo

颜色

利息

高度

利息

宽度

利息

风格

女士正常,女士hilite,女士选定

方法

字符串ConvertToString()

将对象保存到字符串。为UpdateFromString提供反转选项。

空()

释放对象属性并中断内部引用。注意,您必须取消设置php变量以完全释放资源。

int set(字符串属性_name,new_value)

将对象属性设置为新值。

int updatefromstring(字符串片段)

从字符串片段更新querymap对象。返回ms-success/ms-failure。

雷克托布杰

构造函数

rectobj有时嵌入到其他对象中。也可以通过以下方式创建新的:

new rectObj()

或者使用旧的构造函数

RectObj ms_newRectObj()

备注

成员(minx、miny、maxx、maxy)初始化为-1;

成员

类型

名字

双重的

米克斯

双重的

米尼

双重的

马克斯

双重的

梅西

方法

int draw(mapobj map,layerobj layer,imageobj img,int class_index[,string text])

使用层绘制单个矩形。类索引用于根据为层定义的类对矩形进行分类。文本字符串用于注释矩形。(可选)返回ms_success/ms_failure。

双匹配(int宽度,int高度)

调整矩形的范围以适应指定的宽度/高度。

int项目(projectionobj-in,projectionobj-out)

将矩形从“in”投影(第一个参数)投影到“out”投影(第二个参数)。返回ms-success/ms-failure。

int set(字符串属性_name,new_value)

将对象属性设置为新值。

void setextent(双minx、双miny、双maxx、双maxy)

设置矩形范围。

参考对象AppObjt

构造函数

referencemapobj的实例始终嵌入在 mapObj .

成员

类型

名字

ColorObj

颜色

利息

高度

雷克托布杰

程度

一串

形象

利息

标记

一串

商标名

利息

标记尺寸

利息

最大尺寸

利息

最小尺寸

ColorObj

外部色彩

利息

地位

利息

宽度

方法

字符串ConvertToString()

将对象保存到字符串。为UpdateFromString提供反转选项。

空()

释放对象属性并中断内部引用。注意,您必须取消设置php变量以完全释放资源。

int set(字符串属性_name,new_value)

将对象属性设置为新值。

int updatefromstring(字符串片段)

从字符串片段更新referencemap对象。返回ms-success/ms-failure。

结果J

构造函数

new resultObj(int shapeindex)

或使用 layerObj 的getResult()方法。

成员

类型

名字

注意

利息

类别索引

只读的

利息

结果索引

只读的

利息

形态指数

只读的

利息

倾斜指数

只读的

方法

没有

斯巴巴罗夫

构造函数

scalebarobj的实例始终嵌入在 mapObj .

成员

类型

名字

注意

利息

排列

色度Objo

背景色

色度Objo

颜色

利息

高度

色度Objo

图像颜色

利息

间隔

拉贝洛夫

标签

色度Objo

外部色彩

利息

位置

对于嵌入式scalebars、ms-ul、ms-uc,…

利息

标签缓存

利息

地位

打开,关闭,嵌入

利息

风格

利息

单位

利息

宽度

方法

字符串ConvertToString()

将对象保存到字符串。为UpdateFromString提供反转选项。

空()

释放对象属性并中断内部引用。注意,您必须取消设置php变量以完全释放资源。

int set(字符串属性_name,new_value)

将对象属性设置为新值。

int-setimagecolor(int-red、int-green、int-blue)

设置对象的ImageColor属性(BaclGround)。返回ms_success或ms_failure on error。

int updatefromstring(字符串片段)

从字符串片段更新scaleBar。返回ms-success/ms-failure。

SuffeFielObjo

构造函数

new shapeFileObj(string filename, int type)

或者使用旧的构造函数

shapefileObj ms_newShapefileObj(string filename, int type)

打开一个shapefile并返回一个新对象来处理它。传递文件名时应不带扩展名。若要创建新文件(或覆盖现有文件),请键入ms-shp-point、ms-shp-arc、ms-shp-polygon或ms-shp-multipoint之一。传递type as-1以打开现有文件进行只读访问,键入=-2以打开现有文件进行更新(append)。

成员

类型

名字

注意

雷克托布杰

界限

只读的

利息

数字

只读的

一串

来源

只读的

利息

类型

只读的

方法

int addpoint(点对象点)

向打开的形状文件追加点。

int addshape(shapeobj shape)

将形状追加到打开的形状文件。

空()

释放对象属性并中断内部引用。注意,您必须取消设置php变量以完全释放资源。

备注

当对象被破坏时,形状文件将关闭(并提交更改)。可以通过调用$shapefile->free();unset($shapefile)显式关闭并保存更改,这也将释放php对象。

rectobj getextent(int i)

按索引检索形状的边界框。

shapeobj获取点(int i)

按索引检索点。

shapeobj getshape(int i)

按索引检索形状。

shapeobj gettransform(mapobj map,int i)

按索引检索形状。

形状对象

构造函数

new shapeObj(int type)

或者使用旧的构造函数

ShapeObj ms_newShapeObj(int type)

“type”是ms-shape_点、ms-shape_线、ms-shape_多边形或ms-shape_空值之一。

ShapeObj ms_shapeObjFromWkt(string wkt)

从WKT字符串创建新的形状对象。

成员

类型

名字

注意

雷克托布杰

界限

只读的

利息

类别索引

利息

指数

利息

数字

只读的

利息

数字

只读的

利息

倾斜指数

只读的

一串

文本

利息

类型

只读的

数组

价值观

只读的

值数组是具有此形状的属性值的关联数组。它仅在从layer->getshape()获取的形状上设置。数组中值的关键是属性名,例如

$population = $shape->values["Population"];

方法

int add(lineobj行)

向形状添加线条(即零件)。

shapeobj边界()

返回形状的边界。只有使用geos库构建php/mapscript时才可用。

shapeobj缓冲区(宽度)

根据提供的距离(在现有shapeobj的坐标中给定)返回新的缓冲shapeobj。只有使用geos库构建php/mapscript时才可用。

内部包含形状(shapeobj shape2)

如果作为参数传递的shape2完全在形状内,则返回true。否则返回false。只有使用geos库构建php/mapscript时才可用。

形状obj converxhull()

返回表示形状的凸面外壳的形状对象。只有使用geos库构建php/mapscript时才可用。

布尔包含(pointobj point)

如果点在形状内,则返回ms_true,否则返回ms_false。

int交叉(shapeobj shape)

如果作为参数传递的形状与形状交叉,则返回true。否则返回false。只有使用geos库构建php/mapscript时才可用。

shapeobj差异(shapeobj形状)

返回一个形状对象,该对象表示形状对象与作为参数传递的形状对象之间的差异。只有使用geos库构建php/mapscript时才可用。

int disjoint(shapeobj shape)

如果作为参数传递的形状与形状不相交,则返回true。否则返回false。只有使用geos库构建php/mapscript时才可用。

int draw(映射对象映射、图层对象层、图像对象img)

使用图层绘制单个形状。返回ms-success/ms-failure。

int等于(shapeobj shape)

如果作为参数传递的形状等于该形状(仅限几何图形),则返回true。否则返回false。只有使用geos库构建php/mapscript时才可用。

空()

释放对象属性并中断内部引用。注意,您必须取消设置php变量以完全释放资源。

双GetArea()

返回形状的区域(如果适用)。只有使用geos库构建php/mapscript时才可用。

点obj getcentroid()

返回表示形状形心的点对象。只有使用geos库构建php/mapscript时才可用。

点obj getlabelpoint())

返回一个具有适合标记形状的坐标的点对象。

双GetLength()

返回形状的长度(或周长)。只有使用geos库构建php/mapscript时才可用。

PointObj获取测量点(PointObj点)

仅适用于测量的形状文件。给定一个xy位置,找到形状对象上最近的点。返回设置了m值的该点的点对象。

pointobj getpointusingmeasure(双m)

仅适用于测量的形状文件。给定一个度量值m,重新运行shapeobject上相应的xy位置。

string getvalue(layerobj层,string filedname)

返回给定字段名的值。

shapeobj交集(shapeobj shape)

返回表示形状对象与作为参数传递的形状对象的交集的形状对象。只有使用geos库构建php/mapscript时才可用。

布尔相交(shapeobj shape)

如果两个形状相交,则返回ms_true,否则返回ms_false。

线条对象线条(int i)

返回对行号i的引用。

int重叠(shapeobj shape)

如果作为参数传递的形状与形状重叠,则返回true。否则返回false。只有使用geos库构建php/mapscript时才可用。

int项目(projectionobj-in,projectionobj-out)

将形状从“in”投影(第一个参数)投影到“out”投影(第二个参数)。返回ms-success/ms-failure。

int set(字符串属性_name,new_value)

将对象属性设置为新值。

int setbounds()。

更新形状的边界属性。必须在添加新零件后调用以计算新边界框。

shapeobj简化(双公差)

给定公差后,返回简化的形状对象或出错时为空。仅当php/mapscript是用geos库(大于3.0)构建时才可用。

shapeobj symdifference(shapeobj shape)

返回所提供形状和现有形状的计算对称差。只有使用geos库构建php/mapscript时才可用。

shapeobj拓扑保留简化(双公差)

给定公差后,返回简化的形状对象或出错时为空。仅当php/mapscript是用geos库(大于3.0)构建时才可用。

int touches(shapeobj shape)

如果作为参数传递的形状与形状接触,则返回true。否则返回false。只有使用geos库构建php/mapscript时才可用。

String Toukt()

返回形状几何图形的WKT表示形式。

shapeobj联合(shapeobj shape)

返回表示形状对象与作为参数传递的形状对象的并集的形状对象。仅在使用geos库构建php/mapscript时可用

内部int(shapeobj shape2)

如果形状完全在作为参数传递的shape2内,则返回true。否则返回false。只有使用geos库构建php/mapscript时才可用。

样式对象

构造函数

StyleObj的实例始终嵌入在 classObjlabelObj .

new styleObj(classObj class [, styleObj style])
// or
new styleObj(labelObj label [, styleObj style])

或者使用旧的构造函数(第一个参数不支持labelobj)

styleObj ms_newStyleObj(classObj class [, styleObj style])

第二个参数“style”是可选的。如果给定,则创建的新样式将是作为参数传递的样式的副本。

成员

类型

名字

注意

双重的

利息

反别名

色度Objo

背景色

色度Objo

颜色

双重的

最大尺寸

双重的

最大值

双重的

最大宽度

双重的

最小尺寸

双重的

最小值

双重的

最小宽度

利息

偏移量x

利息

杂乱

利息

不透明性

仅支持agg驱动程序

色度Objo

外部色彩

一串

测距项

双重的

大小

利息

符号

一串

符号名

双重的

宽度

方法

字符串ConvertToString()

将对象保存到字符串。为UpdateFromString提供反转选项。

空()

释放对象属性并中断内部引用。注意,您必须取消设置php变量以完全释放资源。

字符串getbinding(混合样式绑定)

获取specField样式属性的属性绑定。如果此属性没有绑定,则返回空值。

$oStyle->setbinding(MS_STYLE_BINDING_COLOR, "FIELD_NAME_COLOR");
echo $oStyle->getbinding(MS_STYLE_BINDING_COLOR); // FIELD_NAME_COLOR

字符串getgeomtransform()

int removebinding(混合样式绑定)

删除specField样式属性的属性绑定。在MapServer 5.0中添加。

$oStyle->removebinding(MS_STYLE_BINDING_COLOR);
int set(字符串属性_name,new_value)

将对象属性设置为新值。

int setbinding(混合样式绑定,字符串值)

设置specField样式属性的属性绑定。在MapServer 5.0中添加。

$oStyle->setbinding(MS_STYLE_BINDING_COLOR, "FIELD_NAME_COLOR");

这会将颜色参数与数据绑定(即从名为“字段名称颜色”的字段中提取颜色值)

int setgeomtransform(字符串值)

int updatefromstring(字符串片段)

从字符串片段更新样式。返回ms-success/ms-failure。

符号对象

构造函数

new symbolObj(mapObj map, string symbolname)

或者使用旧的构造函数

int ms_newSymbolObj(mapObj map, string symbolname)

创建一个新符号,并在符号中使用默认值。

备注

使用新的构造函数,符号将自动返回。旧构造函数返回新符号的ID。

如果存在同名符号,则返回该符号(或其ID)。要使用旧的构造函数获取符号对象,需要在映射对象上使用一个方法:

$nId = ms_newSymbolObj($map, "symbol-test");
$oSymbol = $map->getSymbolObjectById($nId);

成员

类型

名字

注意

利息

反别名

一串

性格

利息

填满

一串

字体

一串

意象派

只读的

利息

Mapfile

如果设置为真,符号将保存在映射文件中。

利息

花纹长度

只读的

利息

位置

一串

名称

利息

点数

只读的

双重的

西泽

双重的

西齐

利息

透明的

利息

透明色

方法

空()

释放对象属性并中断内部引用。注意,您必须取消设置php变量以完全释放资源。

数组getPatternArray())

返回包含模式的数组。如果没有模式,则返回空数组。

数组getpointsarray()。

返回包含符号点的数组。请参阅设置点以了解如何解释数组。如果没有点,则返回空数组。

int set(字符串属性_name,new_value)

将对象属性设置为新值。

int setimagepath(字符串文件名)

加载由文件名指定的PixMap符号。文件应为GIF或PNG格式。

int setpattern(数组int)

设置符号的图案(用于短划线图案)。返回ms-success/ms-failure。

int设置点(数组双精度)

设置符号的点。请注意,传递的值是一个包含点的x和y值的数组。返回ms-success/ms-failure。例子:

$array[0] = 1 # x value of the first point
$array[1] = 0 # y values of the first point
$array[2] = 1 # x value of the 2nd point
....

使用示例

  1. 创建用作虚线的符号

$nId = ms_newsymbolobj($gpoMap, "mydash");
$oSymbol = $gpoMap->getsymbolobjectbyid($nId);
$oSymbol->set("filled", MS_TRUE);
$oSymbol->set("sizex", 1);
$oSymbol->set("sizey", 1);
$oSymbol->set("inmapfile", MS_TRUE);

$aPoints[0] = 1;
$aPoints[1] = 1;
$oSymbol->setpoints($aPoints);

$aPattern[0] = 10;
$aPattern[1] = 5;
$aPattern[2] = 5;
$aPattern[3] = 10;
$oSymbol->setpattern($aPattern);

$style->set("symbolname", "mydash");
  1. 创建TrueType符号

$nId = ms_newSymbolObj($gpoMap, "ttfSymbol");
    $oSymbol = $gpoMap->getSymbolObjectById($nId);
    $oSymbol->set("type", MS_SYMBOL_TRUETYPE);
    $oSymbol->set("filled", true);
    $oSymbol->set("character", "&#68;");
$oSymbol->set("font", "ttfFontName");

韦博伊

构造函数

Webobj的实例始终嵌入在 mapObj .

成员

类型

名字

注意

一串

浏览格式

一串

空的

只读的

一串

错误

只读的

雷克托布杰

程度

只读的

一串

页脚

一串

页眉

一串

意象派

一串

意象派

一串

传奇格式

一串

日志

双重的

最大刻度

一串

最大模板

哈希表对象

元数据

双重的

最小尺度

一串

微型模板

一串

查询格式

一串

模板

一串

临时路径

方法

字符串ConvertToString()

将对象保存到字符串。为UpdateFromString提供反转选项。

空()

释放对象属性并中断内部引用。注意,您必须取消设置php变量以完全释放资源。

int set(字符串属性_name,new_value)

将对象属性设置为新值。

int updatefromstring(字符串片段)

从字符串片段更新Web对象。返回ms-success/ms-failure。