the state of the geoserver project

65
The State of GeoServer Andrea Aime GeoSolutions Justin Deoliveira Opengeo

Upload: geosolutions

Post on 11-May-2015

824 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

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?

?