$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cartography 101
Search
Sumin Byeon
March 21, 2013
Science
1
57
Cartography 101
Sumin Byeon
March 21, 2013
Tweet
Share
More Decks by Sumin Byeon
See All by Sumin Byeon
Big Data in Action
suminb
1
71
Git with Bitbucket
suminb
0
93
RNA Secondary Structure Prediction
suminb
0
160
Memory Management in iOS App Development
suminb
0
120
Other Decks in Science
See All in Science
20251212_LT忘年会_データサイエンス枠_新川.pdf
shinpsan
0
140
Distributional Regression
tackyas
0
230
Lean4による汎化誤差評価の形式化
milano0017
1
390
データマイニング - ウェブとグラフ
trycycle
PRO
0
210
【RSJ2025】PAMIQ Core: リアルタイム継続学習のための⾮同期推論・学習フレームワーク
gesonanko
0
430
Vibecoding for Product Managers
ibknadedeji
0
120
データベース03: 関係データモデル
trycycle
PRO
1
320
会社でMLモデルを作るとは @電気通信大学 データアントレプレナーフェロープログラム
yuto16
1
440
データベース04: SQL (1/3) 単純質問 & 集約演算
trycycle
PRO
0
1.1k
凸最適化からDC最適化まで
santana_hammer
1
340
データから見る勝敗の法則 / The principle of victory discovered by science (open lecture in NSSU)
konakalab
1
240
AIによる科学の加速: 各領域での革新と共創の未来
masayamoriofficial
0
300
Featured
See All Featured
Building an army of robots
kneath
306
46k
Automating Front-end Workflow
addyosmani
1371
200k
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
Producing Creativity
orderedlist
PRO
348
40k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
A better future with KSS
kneath
240
18k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Mobile First: as difficult as doing things right
swwweet
225
10k
Transcript
Cartography 101 Sumin Byeon University of Arizona
The Ultimate Plan • Fully customizable map tiles • Serve
these map tiles on our own servers
Rationale • Google does not allow their map to be
used in any navigation software • OSM does not allow anyone to use their map servers for production purposes • CloudMade map servers are slow (perhaps it’s because we don’t pay?)
Cartography • Study and practice of making maps[1] • Projection
of a 3D world onto a 2D plane • Simplified view of the real world, selectively displaying different features depending on the purpose of the map
Slippy Maps • Interactive maps that can be zoomed and
panned around • Consists of tiles - generally 256x256 pixels • Dynamic loading • e.g., Google Maps, Bing Maps, Mapquest
Projections • Mercator projection • Normal Mercator • Transverse Mercator
• Miller cylindrical projection • Mollweide projection • Robinson projection
Mercator Projection
Prerequisites • Geospatial data • Software to process the data
• Map style definition • Tile generator • Storage (i.e., a database and a file system) • Servers to host tiles
Data Source • OpenStreetMap • XML • Nodes, links, polygons
• PBF • Binary format • ~30% smaller than compressed XML • Significantly faster to process
PostGIS • A spatial database extender for PostgreSQL • Enables
geospatial queries to be run in SQL • Supports for various features for manipulating geospatial objects
PostgreSQL • A very powerful relational database system • Known
for reliability, data integrity and correctness
Layer • Generally, a map is consist of multiple layers
• A layer is a subset of geospatial data that can be fetched by a single query
Layer SELECT name, place, population, way FROM planet_osm_point WHERE place='city'
ANDCAST(REPLACE(population, ',', '') AS INT) >= 25000 AND CAST(REPLACE(population, ',', '') AS INT) < 500000
Mapnik • A toolkit for developing map applications • Provides
sub-pixel accuracy (by using highly sophisticated anti-aliasing techniques) • https://github.com/mapnik/mapnik
Cascadenik • Mapnik style definitions in XML - low readability,
maintainability • Implements cascading stylesheets for Mapnik
Cascadenik • (Demo)
TileMill
Tile Generation • Export to an Mapnik XML • Feed
this XML to a tile generation script • Run a post processing script • Transfer tiles to servers
Questions?