The State of the GeoServer project

Post on 11-May-2015

823 views 1 download

Tags:

description

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

Transcript of The State of the GeoServer project

The State of GeoServer

Andrea Aime GeoSolutions

Justin Deoliveira Opengeo

Project Activity

Project Activity

Project Activity

Project Activity

Project Activity

Project Activity

Project Activity

Project Activity

Project Activity

Project Activity

Two Years in Review

Rendering

Advanced Projection HandlingDateline wrapping (Plate Caree, Mercator)

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

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>

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

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>

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

Unit of Measure Support

1:20K

1:10K

1:5K

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>

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>

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>

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

And More Rendering

Raster

Faster Raster Reprojection

Piecewise linear approximation

Faster Raster Reprojection

Non Georeferenced Rasters

EPSG:404000

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

Automatic Image Pyramids

Automatically:● recognize gdal_retile structure● building mosaic index

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

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

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

Chains

And More Raster

Web UI

Web UI

EPSG:32612, UTM 12N

EPSG:32614, UTM 14N

CRS Area of Validity Display

Web UI

Log viewer

Legend preview

Web UIGraphical file chooser

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

Application Schema Support

Projections

Mollweide

Eckert IVWinkel Tripel

Robinson

Equidistant conic

Web Map Service (WMS)

Time and Elevation

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

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

Animation

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

WMS Cascading

GeoWebCacheTransparent caching

Disk usagecontrol

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

And More WMS

Web Coverage Service (WCS)

WCS Request Builder

WCS Limits

Web Processing Service (WPS)

Web Processing ServiceFull extension status

Lots of new processes

Georectification Process

Georectification Process

SQL ViewsLayers from SQL

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

Service and catalog views per workspace

Virtual Services

● 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

Control Flow

Control Flow

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>

Monitoring and Auditing

Teradata DataStore

What's coming?

On the Horizon

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

(GeoScript)● GSS / GeoGit

Thanks!

http://geoserver.org

Questions?

Oh Wait! It's trivia time.

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

?