Program Listing for File Tile.hpp

Return to documentation for file (optional/gdal/src/navtk/geospatial/Tile.hpp)

#pragma once

#include <memory>
#include <ostream>
#include <utility>

#include <navtk/aspn.hpp>
#include <navtk/geospatial/GdalRaster.hpp>
#include <navtk/geospatial/Post.hpp>

namespace navtk {
namespace geospatial {

class Tile {
public:
    Tile(std::shared_ptr<Raster> raster);


    std::pair<bool, double> lookup_datum(double latitude, double longitude) const;

    std::string get_filename() const;

    bool contains(double latitude, double longitude) const;

    void unload();

    friend const std::ostream& operator<<(std::ostream& os, const Tile& tile);

private:
    void select_best_available_pixels(double& top_left,
                                      double& top_right,
                                      double& bottom_left,
                                      double& bottom_right) const;
    double select_valid(double one, double two, double three, double four) const;

    std::shared_ptr<Raster> raster;
};
}  // namespace geospatial
}  // namespace navtk