[Zmapserver-developers] ZMapServer 0.7.4 Release
Status: Alpha
Brought to you by:
sgillies
|
From: Sean G. <sgi...@fr...> - 2003-08-06 19:45:41
|
ZMapServer 0.7.4
6 August 2003
Two classes of memory leaks are now plugged in ZMapServer, bringing
it closer to production readiness.
An 0.8 release is due in ~2 weeks with support for MapServer
queries and documentation.
cheers,
Sean
CHANGES
0.7.4
-----------------------------------------------------------------
This release introduces minor feature changes and major
performance enhancements.
Now that MapServer 4.0 is released, there will not be any need to
download nightly development snapshots of MapServer in order to
move ahead with ZMapServer. All future releases of ZMapServer up
to 1.0 will require only the latest stable 4.0.x release of
MapServer.
All 'draw' methods inherited from classes in ZSessionProxy have
been renamed 'session_draw'. Use of these methods remains the
same. The name 'draw' is now used for a method of the ZMap class
which returns imagery in a WMS-ish manner using the same
interface as the WMS Adapter. The goal here is to make instances
of WMS Adapter and ZMap interchangeable for Zope applications.
To clarify: session_draw() requires no arguments, it draws map
imagery as defined in the session (through setExtent() etc). The
draw() method is defined as:
def draw(self, format='', width=0, height=0, srs=0, bbox={},
layers=() )
where
format:string is an imagery mimetype supported by the map.
Defaults to the current value of
self.getSubject().outputformat.mimetype.
width:int is the image width. Defaults to the current width:
self.getSubjectAttr('width').
height:int is the image height. Defaults to current height.
srs:int is an EPSG code number like 4326. Defaults to the
current projection.
bbox:dict has floating point values for keys 'minx', 'miny',
'maxx', 'maxy'. Defaults to the current extent.
layers:tuple is a sequence of layer names in drawing order.
Note that the map is also a layer in the OGC WMS sense.
Defaults to the map: layers = (self.id,).
The performance enhancement is a result of finally tracking down
and plugging several big memory leaks. I have posted a detailed
description of the leaks and the fix at
http://mapserver.gis.umn.edu/cgi-bin/wiki.pl?PythonMapScriptMemoryLeaks
Bottom line is that you'll have to patch your MapScript wrapper
code (mapscript_wrap.c) as I describe in the Wiki page, and
re-build the Python MapScript that you are using with ZMapServer.
A more permanent fix will be included in the next MapServer
release (4.0.1). No need to patch the ZMapServer code.
With these leaks plugged, it looks like the current session map
interface defined in the classes of ZSessionProxy.py does not
need to be dropped after all.
--
Sean Gillies
sgillies at frii dot com
http://www.frii.com/~sgillies
|