[OpenLayers-Dev] WMSManager closer to beta version

Lorenzo Becchi lorenzo at ominiverdi.com
Sun Jun 3 14:31:36 EDT 2007


Hi devs,
I've worked a little bit on the WMSManager and that's the live example:
http://www.ominiverdi.org/openlayers/sandbox/openlayers/examples/wms_manager.html


Main Features:
* Parse GetCapabilites from listed servers and show layers to add to the 
map.
* Permalink updated to store map views even if layers are from different 
servers
* QueryByPoint features extending the NavToolbar to allow queries on 
queriable layers (signed with a "(q)").
* extended legend

Compatibility:
* Firefox - complete
* Internet Explorer - complete (has problems to parse some 
GetCapabilities XML)
* Safari - all functions except adding layers (due to a strange behavior 
on server select)

every function listed above can be refined for sure. I'll do my best.

the Ticket for WMSManager is this:
http://trac.openlayers.org/ticket/687

Hope somebody can help me solving IE XML parsing problem (WMSManager.js 
line 862) and Safari select issue (WMSManager.js line 674).
Otherwise I'll go on "crying alone"
:-)


Code available here (SVN):
http://dev.openlayers.org/sandbox/ominiverdi/

Usage - sample script (openlayers/examples/wms_manager.html):
------------------------------------------------------------

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <style type="text/css">
        #map {
            width: 800px;
            height: 475px;
            border: 1px solid black;
        }
	#queryOut {
		width:800px;height: 200px;
		border: 1px solid black;
		position:absolute;left:10px;
		top:500px;overflow:auto;
	}
    </style>
	
    <script src="../lib/OpenLayers.js"></script>
    <script type="text/javascript">
        <!--
        
        var map;

        function init(){                    

                               //proxy is needed to access external 
server GetCapabilities

		OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url=";
			
           	//add map object
		map = new OpenLayers.Map( $('map') );
           
		//create the array of WMS servers (['server title','http://server.url'])
		var aWMSServers=new Array(
			['OpenLayers WMS','http://labs.metacarta.com/cgi-bin/mapserv?map=/www/labs/map/vmap0.map'],//content type: application/vnd.ogc.wms_xml
			['World - NASA Blue Marble Next Generation','http://wms.jpl.nasa.gov/wms.cgi?'],
			['World - Demis World Map','http://www2.demis.nl/mapserver/Request.asp?'],
			['AU - Aims Australia','http://adc.aims.gov.au:9555/atlas/SstWmsServer?'],
			['BR - Unidades de Conservacao do Brasil (dados preliminares)','http://mapas.mma.gov.br/cgi-bin/mapserv?map=/opt/www/html/webservices/ucs.map&']
		);
		
		//add legend and WMS Server panels 
    	        map.addControl( new OpenLayers.Control.WMSManager(aWMSServers ) );
			
		//add Toolbar
		var queryTarget = $('queryOut');
		WMSToolbar = new OpenLayers.Control.WMSToolbar({queryTarget: queryTarget});
		map.addControl(WMSToolbar);
		
		//add Permalink
		map.addControl(new OpenLayers.Control.WMSPermalink());

	}
        // -->
    </script>
  </head>
  <body onload="init()">
    	<div id="map"></div>	
	<div id="queryOut"></div>
  </body>
</html>

------------------------------------------------------------

ciao
Lorenzo




More information about the Dev mailing list