python mapscript附录

作者

肖恩吉利斯

目录

介绍

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用户在错误日志中看到的消息也是如此。