void OnDisplay()
{
  osmscout::MapData data;

  projection.Set(osmscout::GeoCoord(lat,lon),
                 osmscout::Magnification(zoom),
                 DPI,
                 width,
                 height);

  if (!database.LoadData(projection,
                         data)) {
    std::cerr << "Cannot load data" << std::endl;
    return;
  }

  glClear(GL_COLOR_BUFFER_BIT);
  glLoadIdentity();

  //glTranslated(-width/2.0,-height/2.0,-9.0);
  //glRotatef(-15.0f,1.0f,0.0f,0.0f);

  if (!painter->DrawMap(projection,
                        drawParameter,
                        data)) {
    std::cerr << "Cannot render" << std::endl;
    return;
  }

  // swap buffers to display, since we're double buffered.
  glutSwapBuffers();
}
void DBThread::GetProjection(osmscout::MercatorProjection& projection)
{
    QMutexLocker locker(&mutex);

    projection.Set(this->projection.GetCenter(),
                   this->projection.GetAngle(),
                   this->projection.GetMagnification(),
                   this->projection.GetDPI(),
                   this->projection.GetWidth(),
                   this->projection.GetHeight());
}