Skip to content
This repository

Tile rendering software stack used by MapQuest

branch: master
Octocat-spinner-32 dqueue Fix error message July 01, 2012
Octocat-spinner-32 examples Fix syntax error in example config file June 25, 2012
Octocat-spinner-32 http First commit / import from SVN. February 16, 2012
Octocat-spinner-32 image First commit / import from SVN. February 16, 2012
Octocat-spinner-32 logging First commit / import from SVN. February 16, 2012
Octocat-spinner-32 m4 Reset after each test. This means missing boost library messages are … June 21, 2012
Octocat-spinner-32 proto First commit / import from SVN. February 16, 2012
Octocat-spinner-32 py Removed obsolete pre-load of coverage section. This is done in the co… June 27, 2012
Octocat-spinner-32 scripts removing some unneeded scripts an sources February 16, 2012
Octocat-spinner-32 storage Fixed configure for libhashkit header changes. December 24, 2012
Octocat-spinner-32 test Added most tests into `make check` system, so now we can run tests ea… December 25, 2012
Octocat-spinner-32 .gitignore Added most tests into `make check` system, so now we can run tests ea… December 25, 2012
Octocat-spinner-32 COPYING First commit / import from SVN. February 16, 2012
Octocat-spinner-32 Makefile.am Added most tests into `make check` system, so now we can run tests ea… December 25, 2012
Octocat-spinner-32 README.md Improved README and added *.pyc to .gitignore June 29, 2012
Octocat-spinner-32 autogen.sh First commit / import from SVN. February 16, 2012
Octocat-spinner-32 broker_ctl.cpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 configure.ac Added most tests into `make check` system, so now we can run tests ea… December 25, 2012
Octocat-spinner-32 expire_tiles.cpp Add missing initialization of m_num_complete July 01, 2012
Octocat-spinner-32 mongrel_request.cpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 mongrel_request.hpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 mongrel_request_grammar.hpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 mongrel_request_parser.cpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 mongrel_request_parser.hpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 spherical_mercator.hpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 storage_worker.cpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 storage_worker.hpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 task_queue.hpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 tile_broker.cpp Fix issue #4 - was ignoring the results of `boost::program_options` a… June 25, 2012
Octocat-spinner-32 tile_broker_impl.cpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 tile_broker_impl.hpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 tile_handler.cpp log unparsable URLs in tile handler July 01, 2012
Octocat-spinner-32 tile_handler.hpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 tile_handler_main.cpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 tile_path_grammar.hpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 tile_path_parser.cpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 tile_path_parser.hpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 tile_protocol.hpp Pass const string parameter as reference July 01, 2012
Octocat-spinner-32 tile_submitter.cpp overwrote previous change reverting that part February 17, 2012
Octocat-spinner-32 tile_utils.cpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 tile_utils.hpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 zmq_utils.cpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 zmq_utils.hpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 zstream.cpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 zstream.hpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 zstream_pbuf.cpp First commit / import from SVN. February 16, 2012
Octocat-spinner-32 zstream_pbuf.hpp First commit / import from SVN. February 16, 2012
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

You will also need the following Python modules for the worker:

  • PIL (Python Imaging Library)
  • geojson
  • Shapely

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 -i localhost_0 & ./tile_broker -C dqueue.conf -n "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.