• Stars
    star
    411
  • Rank 103,015 (Top 3 %)
  • Language
  • Created over 10 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

popular tourist destinations on the wild and exciting quest to make web maps in fewer tries

What kind of data do you have?

Points

  • How much data?
    • Just enough
    • Lots of points, and each point has data that you want to be able to explore. For instance, apartment listings which might number 10 per city block, but you want to be able to click on them and see photos and links.
    • Too much and the points have some value that can be aggregated
      • Create hexbins of your points with the QGIS hexbin plugin, to make polygons. Start again at Polygons
    • Too much and the points just represent presence - like tweets
    • Tons of data, and you don't need labels? Use tippecanoe.

Polygons

  • How much data?
    • Just enough
      • Convert the data to GeoJSON & make a simple Leaflet map
    • Too much, the polygons have necessary detail
    • Too much, the polygons have unnecessary details or many of the polygons have shared borders, like state or province maps

Attributes

  • What kind of attributes?
    • Absolute numbers
      • Convert the points to centroids with QGIS and start from Points
      • Normalize absolutes to rates by dividing over polygon area, and start from Rates
    • Rates or Categories
    • Temporal data - values over time
    • Multivariate data: like counts of different species or ethnicities
    • Names of places, like countries
      • With IDs:
        • ISO2 or ISO3 codes
          • Download Natural Earth data at the right level, join with QGIS, and start again at Polygons
        • ZIP codes
          • Download ZCTAs and join
      • Without IDs
        • Find data with IDs, or manually join with polygons
    • Addresses

Lines

  • Small amounts of data: use Leaflet
  • Lots of data, or need line labels (are they streets?)? Use Mapbox Studio
  • Tons of data, and you don't need line labels? Use datamaps.

Raster

  • Already georectified & cleaned (from satellites or fixed-up sources)
    • If you want to host it yourself
      • Render tiles with MapTiler, publish them on S3 or some other service, view them in Leaflet
    • If you want someone else to host & process
      • Upload to Mapbox and view in Mapbox GL JS or any client
    • Read processing satellite imagery to understand GDAL/ImageMagick workflow.
  • Raster images from drones
  • Raster images from scanned maps

A format that I can't read

  • Install GDAL and use ogr2ogr to convert the file. If you can't install this, you can use it online with Ogre
  • Commercial tools:
  • Ask your source for a better file format

OpenStreetMap

  • I want raw data right from the source, up to the minute, in its original form? planet.osm
    • Drawbacks: downloads are very large and require specialized tools to process
  • I want raw data for subsets of the world: Geofabrik extracts or Mapzen metro extracts
    • Drawbacks: only includes predefined areas, not as up-to-date as Planet.osm
  • I want data useful for fast basemaps, already processed into vector tiles: Mapbox
    • Drawbacks: doesn't include all features or all tags on features, only those appropriate for visualization
  • I want raw data as tiles, which include more data and complete tags: OSM QA Tiles
    • Drawbacks: much larger & slower than tiles designed for visualization
  • I want a specific subset of data by area, filter, and want the newest data possible: Overpass
    • Drawbacks: can't return country-sized chunks of data, only smaller subsets
  • I want filtered, up-to-date extracts in extra formats like KMZ, Garmin Image, etc: HOT Export Tool
    • Drawbacks: can't do arbitrary regions

I don't have data yet

  • Government Data
    • Contact the town or federal GIS dept you need
    • Use FOIAMachine.org to request data via FOIA
  • Personal Data
    • If you want to create data, use geojson.io and draw it.
  • Global Data
  • Historical Data

Visualization defaults

  • Projection:
  • Colors:
  • Scales:
    • For any data
      • Try linear first
      • Then quantile
    • For data of rates or compounding values
      • Try log and power scales
  • Points:
    • Start with normal circles with no strokes
    • Scale points by area, not diameter
  • Flair:
    • Only add a north arrow if north isn't up
    • Always attribute your data, especially OpenStreetMap, to avoid the nerd wrath
    • If it zooms, add visible zoom controls. Pan isn't necessary, but not everyone has a scroll wheel / multitouch

See also

More Repositories

1

big

presentations for busy messy hackers
JavaScript
3,268
star
2

awesome-geojson

GeoJSON utilities that will make your life easier.
2,084
star
3

docbox

REST API documentation generator
CSS
1,136
star
4

stickshift

A clean & modern SQL data interface.
JavaScript
373
star
5

systemfontstack

HTML
288
star
6

literate-raytracer

a literate raytracer in javascript
HTML
193
star
7

wah

a slightly higher-level language superset of webassembly
Clojure
150
star
8

geojson.net

JavaScript
150
star
9

perception

collected & summarized research on the effectiveness of visualization techniques
148
star
10

gedcom

A simple GEDCOM parser that focuses on translating GEDCOM structure into JSON.
TypeScript
145
star
11

github-best-practices

how to use this dang site!
144
star
12

wcag-contrast

WCAG contrast ratio measurement and scoring
JavaScript
120
star
13

notfoundbot

fix & archive outgoing links on your website
TypeScript
109
star
14

mistakes

line-oriented presentation-optimized live coding in javascript
JavaScript
108
star
15

happen

make real events happen in-browser, with pure DOM and optional $
JavaScript
105
star
16

biggie

everyone can get big
JavaScript
104
star
17

simpleopendata

simple guidelines for publishing open data in useful formats
HTML
89
star
18

flair

Cocktail browser interface and dataset
Elm
81
star
19

geojson-random

Generate random GeoJSON features.
JavaScript
73
star
20

d3-axis-for-react

d3-axis for React
TypeScript
63
star
21

minute-agent

a keycounter for osx
Objective-C
57
star
22

heard

a minimal, local listener for iTunes data.
Objective-C
53
star
23

geojson-flatten

flatten multipart geometries and geometrycollections in geojson
JavaScript
50
star
24

today-i-learned

keeping track of things i never would have guessed but were true anyway
45
star
25

running-for-nerds

like running, but for nerds
42
star
26

react-tangle

A tangle.js-style numeric input for React.js.
JavaScript
39
star
27

node-canvas-animation-example

An example of how to use node-canvas to create an animation as a GIF and a Video
JavaScript
38
star
28

presentations

Presentations I've given
JavaScript
36
star
29

minute

a personal data visualizer
JavaScript
36
star
30

quotes

guiding principles.
34
star
31

stickshift-app

Stickshift as a desktop application.
JavaScript
33
star
32

sitemap-static

Make a sitemap for a static website based on files on disk
JavaScript
31
star
33

testing-webgl

Notes on continuous-integration testing WebGL applications and libraries.
30
star
34

togeojson-cli

toGeoJSON in the console
JavaScript
28
star
35

nvim

My .vim
Lua
28
star
36

dx-spec

Issue (and spec) repository for the development of a spec that would succeed JSDoc.
27
star
37

relative-luminance

Calculate the relative luminance of an RGB triplet color.
JavaScript
27
star
38

coffeedex

openstreetmap but for coffee
JavaScript
27
star
39

make-relative

JavaScript
26
star
40

windchime

assistive / ambient technology for writing software
Objective-C
26
star
41

d12

documentation future experiment
JavaScript
25
star
42

bespoke

Image resizing for macwright.org. Full, medium, small, and original, in jpeg and webp.
JavaScript
25
star
43

sometimemachine

openstreetmap history analysis
HTML
23
star
44

obsy

livecoding observable-ish experiment, just an experiment
JavaScript
22
star
45

k-means

k-means clustering
JavaScript
21
star
46

fischer-color

eric fischer's perceptually-friendly color system
JavaScript
20
star
47

memory-geojson

experimental memory-efficient geojson representation
JavaScript
19
star
48

bookish-api

bookish api
JavaScript
18
star
49

canvas-animation-maps-example

http://www.macwright.com/2015/08/31/canvas-animations-on-maps.html
JavaScript
18
star
50

openstreetmap-landscape

writing about mapping is like dancing about architecture
17
star
51

trump.mistakes

HTML
16
star
52

visualization-cheatsheet

data ⇢ representation
16
star
53

ditty

JavaScript
15
star
54

pig

pig is a presentation system for beautiful people
JavaScript
14
star
55

awesome-coding-paradigms

14
star
56

myland

Scraping and displaying TrafficLand data.
Python
13
star
57

projectityourself

a website that encourages people to make their own projections
JavaScript
13
star
58

geos-wasm

C
13
star
59

bookish

JavaScript
13
star
60

zig-raytracer

a webassembly/zig raytracer
Zig
13
star
61

literate-game-of-life

a literate javascript implementation of conway's game of life
CSS
12
star
62

identify-hate

identifies hate groups on GuideStar
JavaScript
12
star
63

landpatch

a visualization of landsat collection paths through the northern hemisphere
JavaScript
12
star
64

the-united-states-of-america

12
star
65

dcmr

making the DC Municipal Regulations Accessible
JavaScript
12
star
66

running

acquiring, processing, and visualizing running data
Python
11
star
67

big-themes

themes for big
JavaScript
11
star
68

truisms

truisms for your lock screen
EJS
11
star
69

shotspotter

gunshot data from shotspotter
JavaScript
10
star
70

clone-pull-requests

re-file pull requests from one repository to another
JavaScript
10
star
71

are-we-flow-yet

A CLI tool that scans a source directory and gives statistics and a big list of files that are and are not flow-annotated.
JavaScript
10
star
72

incremental-eval

run javascript line-by-line
JavaScript
9
star
73

deuteranopia

Simulate the prevalent deuteranopia form of colorblindness.
JavaScript
9
star
74

bookish-old

semi-universal book identification code converter
JavaScript
8
star
75

got-links

download multiple pages of results from a paged endpoint
JavaScript
8
star
76

treeui

A simple collapsible tree ui, for file selectors and the like.
JavaScript
7
star
77

dc-ownership

Tinkering with Real Estate ownership and assessment data.
Go
7
star
78

exif-extract

extract exif data from files dropped, including positions and thumbnails
JavaScript
7
star
79

orphanarium

Find non-required files in your source tree.
JavaScript
6
star
80

live-require

simple script-tag includes
JavaScript
6
star
81

demo

lightweight demos
JavaScript
6
star
82

howsmy

Python
6
star
83

awesome-converters

just a list of the tools for converting things
6
star
84

rust-geojson-random

Rust
5
star
85

gandi-ipfs

JavaScript
5
star
86

lodebuilder

loading gif builder
JavaScript
5
star
87

coords

parse and generate decimal and sexagesimal latitude longitude coordinates
JavaScript
5
star
88

taurus

Swift
5
star
89

channel-arc

HTML
4
star
90

flacbox-sync

JavaScript
4
star
91

snap-archive

archive a specific geographical area of snapchat posts
JavaScript
4
star
92

entropy

research into random
4
star
93

ukulele

The code to uke.tommacwright.com
Ruby
4
star
94

podcast-luddite

Shell
4
star
95

stories

narrative-specific open data or accessibility projects
Elm
4
star
96

turtle

turtle, on the internet
JavaScript
4
star
97

terrarium-stream

an interface to terrarium that provides a readable & writable stream
JavaScript
3
star
98

geo-codepoints

generates sets of unicode codepoints for each square on the earth
JavaScript
3
star
99

teenmom

a band, a plan, a nalp
CSS
3
star
100

npm-add-repo

Add a repository field to a package.json that doesn't have one.
JavaScript
3
star