Skip to content

Commit 0d6dad2

Browse files
committed
Working on 1.7.0 release notes.
1 parent d5aea61 commit 0d6dad2

File tree

1 file changed

+140
-1
lines changed

1 file changed

+140
-1
lines changed

doc/releases.rst

Lines changed: 140 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,149 @@
33
GeoScript Groovy Releases
44
=========================
55

6+
1.7.0
7+
-----
8+
The 1.7.0 release of GeoScript is built on Grooovy 2.4.6, GeoTools 15.0, and the Java Topology Suite 1.13.
9+
It also requires Java 8.
10+
11+
This version focused on making GeoScript more modular and extensible. GeoScript is more extensible by
12+
providing Service Provider Interface (SPI) end points for Readers, Writer, Formats, TileLayers and Workspaces.
13+
GeoScript is more modular by using Groovy's Extension Modules to add methods dynamically.
14+
15+
Most of the other features of 1.7 were contributed by the community (thank you sbortman, blackrez, and gnafu)
16+
or drive by the development of `geoc <https://github.com/jericks/geoc>`_ (a geospatial commandline application),
17+
`geo-shell <https://github.com/jericks/geo-shell>`_ (an interactive shell for geospatial analysis),
18+
and `MBTilesServer <https://github.com/jericks/MBTilesServer>`_ (a Spring Boot based web app for serving
19+
mbtiles maps).
20+
21+
**Tile**
22+
23+
MBTiles got methods to access metdata and minimum and maximum zoom levels.::
24+
25+
MBTiles layer = new MBTiles(new File("states.mbtiles"))
26+
println layer.metadata
27+
println layer.minZoom
28+
println layer.maxZoom
29+
30+
GeoPackage and MBTiles both got a new getTileCount() method that returns statistics on the number of tiles present
31+
per zoom level.::
32+
33+
GeoPackage layer = new GeoPackage(new File("states.gpkg"), "states")
34+
List stats = layer.tileCounts
35+
stats.eachWithIndex { Map stat, int index ->
36+
println "${index}). ${stat.zoom} ${stat.tiles} ${stat.total} ${stat.percent}"
37+
}
38+
39+
The Tile module got a new TileLayer called GeneratingTileLayer that can generate Tiles on demand.::
40+
41+
Layer layer = new Shapefile("states.shp")
42+
layer.style = new Fill("wheat") + new Stroke("navy", 0.1)
43+
File file = folder.newFile("states.mbtiles")
44+
TileLayer tileLayer = new MBTiles(new File("states.mbtiles"), "states", "A map of the united states")
45+
ImageTileRenderer tileRenderer = new ImageTileRenderer(tileLayer, layer)
46+
GeneratingTileLayer generatingTileLayer = new GeneratingTileLayer(tileLayer, tileRenderer)
47+
48+
The ImageTileLayer base class now makes sure that the Bounds passed to the getRaster() method
49+
is in the correct projection.
50+
51+
Finally, the OSM TileLayer has a static method for creating TileLayers with well known OSM based web serivces.::
52+
53+
OSM.getWellKnownOSM("osm")
54+
OSM.getWellKnownOSM("stamen-toner")
55+
OSM.getWellKnownOSM("stamen-toner")
56+
OSM.getWellKnownOSM("stamen-toner-lite")
57+
OSM.getWellKnownOSM("stamen-watercolor")
58+
OSM.getWellKnownOSM("mapquest-street")
59+
OSM.getWellKnownOSM("mapquest-satellite")
60+
61+
**Style**
62+
63+
The Style module added a YSLD Reader and Writer.::
64+
65+
Symbolizer sym = new Fill("wheat") + new Stroke("brown")
66+
YSLDWriter writer = new YSLDWriter()
67+
String yaml = writer.write(sym)
68+
69+
The Style module also got a new SimpleStyleReader that can easily create simple styles.::
70+
71+
SimpleStyleReader styleReader = new SimpleStyleReader()
72+
// Fill and Stroke
73+
Style style = styleReader.read("fill=#555555 fill-opacity=0.6 stroke=#555555 stroke-width=0.5")
74+
// Shape with Fill and Stroke
75+
style = styleReader.read("fill=navy stroke=yellow shape-type=circle")
76+
// Shape with Fill and Stroke with Label
77+
style = styleReader.read("fill=#554466 stroke=255,255,0 shape-type=triangle label=NAME label-size=12")
78+
// Just fill
79+
style = styleReader.read("fill=#554466")
80+
// Just stroke
81+
style = styleReader.read("stroke=#554466")
82+
// Just shape
83+
style = styleReader.read("shape=#554466")
84+
85+
This version also updated default style and inherited a perpendicular offset for Strokes from the GeoTools project.
86+
87+
**Renderer**
88+
89+
sbortman added a new GeoTIFF Renderer.::
90+
91+
Layer layer = new Shapefile(new File("states.shp"))
92+
layer.style = new Stroke('black', 0.1) + new Fill('gray', 0.75)
93+
Map map = new Map(layers: [layer], backgroundColor: "white")
94+
GeoTIFF geotiff = new GeoTIFF()
95+
def img = geotiff.render(map)
96+
97+
Users can now configure MapWindow and Window's do when the ui is closed (hide, exit, dispose).::
98+
99+
Map map = new Map(layers:[new Shapefile("states.shp")])
100+
Window window = new Window()
101+
window.display(map, close: 'hide')
102+
103+
The Map now guards against null projections in Bounds.
104+
105+
**Geometry**
106+
107+
The Geometry IO package received a Google Polygon Encoder.::
108+
109+
GooglePolylineEncoder encoder = new GooglePolylineEncoder()
110+
LineString lineString = new LineString([-120.2, 38.5], [-120.95, 40.7], [-126.453, 43.252])
111+
String str = encoder.write(lineString)
112+
113+
The Bounds expand method is now more robust.
114+
115+
An offset method was added to the Geometry class.::
116+
117+
Geometry g = Geometry.fromWKT("LINESTRING (0 5, 5 5)").offset(2)
118+
119+
**IO**
120+
121+
Several optional parameters were added to the Feature GeoJSON Writer to control the number of decimals and how
122+
to encode feature bounds, feature collection bounds, feature collection crs, feature crs, and whether to encode
123+
null values.
124+
125+
The CSVReader can handle multiple geometry types.
126+
127+
The GeoScript.zip method now includes nested directories and GeoScript.unzip creates directories if necessary.
128+
129+
**Workspace**
130+
131+
Workspaces have much better connection string and maps.
132+
133+
Users of the OGR Workspace can now use the static setErrorHandler(quiet, logging, or default) method to control OGR's logging.
134+
135+
All workspaces now include a Workspace.remove(String name) method that can remove a Layer from the Workspace.
136+
137+
The Shapefile module inherited a Shapefile.dump(File,Layer) method from GeoTools.
138+
139+
Shapefile and Property layers can look up side car SLD or CSS files.
140+
141+
The Property Workspace got a getFile() method.
142+
143+
The WFS Workspace can optionally take user and password parameters.
144+
6145
1.6.0
7146
-----
8147

9-
The 1.6.0 release of GeoScript is build on Groovy 2.4.4, GeoTools 14.0, and the Java Topology Suite 1.13.
148+
The 1.6.0 release of GeoScript is built on Groovy 2.4.4, GeoTools 14.0, and the Java Topology Suite 1.13.
10149

11150
Significant new features include support for Geobuf, a OGR Workspace, and improvements to the Tile module.
12151

0 commit comments

Comments
 (0)