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