1+ import geoscript.layer.*
2+ import geoscript.geom.Bounds
3+ import javax.imageio.ImageIO
4+
5+ // Create a connection to a WMS server
6+ WMS wms = new WMS(" http://localhost:8080/geoserver/ows?service=wms&version=1.1.1&request=GetCapabilities" )
7+
8+ // Print out some metadata
9+ println " Name: ${ wms.name} "
10+ println " Title: ${ wms.title} "
11+ println " Abstract: ${ wms.abstract} "
12+ println " Keywords: ${ wms.keywords.join(',')} "
13+ println " Online Resource: ${ wms.onlineResource} "
14+ println " Update Sequence: ${ wms.updateSequence} "
15+ println " Version: ${ wms.version} "
16+ println " Formats: ${ wms.getMapFormats.join(',')} "
17+ println " Layers:"
18+ wms. layers. each{layer ->
19+ println " Name: ${ layer.name} "
20+ println " Title: ${ layer.title} "
21+ println " Srs: ${ layer.srses} "
22+ println " Styles: ${ layer.styles} "
23+ layer. styles. each{style ->
24+ println " Name: ${ style.name} "
25+ println " Title: ${ style.title} "
26+ println " Abstract: ${ style.abstract} "
27+ }
28+ println " Queryable: ${ layer.queryable} "
29+ println " Max Scale: ${ layer.maxScale} "
30+ println " Min Scale: ${ layer.minScale} "
31+ println " Parent: ${ layer.parent} "
32+ println " Children: ${ layer.children} "
33+ println " Bounds: ${ layer.bounds} "
34+ println " LatLon Bounds: ${ layer.latLonBounds} "
35+ }
36+ // Get a WMS Layer
37+ println " Get Layer 'world:borders': ${ wms.getLayer('world:borders').name} "
38+
39+ // Get an Image for a Layer
40+ def image = wms. getImage(" world:borders" )
41+ ImageIO . write(image," png" ,new File (" world.png" ))
42+
43+ // Get an Image for Layers
44+ image = wms. getImage([" world:cities" ," world:borders" ])
45+ ImageIO . write(image," png" ,new File (" world_cities.png" ))
46+
47+ // Get an Image for Layers with custom styles
48+ image = wms. getImage([[name : " world:urbanareas1_1" , style : " point" ], [name : " world:urbanareas1_1" , style : " heatmap" ]])
49+ ImageIO . write(image," png" ,new File (" world_urbanareas.png" ))
50+
51+ // Get an Image for Layers and a custom Bounds
52+ image = wms. getImage([" medford:hospitals" ," medford:citylimits" ], bounds : new Bounds (-122.87999 , 42.29600 ,-122.81312 , 42.35004 ," EPSG:4326" ))
53+ ImageIO . write(image," png" ,new File (" medford.png" ))
54+
55+ // Get a Raster for Layer
56+ def raster = wms. getRaster(" world:borders" )
57+ ImageIO . write(raster. image," png" ,new File (" raster_world.png" ))
58+
59+ // Get a Raster for two Layers
60+ raster = wms. getRaster([" world:cities" ," world:borders" ])
61+ ImageIO . write(raster. image," png" ,new File (" raster_world_cities.png" ))
62+
63+ // Get a Raster for two Layers with custom styles
64+ raster = wms. getRaster([[name : " world:urbanareas1_1" , style : " point" ], [name : " world:urbanareas1_1" , style : " heatmap" ]])
65+ ImageIO . write(raster. image," png" ,new File (" raster_world_urbanareas.png" ))
66+
67+ // Get a Raster for two Layers and a custom Bounds
68+ raster = wms. getRaster([" medford:hospitals" ," medford:citylimits" ], bounds : new Bounds (-122.87999 , 42.29600 ,-122.81312 , 42.35004 ," EPSG:4326" ))
69+ ImageIO . write(raster. image," png" ,new File (" raster_medford.png" ))
70+
71+ // Get a Legend
72+ def legend = wms. getLegend(" world:borders" )
73+ ImageIO . write(legend," png" ,new File (" legend_world.png" ))
74+
75+ legend = wms. getLegend(wms. getLayer(" world:cities" ))
76+ ImageIO . write(legend," png" ,new File (" legend_cities.png" ))
77+
78+ // Use WMSLayer in a Map
79+ def map = new geoscript.render.Map (
80+ layers : [new WMSLayer (wms, [" world:borders" ," world:cities" ])]
81+ )
82+ map. render(new File (" map_world.png" ))
83+
84+ // Combine WMS with a Shapefile
85+ def states = new Shapefile (" states.shp" )
86+ map = new geoscript.render.Map (
87+ layers : [new WMSLayer (wms, [" world:borders" ]),states]
88+ )
89+ map. render(new File (" map_world_states.png" ))
0 commit comments