The WMS Adapter is a product that provides a Zope-friendly interface to imagery from map servers that conform to versions 1.0.0-1.1.1 of the OGC WMS specification.
A WMS Adapter is somewhat analogous to a Zope Database Adapter. It represents an external service and provides two ways of querying. The capabilities() method contacts the external service and returns an XML document describing the service elements. The draw() and map_url() methods return imagery and a URL to imagery respectively.
The stand-alone WMS Adapter product does not require MapServer. It is entirely Python and it's major requirement is that the standard Python module xml.dom.minidom be working for your system. Simply extract the distribution into your Zope Products directory and re-start.
Presently, only a subset of a services capabilities are automatically parsed. To find names of layers, the extents and spatial reference systems of the layers, and allowable imagery or exceptions formats, you will need to look at the XML under the adapter's WMS Capabilities management tab.
Presently, the best examples of how to use this product are in the Page Template files demo/adapter_demo.html and www/wmsMapOverviews.zpt.
For more information see the WMSAdapter module's pydoc-generated documentation. It's a bit cluttered with Zope data and methods, we'll try to clean this up in the future.
Once you have an adapter or two, add a new Page Template to the same folder, using the file ZMapServer/demo/adapter_demo.html. A good look at the source should get you started.
In the 'Layers' field, replace the bogus value with whitespace separated layer names. These names must exist in the capabilities XML. I suggest that you leave the 'Styles' blank to start, the defaults will be fine.
By default the demo has a spatial reference system of '4326', or WGS84 and extents that encompass Fort Collins, Colorado. Neither the Peruvian or Canadian WMS services will have data for this area, so you'll need to change the extents accordingly. Remember that the extents of the data for the services can be found as attributes of a <BoundingBox> or <LatLonBoundingBox/> element in the capabilities XML.