Making maps pretty Andrea Aime Jim Groffen Making Maps Pretty - - PowerPoint PPT Presentation

making maps pretty
SMART_READER_LITE
LIVE PREVIEW

Making maps pretty Andrea Aime Jim Groffen Making Maps Pretty - - PowerPoint PPT Presentation

Making maps pretty Andrea Aime Jim Groffen Making Maps Pretty Making Maps Pretty 1 1 Making maps pretty Introduction Making Maps Pretty Making Maps Pretty 2 2 Introducing carthography Depiciting shape and location, conveing


slide-1
SLIDE 1

Making Maps Pretty Making Maps Pretty 1 1

Making maps pretty

Andrea Aime Jim Groffen

slide-2
SLIDE 2

Making Maps Pretty Making Maps Pretty 2 2

Making maps pretty

Introduction

slide-3
SLIDE 3

Making Maps Pretty Making Maps Pretty 3 3

Introducing carthography

  • Depiciting shape and location, conveing qualitative and

quantitative information over a map

  • Map: visually appealing, but still correct and useful for a

specific purpose

slide-4
SLIDE 4

Making Maps Pretty Making Maps Pretty 4 4

Target audience

  • Ability to read specific symbols
  • Ability do discern colors and small features on the map

9 _ T_10_2

Surface and Hostile Planned

  • =Reduced

North Direction East Direction Velocity = Red Task Force – No Quantity – 9 Nuclear - Yes Happy

slide-5
SLIDE 5

Making Maps Pretty Making Maps Pretty 5 5

Target medium

  • Device type (desktop, netbook, mobile)
  • Colors available?
slide-6
SLIDE 6

Making Maps Pretty Making Maps Pretty 6 6

Purpose

  • What should it display?
  • How will it be used?
slide-7
SLIDE 7

Making Maps Pretty Making Maps Pretty 7 7

Clarity – Information Density

  • General Purpose or Specific Purpose
  • Level of Detail
  • Usability
slide-8
SLIDE 8

Making Maps Pretty Making Maps Pretty 8 8

Labels

  • Font
  • Density
  • Contrast
slide-9
SLIDE 9

Making Maps Pretty Making Maps Pretty 9 9

Line styling

THICKNESS THICKNESS CASING CASING COLOUR COLOUR TRANSPARENT CASING TRANSPARENT CASING

slide-10
SLIDE 10

Making Maps Pretty Making Maps Pretty 10 10

Colour schemes

SEQUENTIAL SEQUENTIAL DIVERGING DIVERGING QUALITATIVE QUALITATIVE

slide-11
SLIDE 11

Making Maps Pretty Making Maps Pretty 11 11

Raster

HILLSHADE HILLSHADE CONTOURS INTENSITY SATELLITE SATELLITE

slide-12
SLIDE 12

Making Maps Pretty Making Maps Pretty 12 12

Fallacies

slide-13
SLIDE 13

Making Maps Pretty Making Maps Pretty 13 13

Making maps pretty

Map elements

slide-14
SLIDE 14

Making Maps Pretty Making Maps Pretty 14 14

Polygons

  • Bounded areas

– Phisical: coastlines – Conceptual: administrative subdivisions

  • Two stylable components

– Outline – Fill

  • Filling the polygon

– To show the shape or a uniform quality – To show a quantity or a non uniform quality (thematic mapping)

slide-15
SLIDE 15

Making Maps Pretty Making Maps Pretty 15 15

Points

  • Entities with a position, but no dimension

– Too small at all scales – Too small at small scales (cities, buildings)

  • Represented

– Small, simple symbols – Large, elaborate symbols

  • Communicate differences

– Using color – Using size – Using shape

slide-16
SLIDE 16

Making Maps Pretty Making Maps Pretty 16 16

Lines

  • Entities too thin to be represented as polygons

– At all scales – At certain scales (rivers, roads)

  • Nature:

– Landscape features – Computed (isolines)

  • Communicate with:

– Color – Width – Graphics

slide-17
SLIDE 17

Making Maps Pretty Making Maps Pretty 17 17

Raster

  • Imagery
  • Grid of phisical values (temperature,

elevation, ...)

  • Contrast enhancement is sometimes

necessary

  • Color classification

– Continous – By classes

slide-18
SLIDE 18

Making Maps Pretty Making Maps Pretty 18 18

Text

  • Labels

– Font – Color – Contrast – Density – Hierarchy

slide-19
SLIDE 19

Making Maps Pretty Making Maps Pretty 19 19

Colour

  • Choosing an appropriate color scheme

– Culture – Ability to discern shades of colour – sing too many/too few colours

  • Exercise

– http://colorbrewer2.org/

slide-20
SLIDE 20

Making Maps Pretty Making Maps Pretty 20 20

Making maps pretty

Using styles

slide-21
SLIDE 21

Making Maps Pretty Making Maps Pretty 21 21

Separating styles and data

  • Styled Layer Descriptor: markup specifying how to style a

map

  • Separate from the map

– The same style can be reused against various data – The same data can be styled in different ways

  • Notable examples in the IT industry

– HTML and CSS – Model/View/Controller

slide-22
SLIDE 22

Making Maps Pretty Making Maps Pretty 22 22

Features Raster FeatureTypeStyle

type=Road

constraint FeatureTypeStyle

type=City

constraint

Content Style surface=hiway

Rule

max scale: 50k

Rule

Pop > 500000 max scale: 50k

Rule

Other

Rule

Portrayal (ie Drawing) Composition capital=true

Rule line symbolizer line symbolizer point symbolizer text symbolizer NAME point symbolizer text symbolizer

NAME

point symbolizer

Queanbeyan

Canberra

slide-23
SLIDE 23

Making Maps Pretty Making Maps Pretty 23 23

Root SLD elements

  • StyledLayerDescriptor

– NamedLayer (UserLayer)

  • UserStyle (NamedStyle)
  • We concentrate on the UserStyle contents since that is

where a Style is defined

  • Unless you're making dynamic styling requests (that few

WMS support) you can safely ignore the other elements and treat them as boilerplate

<StyledLayerDescriptor … > <NamedLayer> <Name>name for style layer</Name> <UserStyle> <Title>Title for style layer</Title> <FeatureTypeStyle> … </FeatureTypeStyle> </UserStyle> </NamedLayer> </StyledLayerDescriptor>

slide-24
SLIDE 24

Making Maps Pretty Making Maps Pretty 24 24

FeatureTypeStyle

  • Contains rules driving the map renderer
  • Can be used to ensure innner layering (ensure certain

features will be drawn before others)*

  • Can mention the type of feature to be styled (safer to just

skip it)

<FeatureTypeStyle> <Rule> ... </Rule> <Rule> ... </Rule> </FeatureTypeStyle> <FeatureTypeStyle> <Rule> ... </Rule> <Rule> ... </Rule> </FeatureTypeStyle>

*: the SLD specification does not tell exactly how rendering order should be applied

slide-25
SLIDE 25

Making Maps Pretty Making Maps Pretty 25 25

Rule

  • Contains the symbolizers (what actually draws features on

the map)

  • Controls them:

– Scale controls: display features only at certain scales – Filtering: display only features matching certain conditions

<Rule> <MinScaleDenominator>400000</MinScaleDenominator> <MaxScaleDenominator>1000000</MaxScaleDenominator> <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>MTFCC</ogc:PropertyName> <ogc:Literal>S1200</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> <LineSymbolizer> ... </LineSymbolizer> </Rule>

slide-26
SLIDE 26

Making Maps Pretty Making Maps Pretty 26 26

Filtering

  • Spatial or attribute filters
  • Logical combinations
  • ElseFilter

<ogc:Filter> <ogc:And> <ogc:PropertyIsEqualTo> <ogc:PropertyName>oneway</ogc:PropertyName> <ogc:Literal>0</ogc:Literal> </ogc:PropertyIsEqualTo> <ogc:PropertyIsGreaterThan> <ogc:PropertyName>maxspeed</ogc:PropertyName> <ogc:Literal>60</ogc:Literal> </ogc:PropertyIsGreaterThan> <ogc:Not> <ogc:Disjoint> <ogc:PropertyName>Geometry</ogc:PropertyName> <gml:Envelope srsName="urn:x-ogc:def:crs:EPSG:6.3:4326"> <gml:lowerCorner>138.0 -35.5</gml:lowerCorner> <gml:upperCorner>139.0 -34.5</gml:upperCorner> </gml:Envelope> </ogc:Disjoint> </ogc:Not> </ogc:And> </ogc:Filter>

  • PropertyIsEqualTo
  • PropertyIsNotEqualTo
  • PropertyIsLessThan
  • PropertyIsLessThanOrEqualTo
  • PropertyIsGreatherThan
  • PropertyIsGreatherThanOrEqualTo
  • PropertyIsBetween
  • PropertyIsLike
  • PropertyIsNull
  • BBOX
  • Intersects
  • Contains
  • Crosses
  • Overlaps
  • Touches
  • Equals
  • Within
  • Beyond
  • Dwithin
  • And
  • Or
  • Not
slide-27
SLIDE 27

Making Maps Pretty Making Maps Pretty 27 27

Point symbolizer

  • Applies to all geometry types (centroids used)
  • Can use simple marks or external images

<PointSymbolizer> <Graphic> <Mark> <WellKnownName>square</WellKnownName> <Fill> <CssParameter name="fill"> #FF0000 </CssParameter> </Fill> </Mark> <Size>6</Size> </Graphic> </PointSymbolizer> <PointSymbolizer> <Graphic> <ExternalGraphic> <!-- avoid hot linking, this is just a sample --> <OnlineResource xlink:type="simple" xlink:href="http://www.google.com/mapfiles/marker.png" /> <Format>image/png</Format> </ExternalGraphic> </Graphic> </PointSymbolizer>

slide-28
SLIDE 28

Making Maps Pretty Making Maps Pretty 28 28

Line symbolizer

  • Controls how a line is displayed
  • Can use continuous lines, dash arrays, but also graphical

symbols

<LineSymbolizer> <Stroke> <CssParameter name="stroke">#0000FF</CssParameter> <CssParameter name="stroke-width">6</CssParameter> <CssParameter name="stroke-linejoin">round</CssParameter> <CssParameter name="stroke-linecap">round</CssParameter> </Stroke> </LineSymbolizer> <LineSymbolizer> <Stroke> <CssParameter name="stroke"> #000000 </CssParameter> <CssParameter name="stroke-dasharray"> 10 5 1 5 </CssParameter> </Stroke> </LineSymbolizer>

slide-29
SLIDE 29

Making Maps Pretty Making Maps Pretty 29 29

Polygon symbolizer

  • Has both a stroke and a fill
  • Can use solid color, partial transparency, or graphic fills

<PolygonSymbolizer> <Fill> <CssParameter name="fill"> #AAAAAA </CssParameter> </Fill> <Stroke> <CssParameter name="stroke"> #000000 </CssParameter> <CssParameter name="stroke-width">1</CssParameter> </Stroke> </PolygonSymbolizer> <PolygonSymbolizer> <Fill> <GraphicFill> <Graphic> <ExternalGraphic> <OnlineResource xlink:type="simple" xlink:href="grass_fill.png" /> <Format>image/png</Format> </ExternalGraphic> </Graphic> </GraphicFill> </Fill> <Stroke /> </PolygonSymbolizer>

slide-30
SLIDE 30

Making Maps Pretty Making Maps Pretty 30 30

Text symbolizer

<TextSymbolizer> <Label> <ogc:PropertyName>NAME</ogc:PropertyName> </Label> <Font> <CssParameter name="font-family">Arial</CssParameter> <CssParameter name="font-weight">Bold</CssParameter> <CssParameter name="font-size">14</CssParameter> </Font> <LabelPlacement> <PointPlacement> <AnchorPoint> <AnchorPointX>0.5</AnchorPointX> <AnchorPointY>0.5</AnchorPointY> </AnchorPoint> <Displacement> <DisplacementX>0</DisplacementX> <DisplacementY>-15</DisplacementY> </Displacement> </PointPlacement> </LabelPlacement> <Halo> <Radius> <ogc:Literal>2</ogc:Literal> </Radius> <Fill> <CssParameter name="fill">#FFFFFF</CssParameter> </Fill> </Halo> <Fill> <CssParameter name="fill">#000000</CssParameter> </Fill> </TextSymbolizer>

ABCDEFG

0,0 1,0 1,1 0,1 0.5,1 0.5,0

AnchorPoint legend

slide-31
SLIDE 31

Making Maps Pretty Making Maps Pretty 31 31

Raster symbolizer

  • Can apply normalizations, extract bands, apply colormaps

<RasterSymbolizer> <Opacity>1.0</Opacity> <ColorMap> <ColorMapEntry color="#AAFFAA" quantity="0" label="values" /> <ColorMapEntry color="#00FF00" quantity="1000" label="values"/> <ColorMapEntry color="#FFFF00" quantity="1200" label="values" /> <ColorMapEntry color="#FF7F00" quantity="1400" label="values" /> <ColorMapEntry color="#BF7F3F" quantity="1600" label="values" /> <ColorMapEntry color="#000000" quantity="2000" label="values" /> </ColorMap> </RasterSymbolizer> <RasterSymbolizer> <ChannelSelection> <GrayChannel> <SourceChannelName>1</SourceChannelName> <ContrastEnhancement> <Histogram/> </ContrastEnhancement> </GrayChannel> </ChannelSelection> <ContrastEnhancement> <GammaValue>1</GammaValue> </ContrastEnhancement> </RasterSymbolizer>

slide-32
SLIDE 32

Making Maps Pretty Making Maps Pretty 32 32

Making maps pretty

Advanced styling

slide-33
SLIDE 33

Making Maps Pretty Making Maps Pretty 33 33

Thematic mapping with a twist

  • Let's assume you have some polygon data and that you want

to make a simple thematic map, qualitative approach: green areas, water and urban

  • The original data has a classification field, CFCC, that is

much more detailed

  • However:

– All green areas are like D84, D85, D86, ... – All water warea start with H – All other areas can be considered urban

  • We could pre-process the data and reclassify it, but if we

cannot or just don't want to...

slide-34
SLIDE 34

Making Maps Pretty Making Maps Pretty 34 34

Thematic map with a twist

<FeatureTypeStyle> <!-- park and green spaces --> <Rule> <ogc:Filter> <!-- D84, D85, D86, ... --> <ogc:PropertyIsLike wildCard="%" singleChar="_" escape="\"> <ogc:PropertyName>CFCC</ogc:PropertyName> <ogc:Literal>D8%</ogc:Literal> </ogc:PropertyIsLike> </ogc:Filter> <PolygonSymbolizer> <Fill> <CssParameter name="fill">#B4DFB4</CssParameter> </Fill> <Stroke> <CssParameter name="stroke">#88B588</CssParameter> </Stroke> </PolygonSymbolizer> </Rule> <!-- water --> <Rule> <ogc:Filter> <ogc:PropertyIsLike wildCard="%" singleChar="_" escape="\"> <ogc:PropertyName>CFCC</ogc:PropertyName> <ogc:Literal>H%</ogc:Literal> </ogc:PropertyIsLike> </ogc:Filter> <PolygonSymbolizer> <Fill> <CssParameter name="fill">#8AA9D1</CssParameter> </Fill> <Stroke> <CssParameter name="stroke">#436C91</CssParameter> </Stroke> </PolygonSymbolizer> </Rule> <!-- urban --> <Rule> <ElseFilter /> <PolygonSymbolizer> <Fill> <CssParameter name="fill"> #A5A5A5 </CssParameter> </Fill> <Stroke> <CssParameter name="stroke"> #6E6E6E </CssParameter> </Stroke> </PolygonSymbolizer> </Rule> </FeatureTypeStyle>

slide-35
SLIDE 35

Making Maps Pretty Making Maps Pretty 35 35

Stacking multiple symbolizers - points

<FeatureTypeStyle> <Rule> <PointSymbolizer> <Graphic> <Mark> <WellKnownName>circle</WellKnownName> <Fill> <CssParameter name="fill">#FF0000</CssParameter> </Fill> </Mark> <Size>11</Size> </Graphic> </PointSymbolizer> <PointSymbolizer> <Graphic> <Mark> <WellKnownName>circle</WellKnownName> <Fill> <CssParameter name="fill">#EDE513</CssParameter> </Fill> </Mark> <Size>7</Size> </Graphic> </PointSymbolizer> </Rule> </FeatureTypeStyle>

slide-36
SLIDE 36

Making Maps Pretty Making Maps Pretty 36 36

Stacking multiple symbolizers - lines

<FeatureTypeStyle> <Rule> <LineSymbolizer> <Stroke> <CssParameter name="stroke">#F5B800</CssParameter> <CssParameter name="stroke-width">8</CssParameter> <CssParameter name="stroke-linejoin">round</CssParameter> <CssParameter name="stroke-linecap">round</CssParameter> </Stroke> </LineSymbolizer> <LineSymbolizer> <Stroke> <CssParameter name="stroke">#FFFF00</CssParameter> <CssParameter name="stroke-width">4</CssParameter> <CssParameter name="stroke-linejoin">round</CssParameter> <CssParameter name="stroke-linecap">round</CssParameter> </Stroke> </LineSymbolizer> </Rule> </FeatureTypeStyle>

slide-37
SLIDE 37

Making Maps Pretty Making Maps Pretty 37 37

Stacking multiple symbolizers – lines 2

<FeatureTypeStyle> <Rule> <LineSymbolizer> <Stroke> <CssParameter name="stroke">#F5B800</CssParameter> <CssParameter name="stroke-width">8</CssParameter> <CssParameter name="stroke-linejoin">round</CssParameter> <CssParameter name="stroke-linecap">round</CssParameter> </Stroke> </LineSymbolizer> </Rule> </FeatureTypeStyle> <FeatureTypeStyle> <Rule> <LineSymbolizer> <Stroke> <CssParameter name="stroke">#FFFF00</CssParameter> <CssParameter name="stroke-width">4</CssParameter> <CssParameter name="stroke-linejoin">round</CssParameter> <CssParameter name="stroke-linecap">round</CssParameter> </Stroke> </LineSymbolizer> </Rule> </FeatureTypeStyle>

slide-38
SLIDE 38

Making Maps Pretty Making Maps Pretty 38 38

Scale dependencies – show labels

<FeatureTypeStyle> <Rule> <!-- no scale dependencies: DISPLAYS ALWAYS --> <PointSymbolizer> <Graphic> <Mark> <WellKnownName>circle</WellKnownName> <Fill> <CssParameter name="fill"> #FF0000 </CssParameter> </Fill> </Mark> <Size>11</Size> </Graphic> </PointSymbolizer> <PointSymbolizer> <Graphic> <Mark> <WellKnownName>circle</WellKnownName> <Fill> <CssParameter name="fill"> #EDE513 </CssParameter> </Fill> </Mark> <Size>7</Size> </Graphic> </PointSymbolizer> </Rule> <Rule> <MaxScaleDenominator>32000</MaxScaleDenominator> <TextSymbolizer> <Label><ogc:PropertyName>NAME</ogc:PropertyName></Label> <Font> <CssParameter name="font-family">Arial</CssParameter> <CssParameter name="font-weight">Bold</CssParameter> <CssParameter name="font-size">14</CssParameter> </Font> <LabelPlacement> <PointPlacement> <AnchorPoint> <AnchorPointX>0.5</AnchorPointX> <AnchorPointY>0.5</AnchorPointY> </AnchorPoint> <Displacement> <DisplacementX>0</DisplacementX> <DisplacementY>-15</DisplacementY> </Displacement> </PointPlacement> </LabelPlacement> <Halo> <Radius><ogc:Literal>2</ogc:Literal></Radius> <Fill> <CssParameter name="fill">#FFFFFF</CssParameter> </Fill> </Halo> <Fill> <CssParameter name="fill">#000000</CssParameter> </Fill> </TextSymbolizer> </Rule> </FeatureTypeStyle>

slide-39
SLIDE 39

Making Maps Pretty Making Maps Pretty 39 39

Scale dependencies – show labels

Zoom in

slide-40
SLIDE 40

Making Maps Pretty Making Maps Pretty 40 40

Scale dependencies – alternate styling

<FeatureTypeStyle> <Rule> <!-- thin line only at lower scales --> <MinScaleDenominator>32000</MinScaleDenominator> <LineSymbolizer> <Stroke> <CssParameter name="stroke">#666666</CssParameter> <CssParameter name="stroke-width">0.5</CssParameter> </Stroke> </LineSymbolizer> </Rule> <Rule> <!-- thick line drawn first--> <MaxScaleDenominator>32000</MaxScaleDenominator> <LineSymbolizer> <Stroke> <CssParameter name="stroke">#666666</CssParameter> <CssParameter name="stroke-width">7</CssParameter> </Stroke> </LineSymbolizer> </Rule> </FeatureTypeStyle> <FeatureTypeStyle> <FeatureTypeName>Feature</FeatureTypeName> <Rule> <!-- thin line drawn second --> <MaxScaleDenominator>32000</MaxScaleDenominator> <LineSymbolizer> <Stroke> <CssParameter name="stroke">#FFFFFF</CssParameter> <CssParameter name="stroke-width">4</CssParameter> </Stroke> </LineSymbolizer> </Rule> </FeatureTypeStyle>

slide-41
SLIDE 41

Making Maps Pretty Making Maps Pretty 41 41

Simple labelling

<TextSymbolizer> <Label> <ogc:PropertyName>NAME</ogc:PropertyName> </Label> <Font> <CssParameter name="font-family">Times New Roman</CssParameter> <CssParameter name="font-style">Normal</CssParameter> <CssParameter name="font-size">14</CssParameter> <CssParameter name="font-weight">bold</CssParameter> </Font> <LabelPlacement> <LinePlacement> </LinePlacement> </LabelPlacement> <Halo> <Radius> <ogc:Literal>2</ogc:Literal> </Radius> <Fill> <CssParameter name="fill"> #FFFFFF </CssParameter> </Fill> </Halo> </TextSymbolizer>

slide-42
SLIDE 42

Making Maps Pretty Making Maps Pretty 42 42

Advanced labelling with vendor options

<TextSymbolizer> <Label> <ogc:PropertyName>NAME</ogc:PropertyName> </Label> <Font> <CssParameter name="font-family">Times New Roman</CssParameter> <CssParameter name="font-style">Normal</CssParameter> <CssParameter name="font-size">14</CssParameter> <CssParameter name="font-weight">bold</CssParameter> </Font> <LabelPlacement> <LinePlacement> </LinePlacement> </LabelPlacement> <Halo> <Radius> <ogc:Literal>2</ogc:Literal> </Radius> <Fill> <CssParameter name="fill">#FFFFFF</CssParameter> </Fill> </Halo> <VendorOption name="followLine">True </VendorOption> <VendorOption name="group">True </VendorOption> <VendorOption name="repeat">200 </VendorOption> <VendorOption name="maxDisplacement">50 </VendorOption> </TextSymbolizer>

slide-43
SLIDE 43

Making Maps Pretty Making Maps Pretty 43 43

Auto-wrapping labels

<FeatureTypeStyle> <Rule> <TextSymbolizer> <Label> <ogc:PropertyName>LANAME</ogc:PropertyName> </Label> <Font> <CssParameter name="font-family">Times New Roman </CssParameter> <CssParameter name="font-style">Normal</CssParameter> <CssParameter name="font-size">14</CssParameter> <CssParameter name="font-weight">bold</CssParameter> </Font> <LabelPlacement> <PointPlacement> <AnchorPoint> <AnchorPointX>0.5</AnchorPointX> <AnchorPointY>0.5</AnchorPointY> </AnchorPoint> </PointPlacement> </LabelPlacement> <Halo> <Radius> <ogc:Literal>2</ogc:Literal> </Radius> <Fill> <CssParameter name="fill">#FDE5A5</CssParameter> <CssParameter name="fill-opacity">0.75</CssParameter> </Fill> </Halo> <Fill> <CssParameter name="fill">#000000</CssParameter> </Fill> <VendorOption name="group">true</VendorOption> <VendorOption name="autoWrap">100</VendorOption> </TextSymbolizer> </Rule> </FeatureTypeStyle>

slide-44
SLIDE 44

Making Maps Pretty Making Maps Pretty 44 44

Thematic mapping with hatch density

<FeatureTypeStyle> <Rule> <Title>&lt; 2M</Title> <ogc:Filter> <ogc:PropertyIsLessThan> <ogc:PropertyName>PERSONS</ogc:PropertyName> <ogc:Literal>2000000</ogc:Literal> </ogc:PropertyIsLessThan> </ogc:Filter> <PolygonSymbolizer> <Fill> <GraphicFill> <Graphic> <Mark> <WellKnownName>shape://slash</WellKnownName> <Stroke> <CssParameter name="stroke">0xAAAAAA</CssParameter> </Stroke> </Mark> <Size>16</Size> </Graphic> </GraphicFill> </Fill> </PolygonSymbolizer> </Rule> ... ... </FeatureTypeStyle>

slide-45
SLIDE 45

Making Maps Pretty Making Maps Pretty 45 45

Making maps pretty

Performance

slide-46
SLIDE 46

Making Maps Pretty Making Maps Pretty 46 46

Performance considerations

  • Draw less

– Style filters – Scale filters – Swap layers

  • Simplify geometry

– Don't draw detail that can't be discerned

slide-47
SLIDE 47

Making Maps Pretty Making Maps Pretty 47 47

Performance considerations

  • Avoid expensive styling options

– Transparency – Labels are expensive – Halos are very expensive

  • Are you Tile Caching?

– Labels and metatiling

slide-48
SLIDE 48

Making Maps Pretty Making Maps Pretty 48 48

Thanks!

  • FOSS4G Survey – please provide feedback
  • Link: http://tinyurl.com/foss4g-survey
  • Tutorial Code: TUT-08-96
  • Materials:
  • http://dl.getdropbox.com/u/2361103/FOSS4G_SLD.tar.gz