Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Tile rendering software stack used by MapQuest
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
dqueue
examples
http
image
logging
m4
proto
py
scripts
storage
test
.gitignore
COPYING
Makefile.am
README.md
autogen.sh
broker_ctl.cpp
configure.ac
expire_tiles.cpp
mongrel_request.cpp
mongrel_request.hpp
mongrel_request_grammar.hpp
mongrel_request_parser.cpp
mongrel_request_parser.hpp
spherical_mercator.hpp
storage_worker.cpp
storage_worker.hpp
task_queue.hpp
tile_broker.cpp
tile_broker_impl.cpp
tile_broker_impl.hpp
tile_handler.cpp
tile_handler.hpp
tile_handler_main.cpp
tile_path_grammar.hpp
tile_path_parser.cpp
tile_path_parser.hpp
tile_protocol.hpp
tile_submitter.cpp
tile_utils.cpp
tile_utils.hpp
zmq_utils.cpp
zmq_utils.hpp
zstream.cpp
zstream.hpp
zstream_pbuf.cpp
zstream_pbuf.hpp

README.md

MapQuest Render Stack

This is the software stack used at MapQuest to render map tiles. It was built to support distributed, asynchronous map tile rendering and include multiple rendering styles and renderers flexibly.

Note that this software is a first release and the build system was recently converted to GNU Autotools, so it is quite likely that there are still issues remaining. If you find build or other errors, please report them on the github issues page.

Installation

First, you'll need the prerequisites:

  • GNU Autoconf >= 2.68
  • GNU Automake >= 1.11.1
  • ZeroMQ >= 2.1.10 < 3.0
  • Google Protocol Buffers >= 2.4.0
  • Mongrel2 >= 1.7.5
  • libGD >= 2.0.35
  • Mapnik >= 2.0
  • libcurl >= 7.19.5
  • libmemcached >= 0.49
  • python >= 2.6
  • boost >= 1.45
  • libbz2
  • libpq

You should be able to run the standard autotools generate, configure, build cycle:

./autogen.sh ./configure make && make install

Configuration

Please see the examples/ directory for some example configuration files. Note that configuration files will vary from location to location and what works for us may not work for you.

Mongrel2 requires some special setup to load its configuration file into a SQLite database before running, please see the Mongrel2 documentation for details.

Running

The map stack expects an existing working PostGIS + Mapnik2 setup. If this is already present, you have configured the worker to point to this style file and the handler & worker storage configurations, you should be able to run:

./tile_handler -c tile_handler.conf -C dqueue.conf & ./tile_broker dqueue.conf "broker_localhost" & python py/worker.py worker.conf dqueue.conf &

Mongrel2 should now be serving tiles on the port that you set up in its configuration file.

Something went wrong with that request. Please try again.