php mapscript迁移指南¶
- 作者
艾伦布德罗
- 接触
地图齿轮网的Aboudreault
- 作者
Jeff McKenna
- 接触
jmckenna在gatewaygeomatics.com
- 上次更新时间
2019-05-25
目录
迁移到7.4的新SWIG API和PHP 7¶
从MapServer 7.4.0版本开始,建议用户切换到MapServer的新版本 SWIG 对PHP 7+的API支持(推荐理由:正如我们所看到的,从长远来看,MapServer维护人员通过SWIG管理PHP会更容易)。一些重要的SWIG说明:
你至少需要 SWIG-3.0.11 (但建议使用4.0.0)。
如果您注意到旧的本机php mapscript api中缺少的函数,请首先检查 SWIG API 用于替代功能的参考文件,如果没有类似的可用功能,则 file a ticket 对于您需要的每个功能。
所有的PHP脚本(利用mapserver对象和函数)现在都必须首先包含生成的
mapscript.php
包含mapserver常量的文件:// required SWIG include (contains MapServer constants for PHP7) include("C:/ms4w/apps/phpmapscriptng-swig/include/mapscript.php");
注意如何声明新对象的更改:
// open map $oMap = new mapObj("C:/ms4w/apps/phpmapscriptng-swig/sample.map");
而不是以前的方式:
// open map $oMap = ms_newMapObj("C:/ms4w/apps/phpmapscript/sample.map");
迁移5.6到6.0¶
操作对象¶
可以像其他所有PHP对象一样设置对象属性。
$map->scaledenom = 25000;
注解
set/setproperty方法仍然可用。
可以使用php“new”操作符创建对象。
$myShape = ms_newShapeObj(MS_SHAPE_LINE); // or
$myShape = new shapeObj(MS_SHAPE_LINE);
注解
所有对象构造函数都在失败时引发异常。
注解
*ms_new symbolobj()*和*new symbolobj()*是不同的
ms_newsymboobj()返回新/现有符号的ID。
new symbolobj()返回symbolobj。您不需要使用getSymbolObjectByID()获取它。
可克隆对象应使用php clone关键字进行克隆。没有更多的克隆方法。
类属性¶
已删除的类属性:
Classobj:最大比例,最小比例
layerObj:LabelSizeItem、LabelAgleItem、LabelMaxScale、LabelMinScale、MaxScale、MinScale、SymbolsCale、透明度
legendobj:交错,透明
MAPOBJ:图像类型、图像质量、隔行扫描、比例、透明
scalebarobj:交错,透明
符号obj:间隙,样式长度
webobj:最小,最大
类方法¶
已移除的类方法:
图像对象:免费
图层对象:GetFilter、GetShape
自由行
免费赠送
ProjectionObj:免费
自由的:自由的
shapeobj:联合地理
符号obj:GetStyleArray
CopyObj:克隆
TyelObj:克隆
MaMbOb:克隆
outputformatobj:获取格式选项,设置格式选项
参考对象AppObjt¶
referencemapobj有新的属性:marker、markername、markersize、maxboxsize、minboxsize。
SuffeFielObjo¶
shapefileobj在销毁时自动关闭/写入。(在脚本末尾或使用显式free(),unset())
LabelCaseObjo¶
要释放缓存,必须调用free cache()方法,而不是free()。
现在返回ms-success/ms-failure的方法¶
layerObj:设置处理,添加功能,绘制
MAPOBJ:movelayerup、movelayerdown、zoomrectangle、zoomscale、setprojection、setwktprojection、setlayersdrawingorder
outputformatobj:验证
scalebarobj:设置图像颜色
符号obj:设置点,设置模式
现在失败时返回空值的方法¶
CopyObj:克隆
mapobj:克隆、绘制、drawquery getlayerbyname、getprojection
层obj:nextshape,getextent
TyelObj:克隆
现在返回空数组的方法¶
layerObj:获取项、获取处理、获取网格相交坐标
mapobj:getlayersindexbygroup、getallgroupname、getlayersdrawingorder、getalllayersname
符号obj:GetPatternArray