[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