sfchronicle / web-map-maker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

 _     _  _______  _______    __   __  _______  _______    __   __  _______  ___   _  _______  ______   
| | _ | ||       ||  _    |  |  |_|  ||   _   ||       |  |  |_|  ||   _   ||   | | ||       ||    _ |  
| || || ||    ___|| |_|   |  |       ||  |_|  ||    _  |  |       ||  |_|  ||   |_| ||    ___||   | ||  
|       ||   |___ |       |  |       ||       ||   |_| |  |       ||       ||      _||   |___ |   |_||_
|       ||    ___||  _   |   |       ||       ||    ___|  |       ||       ||     |_ |    ___||    __  |
|   _   ||   |___ | |_|   |  | ||_|| ||   _   ||   |      | ||_|| ||   _   ||    _  ||   |___ |   |  | |
|__| |__||_______||_______|  |_|   |_||__| |__||___|      |_|   |_||__| |__||___| |_||_______||___|  |_|

We make a lot of maps at the Los Angeles Times. So we made this tool to help us make them faster. It uses Tangram, which was developed by Mapzen. They shut down in early 2018, but tiles are now hosted by Nextzen. The map uses Natural Earth and OpenStreetMap data to export an image or a vector file.

#NICAR18

We need help making this tool better. If you find bugs, submit an issue. If you can improve our code, please send us a pull request.

Live preview

See that here.

Getting started

You don't need much to get up and running. Clone this repo and make a config.js file (we provided a template here). You'll also need to create a config.yaml file and leave it in the main directory.

A Bing API key isn't necessary to use the map maker; only for geocoding and location search. If you don't have a Bing key you can use coordinates in the location search box.

The gutter and columnWidth are the pixel equivelants for the Times' print 6-column layout.

You'll need a (for now) free Nextzen key. That key needs to be placed both in the config.js file and the config.yaml file.

Your config.js file should look like this:

var configOptions = {
    'bingAPI': 'Your API here',
    'attribution': 'Your Org name, ',
    'initCoords': [34.0425, -118.24],
    'initZoom': 14,
    'mapzen-api': 'nextzenKEYHERE',
    'columnWidth': 110.45,
    'gutterWidth': 12
}

Your config.yaml file should look like this:

global:
    # Sign up for a Mapzen API key to enjoy higher rate limits
    # https://mapzen.com/documentation/overview/#developer-accounts-and-api-keys
    sdk_mapzen_api_key: 'nextzenKEYHERE'

Then you're ready to run the mapmaker. The easiest way is to fire up a simple python server (obviously you'll need python) with this command:

python3 serve.py

The app will be hosted at localhost:8000.

When you're running this on the server, you'll need this command to run it forever:

nohup python3 serve.py &

To kill the process later, you can do this:

sudo lsof -n -i :8000
kill -9 <# output from above>

Vector files for print

Because we make maps for web and print, if you select a column size from the drop-down you'll get a map with the column-equivelant for our six-column layout. The vector paths exported from "download vector" can then be converted to CMYK.

You can then run the vector-map-restyle.jsx script in Adobe Illustrator to convert all the layers to values of CMYK. Watch a tutorial here.

What you need to know

Because we've developed this as an internal tool for use at the Los Angeles Times, it's geared toward our use as far as styles and workflow. But it should be customizable and we're open to suggestions that would help make it better for others to use, too.

Chrome and Firefox are supported.

Make this better

Have any ideas? File an issue, fork this repo, send us a pull request or contact jon@latimes.com with thoughts, concerns or questions.

About

License:MIT License


Languages

Language:JavaScript 93.5%Language:CSS 4.6%Language:HTML 1.1%Language:Python 0.8%Language:Shell 0.0%Language:Makefile 0.0%