SlideShare a Scribd company logo
1 of 44
Download to read offline
Advanced Cartography
     for the Web


 AJ Ashton – Development Seed
TODO

●   Overview of the tools & what they do


●   Basic design tips to keep in mind


●   Explore some specific design examples
Cartography Toolset Libre
TileMill
QuantumGIS
PostgreSQL + PostGIS
Inkscape
}
Design on the web:
basic things to keep in mind
RGB lowers the barrier-to-entry

    to making ugly colors.
RGB lowers the barrier-to-entry

    to making ugly colors.
color: 'SpringGreen';

    color: 'Red';

   color: 'Yellow';

 color: 'DeepPink';

color: 'Chartreuse';

color: 'MediumBlue';
The Saturation Danger Zone
             ●   A base map should
                 probably never use
                 colors from this range*


             ●   Data visualization
                 overlays may proceed
                 with caution, especially
                 on dark base maps.

                 *exception: glittermap
Don't know what colors look good together?
       Steal from someone who does.




 kuler.adobe.com          colourlovers.com
Pixels don't give you
  texture for free.
Keep your textures subtle.
Typefaces and font sizes
that make sense on paper
}
Digging into the toolbox
TileMill – why design with code?
Flexibility
●
  #roads[motorway][zoom>10] {
●
    ::casing {
●
      line-color: @mw_casing;
●
      line-width: 6;
●
    }
●
    ::fill {
●
      line-color: @mw_fill;
●
      line-width: 4;
●
    }
●
  }
Flexibility
●
  #roads[motorway][zoom>10] {
●
    ::casing {
●
      line-color: @mw_casing;
●
      line-width: 6;
●
    }
●
    ::fill {
●
      line-color: @mw_fill;
●
      line-width: 4;
●
    }
●
    ::inline {
●
      line-color: @mw_inline;
●
      line-width: 1;
●
      line-dasharray: 4, 3;
●
    }
●
  }
Variables & Color Functions
●   lighten(blue,25%);
Hijacking geospatial functions
     for design purposes.
The fadey-stripey thing
●   #disputed-breakaway-area[zoom>4] {
●       polygon-pattern-alignment:global;
●       [zoom=5] { polygon-pattern-file:url(patterns/disputed_5.png); }
●       [zoom=6] { polygon-pattern-file:url(patterns/disputed_6.png); }
●       [zoom=7] { polygon-pattern-file:url(patterns/disputed_7.png); }
●       [zoom>7] { polygon-pattern-file:url(patterns/disputed_8.png); }
●   }
●   #disputed-inset-10k[zoom>4] {
●       polygon-pattern-alignment:global;
●       [zoom=5] { polygon-pattern-file:url(patterns/disputed10k_5.png); }
●       [zoom=6] { polygon-pattern-file:url(patterns/disputed10k_6.png); }
●       [zoom=7] { polygon-pattern-file:url(patterns/disputed10k_7.png); }
●       [zoom>7] { polygon-pattern-file:url(patterns/disputed10k_8.png); }
●   }
●   #disputed-inset-20k[zoom>4] {
●       polygon-pattern-alignment:global;
●       [zoom=5] { polygon-pattern-file:url(patterns/disputed20k_5.png); }
●       [zoom=6] { polygon-pattern-file:url(patterns/disputed20k_6.png); }
●       [zoom=7] { polygon-pattern-file:url(patterns/disputed20k_7.png); }
●       [zoom>7] { polygon-pattern-file:url(patterns/disputed20k_8.png); }
●   }
●   #disputed-inset-30k[FEATURECLA!='Overlay'][zoom>4] { polygon-fill:@land; }
Fancy marine labels
Abusing the Mapnik
building symbolizer
●   #c0001xgp {
●     building-fill:#fff;
●     building-fill-opacity:0.9;
●


●     [VALUE=9.1] { building-height:1.37; }
●     [VALUE=9.0] { building-height:1.28; }
●


●     [VALUE=8.9] { building-height:1.194; }
●     [VALUE=8.8] { building-height:1.114; }
●     [VALUE=8.7] { building-height:1.040; }
●     [VALUE=8.6] { building-height:0.970; }
●     [VALUE=8.5] { building-height:0.905; }
●     [VALUE=8.4] { building-height:0.844; }
●     [VALUE=8.3] { building-height:0.788; }
●     [VALUE=8.2] { building-height:0.735; }
●     [VALUE=8.1] { building-height:0.686; }
●     [VALUE=8.0] { building-height:0.640; }
●     …
●
Overview: Development Seed
    Headquarters Map

   Demo: j.mp/devseedhq
Overlapping patterns
●
    #land {
●
        [type='park'], [type='grass'], [type='cemetery'] {
●
            polygon-pattern-file: url(img/grass.png);
●
        }
●
        ::overlay[type='cemetery'] {
●
            Polygon-pattern-file: url(img/cemetery.png);
●
        }
●
    }
Thanks!
    – @aj_ashton

DevelopmentSeed.org
    MapBox.com

More Related Content

Similar to Advanced Cartography for the Web

Performance optimization in JS. Based on project experience, Алина Синявская ...
Performance optimization in JS. Based on project experience, Алина Синявская ...Performance optimization in JS. Based on project experience, Алина Синявская ...
Performance optimization in JS. Based on project experience, Алина Синявская ...Sigma Software
 
Performance optimization in JS. Based on project experience, Аліна Синявська ...
Performance optimization in JS. Based on project experience, Аліна Синявська ...Performance optimization in JS. Based on project experience, Аліна Синявська ...
Performance optimization in JS. Based on project experience, Аліна Синявська ...Sigma Software
 
Types - slice, map, new, make, struct - Gopherlabs
Types - slice, map, new, make, struct - Gopherlabs Types - slice, map, new, make, struct - Gopherlabs
Types - slice, map, new, make, struct - Gopherlabs sangam biradar
 
Chapter02 graphics-programming
Chapter02 graphics-programmingChapter02 graphics-programming
Chapter02 graphics-programmingMohammed Romi
 
Introduction To Less
Introduction To Less Introduction To Less
Introduction To Less Knoldus Inc.
 
Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ...
 Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ... Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ...
Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ...Andy Maleh
 
Introduction To Geometry Shaders
Introduction To Geometry ShadersIntroduction To Geometry Shaders
Introduction To Geometry Shaderspjcozzi
 
Big data101kagglepresentation
Big data101kagglepresentationBig data101kagglepresentation
Big data101kagglepresentationAlexandru Sisu
 
openGL basics for sample program (1).ppt
openGL basics for sample program (1).pptopenGL basics for sample program (1).ppt
openGL basics for sample program (1).pptHIMANKMISHRA2
 
openGL basics for sample program.ppt
openGL basics for sample program.pptopenGL basics for sample program.ppt
openGL basics for sample program.pptHIMANKMISHRA2
 
BIM/GIS Integration: A Practical Approach in Real Cases
BIM/GIS Integration: A Practical Approach in Real CasesBIM/GIS Integration: A Practical Approach in Real Cases
BIM/GIS Integration: A Practical Approach in Real CasesSANGHEE SHIN
 
PL-4048, Adapting languages for parallel processing on GPUs, by Neil Henning
PL-4048, Adapting languages for parallel processing on GPUs, by Neil HenningPL-4048, Adapting languages for parallel processing on GPUs, by Neil Henning
PL-4048, Adapting languages for parallel processing on GPUs, by Neil HenningAMD Developer Central
 
HTML5 e Css3 - 4 | WebMaster & WebDesigner
HTML5 e Css3 - 4 | WebMaster & WebDesignerHTML5 e Css3 - 4 | WebMaster & WebDesigner
HTML5 e Css3 - 4 | WebMaster & WebDesignerMatteo Magni
 
Dynamic sorting algorithm vizualizer.pdf
Dynamic sorting algorithm vizualizer.pdfDynamic sorting algorithm vizualizer.pdf
Dynamic sorting algorithm vizualizer.pdfAgneshShetty
 
Session11 J2ME MID-Low Level User Interface(LLUI)-graphics
Session11 J2ME MID-Low Level User Interface(LLUI)-graphicsSession11 J2ME MID-Low Level User Interface(LLUI)-graphics
Session11 J2ME MID-Low Level User Interface(LLUI)-graphicsmuthusvm
 
Apidays Paris 2023 - GraphQL Nullability, State of the Union, Martin Bonnin, ...
Apidays Paris 2023 - GraphQL Nullability, State of the Union, Martin Bonnin, ...Apidays Paris 2023 - GraphQL Nullability, State of the Union, Martin Bonnin, ...
Apidays Paris 2023 - GraphQL Nullability, State of the Union, Martin Bonnin, ...apidays
 
Approaching zero driver overhead
Approaching zero driver overheadApproaching zero driver overhead
Approaching zero driver overheadCass Everitt
 

Similar to Advanced Cartography for the Web (20)

Performance optimization in JS. Based on project experience, Алина Синявская ...
Performance optimization in JS. Based on project experience, Алина Синявская ...Performance optimization in JS. Based on project experience, Алина Синявская ...
Performance optimization in JS. Based on project experience, Алина Синявская ...
 
Performance optimization in JS. Based on project experience, Аліна Синявська ...
Performance optimization in JS. Based on project experience, Аліна Синявська ...Performance optimization in JS. Based on project experience, Аліна Синявська ...
Performance optimization in JS. Based on project experience, Аліна Синявська ...
 
Types - slice, map, new, make, struct - Gopherlabs
Types - slice, map, new, make, struct - Gopherlabs Types - slice, map, new, make, struct - Gopherlabs
Types - slice, map, new, make, struct - Gopherlabs
 
Chapter02 graphics-programming
Chapter02 graphics-programmingChapter02 graphics-programming
Chapter02 graphics-programming
 
Introduction To Less
Introduction To Less Introduction To Less
Introduction To Less
 
Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ...
 Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ... Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ...
Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ...
 
Introduction To Geometry Shaders
Introduction To Geometry ShadersIntroduction To Geometry Shaders
Introduction To Geometry Shaders
 
september11.ppt
september11.pptseptember11.ppt
september11.ppt
 
Big data101kagglepresentation
Big data101kagglepresentationBig data101kagglepresentation
Big data101kagglepresentation
 
openGL basics for sample program (1).ppt
openGL basics for sample program (1).pptopenGL basics for sample program (1).ppt
openGL basics for sample program (1).ppt
 
openGL basics for sample program.ppt
openGL basics for sample program.pptopenGL basics for sample program.ppt
openGL basics for sample program.ppt
 
BIM/GIS Integration: A Practical Approach in Real Cases
BIM/GIS Integration: A Practical Approach in Real CasesBIM/GIS Integration: A Practical Approach in Real Cases
BIM/GIS Integration: A Practical Approach in Real Cases
 
PL-4048, Adapting languages for parallel processing on GPUs, by Neil Henning
PL-4048, Adapting languages for parallel processing on GPUs, by Neil HenningPL-4048, Adapting languages for parallel processing on GPUs, by Neil Henning
PL-4048, Adapting languages for parallel processing on GPUs, by Neil Henning
 
HTML5 e Css3 - 4 | WebMaster & WebDesigner
HTML5 e Css3 - 4 | WebMaster & WebDesignerHTML5 e Css3 - 4 | WebMaster & WebDesigner
HTML5 e Css3 - 4 | WebMaster & WebDesigner
 
Dynamic sorting algorithm vizualizer.pdf
Dynamic sorting algorithm vizualizer.pdfDynamic sorting algorithm vizualizer.pdf
Dynamic sorting algorithm vizualizer.pdf
 
Character generation
Character generationCharacter generation
Character generation
 
Session11 J2ME MID-Low Level User Interface(LLUI)-graphics
Session11 J2ME MID-Low Level User Interface(LLUI)-graphicsSession11 J2ME MID-Low Level User Interface(LLUI)-graphics
Session11 J2ME MID-Low Level User Interface(LLUI)-graphics
 
Apidays Paris 2023 - GraphQL Nullability, State of the Union, Martin Bonnin, ...
Apidays Paris 2023 - GraphQL Nullability, State of the Union, Martin Bonnin, ...Apidays Paris 2023 - GraphQL Nullability, State of the Union, Martin Bonnin, ...
Apidays Paris 2023 - GraphQL Nullability, State of the Union, Martin Bonnin, ...
 
Introduction to graphics programming in c
Introduction to graphics programming in cIntroduction to graphics programming in c
Introduction to graphics programming in c
 
Approaching zero driver overhead
Approaching zero driver overheadApproaching zero driver overhead
Approaching zero driver overhead
 

More from FOSS4G 2011

Adapting remote sensing research for environmental monitoring: Citizen mappin...
Adapting remote sensing research for environmental monitoring: Citizen mappin...Adapting remote sensing research for environmental monitoring: Citizen mappin...
Adapting remote sensing research for environmental monitoring: Citizen mappin...FOSS4G 2011
 
OPen Source Web Test Engine for Geospatial Standards
OPen Source Web Test Engine for Geospatial StandardsOPen Source Web Test Engine for Geospatial Standards
OPen Source Web Test Engine for Geospatial StandardsFOSS4G 2011
 
Processing chains with OGC Web Processing Services to process satellite data ...
Processing chains with OGC Web Processing Services to process satellite data ...Processing chains with OGC Web Processing Services to process satellite data ...
Processing chains with OGC Web Processing Services to process satellite data ...FOSS4G 2011
 
Common pitfalls for users of OpenLayers
Common pitfalls for users of OpenLayersCommon pitfalls for users of OpenLayers
Common pitfalls for users of OpenLayersFOSS4G 2011
 
Clip and Ship: MapServer for Data Distribution
Clip and Ship: MapServer for Data DistributionClip and Ship: MapServer for Data Distribution
Clip and Ship: MapServer for Data DistributionFOSS4G 2011
 
Shortest Path Search with pgRouting
Shortest Path Search with pgRoutingShortest Path Search with pgRouting
Shortest Path Search with pgRoutingFOSS4G 2011
 

More from FOSS4G 2011 (8)

Adapting remote sensing research for environmental monitoring: Citizen mappin...
Adapting remote sensing research for environmental monitoring: Citizen mappin...Adapting remote sensing research for environmental monitoring: Citizen mappin...
Adapting remote sensing research for environmental monitoring: Citizen mappin...
 
OPen Source Web Test Engine for Geospatial Standards
OPen Source Web Test Engine for Geospatial StandardsOPen Source Web Test Engine for Geospatial Standards
OPen Source Web Test Engine for Geospatial Standards
 
OpenAerialMap
OpenAerialMapOpenAerialMap
OpenAerialMap
 
Processing chains with OGC Web Processing Services to process satellite data ...
Processing chains with OGC Web Processing Services to process satellite data ...Processing chains with OGC Web Processing Services to process satellite data ...
Processing chains with OGC Web Processing Services to process satellite data ...
 
Common pitfalls for users of OpenLayers
Common pitfalls for users of OpenLayersCommon pitfalls for users of OpenLayers
Common pitfalls for users of OpenLayers
 
Clip and Ship: MapServer for Data Distribution
Clip and Ship: MapServer for Data DistributionClip and Ship: MapServer for Data Distribution
Clip and Ship: MapServer for Data Distribution
 
The FOSS4G Map
The FOSS4G MapThe FOSS4G Map
The FOSS4G Map
 
Shortest Path Search with pgRouting
Shortest Path Search with pgRoutingShortest Path Search with pgRouting
Shortest Path Search with pgRouting
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Recently uploaded (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

Advanced Cartography for the Web

  • 1. Advanced Cartography for the Web AJ Ashton – Development Seed
  • 2.
  • 3.
  • 4.
  • 5. TODO ● Overview of the tools & what they do ● Basic design tips to keep in mind ● Explore some specific design examples
  • 11. }
  • 12. Design on the web: basic things to keep in mind
  • 13. RGB lowers the barrier-to-entry to making ugly colors.
  • 14. RGB lowers the barrier-to-entry to making ugly colors.
  • 15. color: 'SpringGreen'; color: 'Red'; color: 'Yellow'; color: 'DeepPink'; color: 'Chartreuse'; color: 'MediumBlue';
  • 16. The Saturation Danger Zone ● A base map should probably never use colors from this range* ● Data visualization overlays may proceed with caution, especially on dark base maps. *exception: glittermap
  • 17. Don't know what colors look good together? Steal from someone who does. kuler.adobe.com colourlovers.com
  • 18. Pixels don't give you texture for free.
  • 20. Typefaces and font sizes that make sense on paper
  • 21. }
  • 22. Digging into the toolbox
  • 23. TileMill – why design with code?
  • 24. Flexibility ● #roads[motorway][zoom>10] { ● ::casing { ● line-color: @mw_casing; ● line-width: 6; ● } ● ::fill { ● line-color: @mw_fill; ● line-width: 4; ● } ● }
  • 25. Flexibility ● #roads[motorway][zoom>10] { ● ::casing { ● line-color: @mw_casing; ● line-width: 6; ● } ● ::fill { ● line-color: @mw_fill; ● line-width: 4; ● } ● ::inline { ● line-color: @mw_inline; ● line-width: 1; ● line-dasharray: 4, 3; ● } ● }
  • 26. Variables & Color Functions ● lighten(blue,25%);
  • 27. Hijacking geospatial functions for design purposes.
  • 29.
  • 30.
  • 31. #disputed-breakaway-area[zoom>4] { ● polygon-pattern-alignment:global; ● [zoom=5] { polygon-pattern-file:url(patterns/disputed_5.png); } ● [zoom=6] { polygon-pattern-file:url(patterns/disputed_6.png); } ● [zoom=7] { polygon-pattern-file:url(patterns/disputed_7.png); } ● [zoom>7] { polygon-pattern-file:url(patterns/disputed_8.png); } ● } ● #disputed-inset-10k[zoom>4] { ● polygon-pattern-alignment:global; ● [zoom=5] { polygon-pattern-file:url(patterns/disputed10k_5.png); } ● [zoom=6] { polygon-pattern-file:url(patterns/disputed10k_6.png); } ● [zoom=7] { polygon-pattern-file:url(patterns/disputed10k_7.png); } ● [zoom>7] { polygon-pattern-file:url(patterns/disputed10k_8.png); } ● } ● #disputed-inset-20k[zoom>4] { ● polygon-pattern-alignment:global; ● [zoom=5] { polygon-pattern-file:url(patterns/disputed20k_5.png); } ● [zoom=6] { polygon-pattern-file:url(patterns/disputed20k_6.png); } ● [zoom=7] { polygon-pattern-file:url(patterns/disputed20k_7.png); } ● [zoom>7] { polygon-pattern-file:url(patterns/disputed20k_8.png); } ● } ● #disputed-inset-30k[FEATURECLA!='Overlay'][zoom>4] { polygon-fill:@land; }
  • 33.
  • 34.
  • 36. #c0001xgp { ● building-fill:#fff; ● building-fill-opacity:0.9; ● ● [VALUE=9.1] { building-height:1.37; } ● [VALUE=9.0] { building-height:1.28; } ● ● [VALUE=8.9] { building-height:1.194; } ● [VALUE=8.8] { building-height:1.114; } ● [VALUE=8.7] { building-height:1.040; } ● [VALUE=8.6] { building-height:0.970; } ● [VALUE=8.5] { building-height:0.905; } ● [VALUE=8.4] { building-height:0.844; } ● [VALUE=8.3] { building-height:0.788; } ● [VALUE=8.2] { building-height:0.735; } ● [VALUE=8.1] { building-height:0.686; } ● [VALUE=8.0] { building-height:0.640; } ● … ●
  • 37.
  • 38. Overview: Development Seed Headquarters Map Demo: j.mp/devseedhq
  • 39.
  • 40.
  • 41. Overlapping patterns ● #land { ● [type='park'], [type='grass'], [type='cemetery'] { ● polygon-pattern-file: url(img/grass.png); ● } ● ::overlay[type='cemetery'] { ● Polygon-pattern-file: url(img/cemetery.png); ● } ● }
  • 42.
  • 43.
  • 44. Thanks! – @aj_ashton DevelopmentSeed.org MapBox.com