[OpenLayers-Users] WMS Question

Jeff_Hobbs at sjwater.com Jeff_Hobbs at sjwater.com
Wed Sep 17 23:45:05 EDT 2008


Hi,

I've got an application using the Yahoo basemap. It's loosely based on the
sphericalmercator example. I'd like to make a WMS in SRS 4326 as a third
basemap/base layer. I can add the WMS, however it doesn't appear on my
map. I'm guessing it's a projection issue. Is there a way to get it to
align to my Yahoo basemaps? If so, any code suggestions would be greatly
appreciated as I'm new to both OL and javascript. My WMS connection info
is right here:
--------------------------------------------------------------
 	            // create 2006 SCLARCO imagery WMS
		    var sclarcoImagery = new OpenLayers.Layer.WMS( "2006
Imagery",
                "http://devinside.sjwater.com/ecwp/ecw_wms.dll?",
                 {layers: "SCLARCO_2006", transparent: "false",
singleFile: "true", srs: "EPSG:4326", format: "image/jpeg",
sphericalMercator: "true"}, {isBaseLayer: true}, {tileSize: new
OpenLayers.Size(256,256), buffer: 1});	
---------------------------------------------------------------

All of my code is below:

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

Thanks in advance for any feedback!

Jeff




var map;
		var blow =
OpenLayers.Layer.SphericalMercator.forwardMercator(-122.22565, 37.12293);
// left bottom
            var bhigh =
OpenLayers.Layer.SphericalMercator.forwardMercator(-121.68114, 37.50074);
// right top
		 	
 	        // avoid pink tiles
 	        OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
 	        OpenLayers.Util.onImageLoadErrorColor = "transparent";
 	
			function init(){
 	            
	      // Create a styleMap to style your features for two
different
            // render intents.  The style for the 'default' render intent
will
            // be applied when the feature is first drawn.  The style for
the
            // 'select' render intent will be applied when the feature is
            // selected.
            var stationStyles = new OpenLayers.StyleMap({ // This is only
for stations
                "default": new OpenLayers.Style({
                    fillColor: "#006699",
                    strokeColor: "#ff9933",
                    strokeWidth: 2,
					fillOpacity: 0.6
                }),
                "select": new OpenLayers.Style({
                    fillColor: "#006699",
                    strokeColor: "#ff9933",
					strokeWidth: 2,
					fillOpacity: 1
                })
            });
				
			    var options = {
 	                projection: new
OpenLayers.Projection("EPSG:900913"),
 	                displayProjection: new
OpenLayers.Projection("EPSG:4326"),
 	                units: "m",
	                //maxResolution: 156543.0339,
					'maxResolution': "auto",
 	                maxExtent: new OpenLayers.Bounds(blow.lon,
blow.lat, bhigh.lon, bhigh.lat),					
					maxScale: 200,
                    minScale: 50000,
                    numZoomLevels: 25
 	            };
 	            map = new OpenLayers.Map('map', options);
				
				// Add the pan/zoom toolbar to all of the
layers on the map
				var panel = new
OpenLayers.Control.NavToolbar();
				map.addControl(panel);	 	
 	            	
 	            // create Yahoo layers
 	            var yahoo = new OpenLayers.Layer.Yahoo(
 	                "Yahoo Street",
 	                {'sphericalMercator': true}
	            );
 	            
 	            var yahoohyb = new OpenLayers.Layer.Yahoo(
 	                "Yahoo Hybrid",
 	                {'type': YAHOO_MAP_HYB, 'sphericalMercator': true}
 	            );
 	
 	            // create 2006 SCLARCO imagery WMS
				var sclarcoImagery = new
OpenLayers.Layer.WMS( "2006 Imagery",
                "http://devinside.sjwater.com/ecwp/ecw_wms.dll?",
                 {layers: "SCLARCO_2006", transparent: "false",
singleFile: "true", srs: "EPSG:4326", format: "image/jpeg",
sphericalMercator: "true"}, {isBaseLayer: true}, {tileSize: new
OpenLayers.Size(256,256), buffer: 1});				
				
			    // SJWC Stations KML file
				stationKML = new
OpenLayers.Layer.GML("Station", "data/station.kml",
		       {
			    projection: new OpenLayers.Projection
("EPSG:4326"), 
				format: OpenLayers.Format.KML, 
				styleMap: stationStyles, 
				formatOptions: {
				   extractStyles: false, //Use the style
map above
				   extractAttributes: true
				}
			});
			
				
				map.addLayers([yahoo, yahoohyb,
sclarcoImagery, stationKML]);
 	            map.addControl(new
OpenLayers.Control.LayerSwitcher());
				map.addControl(new
OpenLayers.Control.Permalink());
	            map.addControl(new
OpenLayers.Control.MousePosition());
 	            if (!map.getCenter()) {map.zoomToMaxExtent()}
 	        }
			    // This it the function that can be called to
"pan" the map from station to station
				// NOTE: Need to make sure you translate
the WGS lat/long to SphericalMercator!				
				var locateMe = function(lon, lat, zoom) {
				var myTransCoord =
OpenLayers.Layer.SphericalMercator.forwardMercator(lon, lat)
				map.setCenter(new
OpenLayers.LonLat(myTransCoord.lon, myTransCoord.lat), zoom);
            } 
 	
 	    </script>

 
 
--------------------------------
Jeff Hobbs
GIS Coordinator
San Jose Water Company (NYSE:SJW)
1265 South Bascom Avenue
San Jose, CA 95128
Voice - (408) 279-7833
Cell - (408) 314-6342
Fax - (408) 279-7889
jeff_hobbs at sjwater.com
http://www.sjwater.com



More information about the Users mailing list