Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Advanced CartoCSS Tricks (FOSS4G 2014)

Alan McConchie
September 12, 2014

Advanced CartoCSS Tricks (FOSS4G 2014)

Presented at FOSS4G 2014 in Portland, Oregon.
Video of presentation: https://vimeo.com/106848543
Similar presentation at State of the Map US: https://vimeo.com/91942250

Alan McConchie

September 12, 2014
Tweet

More Decks by Alan McConchie

Other Decks in Design

Transcript

  1. Advanced CartoCSS Tricks Stamen Alan McConchie ! Stamen Design @mappingmashups

    @stamen ! with thanks to Seth Fitzsimmons and Kate Watkins
  2. Entropy and Labeling #place_label { text-orientation: [osm_id] % 3 -

    1.5; ! [osm_id<0] { text-orientation: ([osm_id] * -1) % 3 - 1.5; } }
  3. #water { ::shadow { polygon-fill: lighten(#444, 1%); } ! ::fill

    { polygon-fill: #fff; comp-op: soft-light; image-filters: agg-stack-blur(10,10); } ! ::background { polygon-pattern-file: url("images/bg.png"); comp-op: hard-light; } } Drop Shadows
  4. shield-unlock-image: true; shield-fill: #333; shield-text-dx: 0.1; shield-wrap-width: 48; shield-face-name: "Frutiger

    LT 45 Light Bold"; shield-file: url("images/ cafe_36x18px_buffer.svg"); ! shield-dx: -9; shield-size: 12; shield-text-dy: -14; ! marker-file: url("images/ cafe_36x18px_buffer.svg"); marker-transform: "translate(-9)”; ! Shields and Markers
  5. [type='Overlook'] { [orientation=15] { marker-file: url("images/ overlook2_36x18px_invert_buffer_15.svg"); } [orientation=45] {

    marker-file: url("images/ overlook2_36x18px_invert_buffer_45.svg"); } ... ! Marker Transformations
  6. [name = 'Hecate Straight'] { text-name: 'Hecate Strait' + [namealt];

    // Becase we know namealt is empty } [name = 'Straight of Georgia'] { text-name: 'Strait of Georgia' + [namealt]; } Special-case overrides
  7. #buildings[type!='no'] { [zoom=14][area>=5000], [zoom>=15][area>=2000], [zoom>=16] { polygon-pattern- file: url("images/ stripe_med.png");

    polygon-pattern- opacity: @pattern_opacity; line-width: 0.5; line-color: @color_building_outline; } } ! Filter by area
  8. @color_physical: lighten(#000, 85%); @color_physical_bright: #fff; @color_water: lighten(#000, 85%); @color_administrative_lowzoom: #000;

    @color_administrative_dark: lighten(#000, 55%); @color_administrative_bright: #fff; @color_administrative_medium_low: lighten(#000, 55%); @color_administrative_medium_high: lighten(#000, 55%); @color_administrative_medium_high2: lighten(#000, 55%); @color_transport: lighten(#000, 55%); @color_transport_casing: #fff; @color_transport_inline: #fff; @color_transport_tunnel: lighten(#ccc, 55%); @color_transport_minor: #ccc; @color_transport_rail: #afafaf; @color_transport_path: #ededed; @color_building_outline: lighten(#000, 85%); @color_building_outline_special: lighten(#00aeef, 85%); @color_airport_runways: #eee; @color_airport_runways_detail: #f2f2f2; @pattern_opacity: 0.15; toner-lite.mss
  9. @winterzero: rgba(10,168,227,0); @winterhigh: rgba(10,168,227,1); ! .winterraster { raster-opacity:1; raster-comp-op: multiply;

    raster-colorizer-default- mode:linear; raster-colorizer-default- color: transparent; raster-colorizer-stops: stop(0,@winterzero) stop(1,@winterhigh) stop(9999, transparent); } Blending rasters
  10. ... "format": "png8", "interactivity": false, "minzoom": 4, "maxzoom": 7, "srs":

    "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", "Stylesheet": [ "style.mss" ], ... Inside your project.mml
  11. ... "format": "png8", "interactivity": false, "minzoom": 4, "maxzoom": 7, "srs":

    "+proj=aea +lat_1=20 +lat_2=60 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs", "Stylesheet": [ "style.mss" ], ... Hack your project.mml
  12. Thank you ! Alan McConchie! @mappingmashups! ! with thanks to

    ! Seth Fitzsimmons @mojodna ! Kate Watkins @kateyw