Cgimap

From OpenStreetMap Wiki
Jump to: navigation, search

Introduction

Cgimap is a C++ implementation of parts of the OSM API 0.6 using the FastCGI interface. Currently, CGImap implements:

  • the "map" API call,
  • single node, way and relation fetches,
  • multiple node, way and relation fetches,
  • the "full" way and relation calls and
  • changset metadata downloads, including discussions,
  • single node, way and relation history calls,
  • single node, way and relation specific version fetches,
  • multiple node, way and relation specific version fetches,
  • changeset downloads,
  • changeset uploads.

Cgimap was developed because the returns from the map call can be very large (often megabytes of XML) and while The Rails Port performance is adequate, it can cause a lot of GC churn and occasionally use so much memory that it would fail. Cgimap is written to consume a constant amount of memory by streaming data from the database and never having to build or buffer the returned document in memory.

Source code

The "master" source code is at github

Installation

An installation tutorial can be found on the Install page