65
The State of GeoServer Andrea Aime GeoSolutions Justin Deoliveira Opengeo

The State of the GeoServer project

Embed Size (px)

DESCRIPTION

FOSS4G 2011 presentation on the status of the GeoServer open source project

Citation preview

Page 1: The State of the GeoServer project

The State of GeoServer

Andrea Aime GeoSolutions

Justin Deoliveira Opengeo

Page 2: The State of the GeoServer project

Project Activity

Page 3: The State of the GeoServer project

Project Activity

Page 4: The State of the GeoServer project

Project Activity

Page 5: The State of the GeoServer project

Project Activity

Page 6: The State of the GeoServer project

Project Activity

Page 7: The State of the GeoServer project

Project Activity

Page 8: The State of the GeoServer project

Project Activity

Page 9: The State of the GeoServer project

Project Activity

Page 10: The State of the GeoServer project

Project Activity

Page 11: The State of the GeoServer project

Project Activity

Page 12: The State of the GeoServer project

Two Years in Review

Page 13: The State of the GeoServer project

Rendering

Page 14: The State of the GeoServer project

Advanced Projection HandlingDateline wrapping (Plate Caree, Mercator)

Cut polygons to valid area (Mercator, Transverse Mercator, Polar)

Page 15: The State of the GeoServer project

Geometry TransformationsDrop shadow

<PolygonSymbolizer> <Geometry> <ogc:Function name="offset"> <ogc:PropertyName>the_geom</ogc:PropertyName> <ogc:Literal>0.00004</ogc:Literal> <ogc:Literal>-0.00004</ogc:Literal> </ogc:Function> <Geometry></PolygonSymbolizer>

Page 16: The State of the GeoServer project

Geometry Transformations<PointSymbolizer> <Geometry> <ogc:Function name="endPoint"> <ogc:PropertyName>the_geom</ogc:PropertyName> </ogc:Function> </Geometry> <Graphic> <Mark> <WellKnownName>shape://carrow</WellKnownName> </Mark> <Rotation> <ogc:Function name="endAngle"> <ogc:PropertyName>the_geom</ogc:PropertyName> </ogc:Function> </Rotation> </Graphic></PointSymbolizer>

Pointed Arrows

Page 17: The State of the GeoServer project

Rendering Transformations

<FeatureTypeStyle> <Transformation> <ogc:Function name="gs:Contour"> <ogc:Function name="parameter"> <ogc:Literal>data</ogc:Literal> </ogc:Function> <ogc:Function name="parameter"> <ogc:Literal>levels</ogc:Literal> <ogc:Literal>1100</ogc:Literal> <ogc:Literal>1200</ogc:Literal> <ogc:Literal>1300</ogc:Literal> <ogc:Literal>1400</ogc:Literal> <ogc:Literal>1500</ogc:Literal> <ogc:Literal>1600</ogc:Literal> <ogc:Literal>1700</ogc:Literal> <ogc:Literal>1800</ogc:Literal> </ogc:Function> </ogc:Function> </Transformation> </FeatureTypeStyle>

Page 18: The State of the GeoServer project

SLD Parameter Substitution <Mark> <WellKnownName> <ogc:Function name="env"> <ogc:Literal>mark</ogc:Literal> <ogc:Literal>square</ogc:Literal> </ogc:Function> </WellKnownName> <Fill>#FF0000</Fill> </Mark>

Normal output ...&env=mark:star

Page 19: The State of the GeoServer project

Unit of Measure Support

1:20K

1:10K

1:5K

Page 20: The State of the GeoServer project

Unit of Measure Support

1:20K

1:10K

1:5K

<Rule> <MinScaleDenominator>18000</MinScaleDenominator> <LineSymbolizer> <Stroke> <CssParameter name="stroke-width"> <ogc:Literal>1</ogc:Literal> </CssParameter> </Stroke> </LineSymbolizer></Rule><Rule> <MinScaleDenominator>8000</MinScaleDenominator> <MaxScaleDenominator>18000</MaxScaleDenominator> <LineSymbolizer> <CssParameter name="stroke-width"> <ogc:Literal>2</ogc:Literal> </CssParameter> </Stroke> </LineSymbolizer></Rule><Rule> <MaxScaleDenominator>8000</MaxScaleDenominator> <LineSymbolizer> <Stroke> <CssParameter name="stroke-width"> <ogc:Literal>4</ogc:Literal> </CssParameter> </Stroke> </LineSymbolizer></Rule>

Page 21: The State of the GeoServer project

Unit of Measure Support

1:20K

1:10K

1:5K

<Rule> <LineSymbolizer uom="http://www.opengeospatial.org/se/units/metre"> <Stroke> <CssParameter name="stroke-width"> <ogc:Literal>5</ogc:Literal> </CssParameter> </Stroke> </LineSymbolizer></Rule>

Page 22: The State of the GeoServer project

Label Obstacles

<PointSymbolizer> <Graphic> <ExternalGraphic> <OnlineResource xlink:type="simple" xlink:href="..." /> <Format>image/png</Format> </ExternalGraphic> <Size>32</Size> </Graphic> <VendorOption name="labelObstacle">true</VendorOption></PointSymbolizer>

Page 23: The State of the GeoServer project

● Point label displacement● DPI scaling● Faster Recode/Categorize● Performance

And More Rendering

Page 24: The State of the GeoServer project

Raster

Page 25: The State of the GeoServer project

Faster Raster Reprojection

Piecewise linear approximation

Page 26: The State of the GeoServer project

Faster Raster Reprojection

Page 27: The State of the GeoServer project

Non Georeferenced Rasters

EPSG:404000

Page 28: The State of the GeoServer project

Image Mosaic Improvements

● Attach attributes to tiles● Filter by attribute● Filter by time/elevation● Autoindexing of directories● External indexes

○ any GT datastore○ third party indexes

● Multithreaded loading of granules● Footprint support

Page 29: The State of the GeoServer project

Automatic Image Pyramids

Automatically:● recognize gdal_retile structure● building mosaic index

Page 30: The State of the GeoServer project

ImageIO-Ext Improvements● BigTiff support

○ Read/Write○ Overviews

● Improved GeoTiff○ external overviews○ new plugin underway

● Improved JPEG2000 support○ kakadu based○ additional code params○ fine grain control on writing

● Improved Tiff metadata management○ wiser caching○ less memory - more speed

Page 31: The State of the GeoServer project

Direct Raster Rendering Path● Hit JAVA2D Bottleneck – Scalability Issue

○ http://bit.ly/qJcZBi○ http://bit.ly/oe0CHo

● Created direct raster rendering path with JAI○ Drop-in replacement (1 raster

at time)○ 2x speedup○ 2x/3x scalability improvement

under heavy load○ Enabled/Disabled via Java Switch

Page 32: The State of the GeoServer project

● Oracle GeoRaster● JPEG 2K improvements● More Concurrency● Simplified/Shrunk Raster Operation

Chains

And More Raster

Page 33: The State of the GeoServer project

Web UI

Page 34: The State of the GeoServer project

Web UI

EPSG:32612, UTM 12N

EPSG:32614, UTM 14N

CRS Area of Validity Display

Page 35: The State of the GeoServer project

Web UI

Log viewer

Legend preview

Page 36: The State of the GeoServer project

Web UIGraphical file chooser

Page 37: The State of the GeoServer project

● Recent development by CSIRO ● Full extension status● Feature chaining, polymorphism● Better performance, memory use● GML 3.2, WMS (beta)

Application Schema Support

Page 38: The State of the GeoServer project

Projections

Mollweide

Eckert IVWinkel Tripel

Robinson

Equidistant conic

Page 39: The State of the GeoServer project

Web Map Service (WMS)

Page 40: The State of the GeoServer project

Time and Elevation

Page 41: The State of the GeoServer project

Time and Elevation

...&request=GetMap &time=2001-08-01T18:00:00Z/2001-09-01T00:00:00Z

...&request=GetMap &time=2003-08-01T18:00:00Z/2003-10-01T00:00:00Z

Page 42: The State of the GeoServer project

Animation

Albacore Tuna catches, 1986 to 2000. (Params injected in a complex sql view computing each pixel)

...&request=GetMap &format=image/gif;subtype=animated &aparam=viewparams:YR_TA &avalues=1986,1987,...,2000 &format_options=gif_loop_continuosly:true

Page 43: The State of the GeoServer project

Animation

...&request=GetMap &format=image/gif;subtype=animated &aparam=bbox &avalues=-180\,0\,0\,90, -165\,0,14\,90...

Page 44: The State of the GeoServer project

WMS Cascading

Page 45: The State of the GeoServer project

GeoWebCacheTransparent caching

Disk usagecontrol

Page 46: The State of the GeoServer project

● WMS 1.3● SE 1.1 / SLD 1.1● SLD GetStyles

And More WMS

Page 47: The State of the GeoServer project

Web Coverage Service (WCS)

Page 48: The State of the GeoServer project

WCS Request Builder

Page 49: The State of the GeoServer project

WCS Limits

Page 50: The State of the GeoServer project

Web Processing Service (WPS)

Page 51: The State of the GeoServer project

Web Processing ServiceFull extension status

Lots of new processes

Page 52: The State of the GeoServer project

Georectification Process

Page 53: The State of the GeoServer project

Georectification Process

Page 54: The State of the GeoServer project

SQL ViewsLayers from SQL

request=GetMap &layers=continents &viewparams=region:2

Page 55: The State of the GeoServer project

Service and catalog views per workspace

Virtual Services

Page 56: The State of the GeoServer project

● OWS request throttling based on:○ Number of concurrent requests total○ Number of concurrent requests per:

■ service■ operation■ output format■ user

● Requests queued when limits reached

Control Flow

Page 57: The State of the GeoServer project

Control Flow

Page 58: The State of the GeoServer project

Control Flow

Page 59: The State of the GeoServer project

Cross Layer Filtering<wfs:Query typeName="sf:bugsites"> <ogc:Filter> <ogc:Intersects> <ogc:PropertyName>the_geom</ogc:PropertyName> <ogc:Function name="querySingle"> <ogc:Literal>sf:restricted</ogc:Literal> <ogc:Literal>the_geom</ogc:Literal> <ogc:Literal>cat = 3</ogc:Literal> </ogc:Function> </ogc:Intersects> </ogc:Filter> </wfs:Query>

Page 60: The State of the GeoServer project

Monitoring and Auditing

Page 61: The State of the GeoServer project

Teradata DataStore

Page 62: The State of the GeoServer project

What's coming?

Page 63: The State of the GeoServer project

On the Horizon

● WFS 2.0● DBconfig - Catalog and config in a database● Scripting - Python, JavaScript, Scala, Groovy

(GeoScript)● GSS / GeoGit

Page 64: The State of the GeoServer project

Thanks!

http://geoserver.org

Questions?

Page 65: The State of the GeoServer project

Oh Wait! It's trivia time.

What was the original name of the organization that founded GeoServer?

?