All Projects → stamen → Terrain Classic

stamen / Terrain Classic

Licence: isc
World-wide CartoCSS port of Stamen's classic terrain style

Projects that are alternatives of or similar to Terrain Classic

s60-maps
Yet another maps for Symbian OS
Stars: ✭ 27 (-75.45%)
Mutual labels:  map, cartography, openstreetmap
Vector Datasource
Tilezen vector tile service - OpenStreetMap data in several formats
Stars: ✭ 427 (+288.18%)
Mutual labels:  cartography, map, openstreetmap
Osmic
CC0 SVG Map Icons, mirror of repo on Gitlab
Stars: ✭ 89 (-19.09%)
Mutual labels:  cartography, openstreetmap
Mapbox Gl Native
Interactive, thoroughly customizable maps in native Android, iOS, macOS, Node.js, and Qt applications, powered by vector tiles and OpenGL
Stars: ✭ 4,091 (+3619.09%)
Mutual labels:  map, openstreetmap
Barefoot
Java map matching library for integrating the map into software and services with state-of-the-art online and offline map matching that can be used stand-alone and in the cloud.
Stars: ✭ 541 (+391.82%)
Mutual labels:  map, openstreetmap
Baremaps
Custom vector tiles from OpenStreetMap and other data sources.
Stars: ✭ 100 (-9.09%)
Mutual labels:  postgis, openstreetmap
Cartography
Thematic Cartography for R
Stars: ✭ 357 (+224.55%)
Mutual labels:  cartography, map
Mapsui
Mapsui is a .NET Map component for WPF, Xamarin.Forms, Xamarin.Android, Xamarin.iOS and UWP
Stars: ✭ 447 (+306.36%)
Mutual labels:  map, openstreetmap
o.map
Open Street Map app - KaiOS
Stars: ✭ 51 (-53.64%)
Mutual labels:  map, openstreetmap
Geography for hackers
Geography for Hackers - Teaching all how to hack geography, use GIS, and think spatially
Stars: ✭ 25 (-77.27%)
Mutual labels:  postgis, cartography
Umap
uMap lets you create maps with OpenStreetMap layers in a minute and embed them in your site.
Stars: ✭ 609 (+453.64%)
Mutual labels:  map, openstreetmap
Mapsforge
Vector map library and writer - running on Android and Desktop.
Stars: ✭ 885 (+704.55%)
Mutual labels:  map, openstreetmap
Tasking Manager
Tasking Manager - The tool to team up for mapping in OpenStreetMap
Stars: ✭ 328 (+198.18%)
Mutual labels:  postgis, openstreetmap
map-machine
Python renderer for OpenStreetMap with custom icons intended to display as many map features as possible
Stars: ✭ 82 (-25.45%)
Mutual labels:  map, openstreetmap
Blendergis
Blender addons to make the bridge between Blender and geographic data
Stars: ✭ 4,642 (+4120%)
Mutual labels:  map, openstreetmap
eurostat.js
Some reusable Javascript libraries for Eurostat data users and web developers
Stars: ✭ 30 (-72.73%)
Mutual labels:  map, cartography
Osm2pgsql
OpenStreetMap data to PostgreSQL converter
Stars: ✭ 1,042 (+847.27%)
Mutual labels:  postgis, openstreetmap
map
🏳️‍🌈🗺 A map of community centers and other helpful information for queer (LGBTQ) people.
Stars: ✭ 15 (-86.36%)
Mutual labels:  map, openstreetmap
AndroidOfflineMapLibrary
Offline OpenStreet Map Library (No Internet Required) You dont have to even one-time connect!
Stars: ✭ 16 (-85.45%)
Mutual labels:  map, openstreetmap
Mapscii
🗺 MapSCII is a Braille & ASCII world map renderer for your console - enter => telnet mapscii.me <= on Mac (brew install telnet) and Linux, connect with PuTTY on Windows
Stars: ✭ 5,886 (+5250.91%)
Mutual labels:  map, openstreetmap

Terrain Classic

World-wide CartoCSS port of Stamen's classic terrain style.

Stamen's original Terrain style was developed in 2011 as part of Stamen's Citytracking initiative, funded by the Knight Foundation. The old repository can be found here, for historical interest.

The original Terrain style only covered the United States. As part of a new Knight Foundation grant, we expanded Terrain to cover the entire world. The Knight grant also funded prototyping for some totally-different new terrain styles, so to avoid confusion we are calling the this reboot of the old style "Terrain Classic."

Terrain screenshot

Most of the current development process for Terrain Classic is based on the toner-carto repo.

Developing

Prerequisites

*NOTE: The Node Version Manager script is helpful if you are using a more recent version of Node than 0.10 (which is fairly likely). This is important as TileMill [email protected] will only run on Node --version 0.10.

On OS X, installation with Homebrew looks like this:

brew install postgis gdal node go leveldb protobuf pv

# follow instructions to start postgresql

mkdir -p /tmp/imposm
cd /tmp/imposm
export GOPATH=`pwd`
git clone https://github.com/omniscale/imposm3 src/imposm3
go get imposm3
go install imposm3

# bin/imposm3 is your new binary; either add $GOPATH/bin to your PATH or copy
# it to /usr/local/bin (or similar)

Terrain Classic Itself

  • Clone this repo
  • Run make link to sym-link the project into your TileMill project directory
  • Run make db/shared to fetch and transform Natural Earth and OSM coastline data
  • Run make db/CA (or similar; seePLACES in the Makefile for a list of registered extracts and expand it as desired).
  • Run make to generate the project.mml file. (Alternatively, maketerrain-classic-background, terrain-classic-lines, orterrain-classic-labels to work on the variant styles)
  • Start TileMill by running npm start from the TileMill repo
  • Open http://localhost:20009/#/project/terrain-classic

make db/<place> will write to the database specified in .env (with a format that resembles postgres:///terrain, where terrain is the database name). If you experience trouble connecting, try adding credentials, e.g. postgres://user:[email protected]/terrain (it will use $USER with no password otherwise). Barring that, check yourpg_hba.conf to ensure that access is configured correctly.

(We primarily develop on OS X where PostgreSQL from Homebrew works out of the box.)

NOTE: Changes to project settings (i.e. .mml files not .mss stylesheets) in TileMill will not persist the changes. To make changes, edit the relevant .yml file and re-run make [variant] to re-generate the project.mml that TileMill reads.

To test the terrain style with a hillshade overlay, a tessera.json config is provided. Install tessera with npm install tessera and then run npm start in the terrain-classic directory. Open http://localhost:8080/ to view the terrain-classic style composited with Open Terrain hillshades.

Testing with the side-by-side viewer (experimental)

In the root folder run npm install && npm start which will start tessera running at http://localhost:8080

Then, in the side-by-side folder, run a simple webserver such as python -m SimpleHTTPServer. Then go to http://localhost:8000 (or whatever port the webserver is running at) to view the side-by-side viewer.

FAQ

What's the deal with the Makefile? Why is it so complicated?

Magic, mostly. It probably can (and should) be simplified! Consider this another, in-progress "make for data" approach (which actually uses make).

The goal here is to provide an idempotent process for bootstrapping the project that uses as few additional dependencies as possible. make is the age-old solution to this problem, although it takes a more file-focused approach. Put another way, it attempts to efficiently encapsulate otherwise complicated and error-prone operations.

The Makefile here attempts to replicate make's behavior relative to rebuilding files with database tables. In other words, if a Postgres relation already exists, it will be left as-is. If it doesn't exist (has been dropped or hasn't been created), it will be created on-demand.

Why do I have to install pgexplode?

libpq (which underlies PostgreSQL's command-line tools) supports a number of environment variables which can be used to avoid repetition (and avoid errors). However, each component of the connection information is separate, and is more easily and concisely encoded in a URI (i.e. DATABASE_URL). pgexplode is aware of libpq's environment variables and will expand DATABASE_URLs components (which is simpler than managing multiple values and constructing a URL for imposm3 and other tools).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].