public void update(Camera camera, Perspective3D perspective3d) {

    Point3d cameraPoint = camera.getPoint();
    Vector3d cameraRotation = camera.getAngle();

    Perspective3D perspective = perspective3d;

    EastNorth eastNorth = perspective.toEastNorth(cameraPoint.x, -cameraPoint.z);

    Projection proj = Main.getProjection();

    LatLon latLon = proj.eastNorth2latlon(eastNorth);

    // XXX update cache
    this.photo.setLat(latLon.lat());
    this.photo.setLon(latLon.lon());
    this.photo.setHeight(cameraPoint.y);

    this.photo.setRotate(cameraRotation.x, cameraRotation.y, cameraRotation.z);
  }