python mapscript附录¶
- 作者
肖恩吉利斯
Classes¶
随着文档的增长,将在此处添加对以下部分的引用。
图像对象¶
python图像库(http://www.pythonware.com/products/pil/)是图像处理不可或缺的工具。IMAGEOBJ的扩展都是为了更好地集成MAPScript应用程序中的PIL。
ImageObj方法¶
- imageobj(pyobject arg1,pyobject arg2[,pyobject arg3])。_图像对象
创建一个新的实例,该实例要么是空的,要么是从引用gd格式图像的类似于python文件的对象中读取的。
构造函数有两种不同的模式。在空白图像模式下,ARG1和ARG2应该是像素所需的宽度和高度,可选的ARG3应该是OutUpFrastObjor的实例或GD驱动程序名称作为格式的快捷方式。在图像文件模式下,arg1应该是文件名、python文件或类似文件的对象。如果类似文件的对象没有“seek”属性(例如urllib资源句柄),则为gd驱动程序名 must 作为arg2提供。
下面是使用构造函数的空白图像模式创建320像素宽x 240像素高的jpeg的示例:
image = mapscript.imageObj(320, 240, 'GD/JPEG')
在图像文件模式下,有趣的值 arg1 尝试是的实例 斯特林吉奥: :
s = StringIO() pil_image.save(s) # Save an image manipulated with PIL ms_image = imageObj(s)
或从*urlopen返回的类似文件的对象*
url = urllib.urlopen('http://mapserver.gis.umn.edu/bugs/ant.jpg') ms_image = imageObj(url, 'GD/JPEG')
- 写入([pyobject文件])无效
将图像数据写入类似于python文件的对象。默认值为stdout。
彭波托基¶
PointObj方法¶
- α-Struth*()一串
返回格式为的字符串
{ 'x': %f , 'y': %f }
适当替换坐标值。使用实例:
>>> p = mapscript.pointObj(1, 1) >>> str(p) { 'x': 1.000000 , 'y': 1.000000 }
请注意,返回值可以方便地转换为python字典:
>>> p_dict = eval(str(p)) >>> p_dict['x'] 1.000000
雷克托布杰¶
ReCbTJ方法¶
- _包含点obj point布尔
返回true point 在矩形内,否则返回false。
>>> r = mapscript.rectObj(0, 0, 1, 1) >>> p = mapscript.pointObj(2, 0) # outside >>> p in r False >>> p not in r True
- α-Struth*()一串
返回格式为的字符串
{ 'minx': %f , 'miny': %f , 'maxx': %f , 'maxy': %f }
适当替换边界值。使用实例:
>>> r = mapscript.rectObj(0, 0, 1, 1) >>> str(r) { 'minx': 0.000000 , 'miny': 0.000000 , 'maxx': 1.000000 , 'maxy': 1.000000 }
请注意,返回值可以方便地转换为python字典:
>>> r_dict = eval(str(r)) >>> r_dict['minx'] 0.000000
异常处理¶
python mapscript模块将一些mapserver错误映射到python异常中。例如,尝试加载不存在的 Mapfile 会引发 “ioerror”
>>> import mapscript
>>> mapfile = '/no/such/file.map'
>>> m = mapscript.mapObj(mapfile)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/lib/python2.3/site-packages/mapscript.py", line 799, in __init__
newobj = _mapscript.new_mapObj(*args)
IOError: msLoadMap(): Unable to access file. (/no/such/file.map)
>>>
错误消息是由“mssterror”编写的,CGI MapServ用户在错误日志中看到的消息也是如此。