MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel...
Transcript of MapServer Project Status ReportMapServer Project Status Report Stephen Lime, MN.IT@DNR Daniel...
MapServer 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
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
Binary Distributions
• Windows– MS4W
– OSGeo4W
• MacOSX
• Linux– UbuntuGIS
– DebianGIS
– Enterprise Linux
– OpenSUSE
• OSGeo-Live
MapServer PSC
• 14 voting PSC members• 2011:
– Olivier Courtin and Michael Smith joined PSC
• 2013:– Frank Warmerdam retired from PSC
– Stephan Meissl joined PSC
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
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
Boston 2013
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
6.2 Rendering Highlights
• SVG Symbols• Multiple Fonts for International Text• Layer Masking• Complex Symbols/Labels• Offset Labels• Vector Fields
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
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
Mask Layers• Clip rendered data across given features
layer name "countries” status off class expression (“[FIPS]” = “EZ”) style color 0 0 0
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]
Complex symbols
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
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 ….
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
Vector Fields
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
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
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
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
Line SmoothingLAYER GEOMTRANSFORM (smoothsia([shape], [smoothing_size], [smoothing_iteration], [preprocessing])) ...END
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
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:
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
7.0 Plans
• Complex Text Layout• Complex Symbology• Filter Translation Support• GSoC: UTFGrid Support• GSoC: ScribeUI Mapfile Editor
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.
Complex Symbology
Source: MIL-STD-2525CSource: Thales Canada Inc / DLCSPM - LCSS / BattleView
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
GSoC: UTFGrid
Source: http://www.mapbox.com/developers/utfgrid/
GSoC: ScribeUI Mapfile Editor
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
Questions / Discussion