MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel...

35
MapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Transcript of MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel...

Page 1: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

MapServer Project Status Report

Stephen Lime, MN.IT@DNR

Daniel Morissette, Mapgears

FOSS4G-NA 2013, Minneapolis, MN

Page 2: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

MapServer Project Status

• Project updates & news• 6.2 & 6.4 Feature highlights• 7.0 plans• How to contribute• Q & A

Page 3: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Statistics• MapServer-users

– 1860 members

– ~15 posts/day (2012: 2700, 2011: 3600, 2010: 3600, 2009: 4900, 2008: 5400)

• MapServer-dev– 420 members

– ~4 posts/day (2013 so far: 400)

• IRC #mapserver: 30+ people• 36 committers, 151,000 lines of code

Page 4: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Binary Distributions

• Windows– MS4W

– OSGeo4W

• MacOSX

• Linux– UbuntuGIS

– DebianGIS

– Enterprise Linux

– OpenSUSE

• OSGeo-Live

Page 5: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

MapServer PSC

• 14 voting PSC members• 2011:

– Olivier Courtin and Michael Smith joined PSC

• 2013:– Frank Warmerdam retired from PSC

– Stephan Meissl joined PSC

Page 6: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

MapServer PSC

• Steve Lime (chair)• Daniel Morissette• Yewondwossen

Assefa• Howard Butler• Steve Woodbridge• Perry Nacionales• Tom Kralidis

• Jeff McKenna• Umberto Nicoletti• Tamas Szekeres• Thomas Bonfort• Olivier Courtin• Mike Smith• Stephan Meissl

Page 7: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Code Sprints

• Boston, March 2013– ~10 MapServer contributors

– (Also GDAL/PDAL, PostGIS, GeoMOOSE)

– Documentation restructuring

– CMake build system

– Improved expression handling

– Dynamic contour generation

– OGC certification tweaks for WMS/WFS/WCS

– Dynamic line smoothing

Page 8: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Boston 2013

Page 9: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

2012-13 Releases• November 2012: MapServer Suite 12.11

– MapServer 6.2.0

– MapCache 1.0.0

– TinyOWS 1.1.0

• April 2013:– MapServer 6.2.1

• Summer 2013:– MapServer 6.4

Page 10: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

6.2 Rendering Highlights

• SVG Symbols• Multiple Fonts for International Text• Layer Masking• Complex Symbols/Labels• Offset Labels• Vector Fields

Page 11: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

SVG Symbols

• Existing symbology limited for some use cases

• Scalable, multiple colors

SYMBOL NAME "svgsymbol" TYPE SVG IMAGE "/path/to/symbol.svg"END

STYLE SYMBOL "svgsymbol" SIZE 10 ANGLE 45END

Page 12: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

MultiLanguage Font Support

• LABEL->FONT now takes comma separated list of fonts to try

• Each font will be tried in turn if glyph not found

Page 13: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Mask Layers• Clip rendered data across given features

layer name "countries” status off class expression (“[FIPS]” = “EZ”) style color 0 0 0

Page 14: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Precise symbol placement

• Default is to center symbol on feature point• Typically useful for arrow type symbols• SYMBOL

– ANCHORPOINT x y

• STYLE– POLAROFFSET [distance] [bearing]

Page 15: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Complex symbols

Page 16: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Complex Symbols/Labels

• Collision avoidance: implemented along with the labelcache.

• “All or nothing” approach: in case of collision, whole symbol is discarded.

• Each sub-symbol is positioned relatively to the anchor point, and defined as a LABEL block.

• Collision detection between sub-symbols is optional.

• Addresses meteo symbol generation, other use cases in future versions

Page 17: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Complex Symbols/LabelsLAYER CLASS LABEL OFFSET 0 15 FORCE GROUP TEXT “[temp]” END LABEL EXPRESSION ([wind_speed]<=5) STYLE GEOMTRANSFORM “labelpnt” SYMBOL “v5” SIZE 30 ANGLE [wind_angle] END END LABEL EXPRESSION ([wind_speed]<=10) STYLE SYMBOL “v10” … END END ….

Page 18: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Label Leader Offsetting

LAYER CLASS LEADER MAXDISTANCE 100 GRIDSTEP 10 STYLE COLOR 0 0 0 WIDTH 1 #PATTERN 2 2 END END END LABEL … END ENDEND

Page 19: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Vector Fields

Page 20: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Vector Fields• u,v components stored in raster bands• Mapped to vector points in resulting map• Additional bindings used for styling:

– [uv_angle]

– [uv_length]

• Decoupling size of arrow body and head

Page 21: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

LAYER TYPE POINT CONNECTIONTYPE uvraster DATA “wind.tif” CLASS STYLE SYMBOL "arrowbody" ANGLE [uv_angle] SIZE [uv_length] COLOR 0 127 20 END

STYLE SYMBOL "arrowhead" ANGLE [uv_angle] SIZE 10 COLOR 255 0 0 POLAROFFSET [uv_length_2] [uv_angle] END ENDEND

SYMBOL NAME "arrowbody" TYPE VECTOR POINTS 0 0 1 0 END # points END

SYMBOL NAME "arrowhead" TYPE vector FILLED true ANCHORPOINT 1 0.5 POINTS 0 2 4 1 0 0 END END

Vector Fields

Page 22: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

6.4 Release Highlights

• Planned for Summer 2013

• Vector Contour Generation• Layer GEOMTRANSFORM• Line Smoothing• OGC Service access control by IP address• List Expressions• Migration from autotools to cmake

Page 23: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Contour Generation

• On-the-fly contour generation from a DEM

LAYER NAME "my_contour_layer" TYPE LINE STATUS DEFAULT CONNECTIONTYPE CONTOUR DATA /mnt/data/raster/grib/dem.grib PROCESSING "BANDS=1" PROCESSING "CONTOUR_ITEM=elevation" PROCESSING "CONTOUR_INTERVAL=10" CLASS STYLE WIDTH 2 COLOR 255 0 0 END END

Page 24: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Line SmoothingLAYER GEOMTRANSFORM (smoothsia([shape], [smoothing_size], [smoothing_iteration], [preprocessing])) ...END

Page 25: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

OGC Service access controlby IP address

LAYER METADATA "ows_allowed_ip_list" "file:/path/to/list_of_ips.txt" END ...END

LAYER METADATA "ows_allowed_ip_list" "123.45.67.89 11.22.33.44" END ...END

Page 26: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

List Expressions

# regex EXPRESSION /primary|secondary|tertiary/

# complex parser expression (IN operator) EXPRESSION ("[type]" IN "primary,secondary,tertiary")

LAYER ... CLASSITEM "type" CLASS EXPRESSION {primary,secondary,tertiary} ... ENDEND

Replaces:

Page 27: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Migration to cmake

• Replaces autoconf and Windows Makefiles• Unified/Multiplatform build management

$ mkdir build

$ cd build

$ cmake .. -DWITH_PHP=1 -DWITH_PYTHON=1

## fix dependency issues

$ make

Page 28: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

7.0 Plans

• Complex Text Layout• Complex Symbology• Filter Translation Support• GSoC: UTFGrid Support• GSoC: ScribeUI Mapfile Editor

Page 29: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Complex Text Layout

Source: http://en.wikipedia.org/wiki/Complex_text_layout

Unprocessed characters

With bi-directional processing

With glyph shaping rendering letters according to context

The word العربية al-arabiyyah, "the Arabic [language]" in Arabic, in stages of rendering.

Page 30: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Complex Symbology

Source: MIL-STD-2525CSource: Thales Canada Inc / DLCSPM - LCSS / BattleView

Page 31: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Filter Translation Support

• Support translating FILTER expressions (e.g. string, regex, logical, list) to a format native to the underlying driver (PostGIS, Oracle, OGR, etc.)

• Easier for users• Significant performance boost for WFS and

base MapServer queries (e.g. mode=nquery)• Simplified code-base, especially for WFS

Page 32: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

GSoC: UTFGrid

Source: http://www.mapbox.com/developers/utfgrid/

Page 33: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

GSoC: ScribeUI Mapfile Editor

Page 34: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

How to Contribute?

• Users:– Beta and release candidate testing

– Bug reports on Github, including test cases

– Documentation (wiki, Github pull requests)

– Answers on the mapserver-users list and IRC

• Developers:– Bug fixes/patches

– New features

– Binary builds

Page 35: MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel Morissette, Mapgears FOSS4G-NA 2013, Minneapolis, MN

Questions / Discussion