OpenCPN Partial API docs
Loading...
Searching...
No Matches
ChartMbTiles Class Reference

Represents an MBTiles format chart. More...

#include <mbtiles.h>

Inheritance diagram for ChartMbTiles:
ChartBase

Public Member Functions

virtual ThumbDataGetThumbData (int tnx, int tny, float lat, float lon)
 Get the Chart thumbnail data structure, creating the thumbnail bitmap as required.
 
virtual ThumbDataGetThumbData ()
 
virtual bool UpdateThumbData (double lat, double lon)
 
virtual bool AdjustVP (ViewPort &vp_last, ViewPort &vp_proposed)
 
int GetNativeScale ()
 
double GetNormalScaleMin (double canvas_scale_factor, bool b_allow_overzoom)
 Report recommended minimum scale values for which use of this chart is valid.
 
double GetNormalScaleMax (double canvas_scale_factor, int canvas_width)
 Report recommended maximum scale values for which use of this chart is valid.
 
virtual InitReturn Init (const wxString &name, ChartInitFlag init_flags)
 
bool RenderRegionViewOnDC (wxMemoryDC &dc, const ViewPort &VPoint, const OCPNRegion &Region)
 
virtual bool RenderRegionViewOnGL (const wxGLContext &glc, const ViewPort &vpoint, const OCPNRegion &rect_region, const LLRegion &region)
 
virtual double GetNearestPreferredScalePPM (double target_scale_ppm)
 
virtual void GetValidCanvasRegion (const ViewPort &v_point, OCPNRegion *valid_region)
 
virtual LLRegion GetValidRegion ()
 
virtual bool GetChartExtent (Extent *pext)
 
void SetColorScheme (ColorScheme cs, bool bApplyImmediate)
 
double GetPPM ()
 
double GetZoomFactor ()
 
MbTilesType GetTileType ()
 
- Public Member Functions inherited from ChartBase
virtual void Activate (void)
 
virtual void Deactivate (void)
 
virtual OcpnProjType GetChartProjectionType ()
 
virtual wxDateTime GetEditionDate (void)
 
virtual wxString GetPubDate ()
 
wxString GetFullPath () const
 
wxString GetHashKey () const
 
wxString GetName ()
 
wxString GetDescription ()
 
wxString GetID ()
 
wxString GetSE ()
 
wxString GetDepthUnits ()
 
wxString GetSoundingsDatum ()
 
wxString GetDatumString ()
 
wxString GetExtraInfo ()
 
double GetChart_Error_Factor ()
 
ChartTypeEnum GetChartType ()
 
ChartFamilyEnum GetChartFamily ()
 
double GetChartSkew ()
 
virtual ChartDepthUnitType GetDepthUnitType (void)
 
virtual bool IsReadyToRender ()
 
virtual int GetCOVREntries ()
 
virtual int GetCOVRTablePoints (int iTable)
 
virtual int GetCOVRTablenPoints (int iTable)
 
virtual float * GetCOVRTableHead (int iTable)
 
virtual int GetNoCOVREntries ()
 
virtual int GetNoCOVRTablePoints (int iTable)
 
virtual int GetNoCOVRTablenPoints (int iTable)
 
virtual float * GetNoCOVRTableHead (int iTable)
 

Protected Member Functions

bool RenderViewOnDC (wxMemoryDC &dc, const ViewPort &VPoint)
 
InitReturn PreInit (const wxString &name, ChartInitFlag init_flags, ColorScheme cs)
 
InitReturn PostInit (void)
 
void PrepareTiles ()
 
void PrepareTilesForZoom (int zoomFactor, bool bset_geom)
 
bool GetTileTexture (SharedTilePtr tile)
 Loads a tile into OpenGL's texture memory for rendering.
 
void FlushTiles (void)
 
bool RenderTile (SharedTilePtr tile, int zoom_level, const ViewPort &vpoint)
 
bool StartThread ()
 Create and start the worker thread.
 
void StopThread ()
 Stop and delete the worker thread.
 

Protected Attributes

float m_lon_max
 
float m_lon_min
 
float m_lat_max
 
float m_lat_min
 
double m_ppm_avg
 
MbTilesType m_tile_type
 
int m_b_cdebug
 
int m_min_zoom
 
int m_max_zoom
 
std::unique_ptr< TileCache > m_tile_cache
 
LLRegion m_min_zoom_region
 
wxBitmapType m_image_type
 
int m_last_clean_zoom
 
double m_zoom_scale_factor
 
MbTilesScheme m_scheme
 
std::shared_ptr< SQLite::Database > m_db
 
int m_n_tiles
 
std::string m_format
 
uint32_t m_tile_count
 
std::unique_ptr< MbtTilesThread > m_worker_thread
 
std::thread m_thread
 
- Protected Attributes inherited from ChartBase
int m_Chart_Scale
 
ChartTypeEnum m_ChartType
 
ChartFamilyEnum m_ChartFamily
 
wxString m_FullPath
 
wxString m_Name
 
wxString m_Description
 
wxString m_ID
 
wxString m_SE
 
wxString m_SoundingsDatum
 
wxString m_datum_str
 
wxString m_ExtraInfo
 
wxString m_PubYear
 
wxString m_DepthUnits
 
OcpnProjType m_projection
 
ChartDepthUnitType m_depth_unit_id
 
wxDateTime m_EdDate
 
ThumbDatapThumbData
 
ColorScheme m_global_color_scheme
 
bool bReadyToRender
 
double Chart_Error_Factor
 
double m_lon_datum_adjust
 
double m_lat_datum_adjust
 
double m_Chart_Skew
 
int m_nCOVREntries
 
int * m_pCOVRTablePoints
 
float ** m_pCOVRTable
 
int m_nNoCOVREntries
 
int * m_pNoCOVRTablePoints
 
float ** m_pNoCOVRTable
 

Detailed Description

Represents an MBTiles format chart.

Provides functionality to load, render, and interact with MBTiles format charts. MBTiles stores tiled map data in SQLite databases for efficient storage and retrieval.

An MBTiles chart consists of:

  • A set of image tiles at various zoom levels.
  • Metadata about the tileset (e.g., attribution, description).
  • An SQLite database structure for organizing and accessing tiles.

Handles tile management, caching, and rendering for efficient display of large tiled datasets, supporting both XYZ and TMS tile schemes.

Definition at line 69 of file mbtiles.h.

Member Function Documentation

◆ AdjustVP()

virtual bool ChartMbTiles::AdjustVP ( ViewPort vp_last,
ViewPort vp_proposed 
)
virtual

Implements ChartBase.

◆ GetChartExtent()

virtual bool ChartMbTiles::GetChartExtent ( Extent pext)
virtual

Implements ChartBase.

◆ GetNativeScale()

int ChartMbTiles::GetNativeScale ( void  )
inlinevirtual

Reimplemented from ChartBase.

Definition at line 86 of file mbtiles.h.

◆ GetNearestPreferredScalePPM()

virtual double ChartMbTiles::GetNearestPreferredScalePPM ( double  target_scale_ppm)
virtual

Implements ChartBase.

◆ GetNormalScaleMax()

double ChartMbTiles::GetNormalScaleMax ( double  canvas_scale_factor,
int  canvas_width 
)
virtual

Report recommended maximum scale values for which use of this chart is valid.

Implements ChartBase.

◆ GetNormalScaleMin()

double ChartMbTiles::GetNormalScaleMin ( double  canvas_scale_factor,
bool  b_allow_overzoom 
)
virtual

Report recommended minimum scale values for which use of this chart is valid.

Implements ChartBase.

◆ GetPPM()

double ChartMbTiles::GetPPM ( )
inline

Definition at line 120 of file mbtiles.h.

◆ GetThumbData() [1/2]

virtual ThumbData * ChartMbTiles::GetThumbData ( )
virtual

Implements ChartBase.

◆ GetThumbData() [2/2]

virtual ThumbData * ChartMbTiles::GetThumbData ( int  tnx,
int  tny,
float  lat,
float  lon 
)
virtual

Get the Chart thumbnail data structure, creating the thumbnail bitmap as required.

Implements ChartBase.

◆ GetTileTexture()

bool ChartMbTiles::GetTileTexture ( SharedTilePtr  tile)
protected

Loads a tile into OpenGL's texture memory for rendering.

If the tile is not ready to be rendered (i.e. the tile has not been loaded from disk or ndecompressed to memory), the function sends a request to the worker thread which will do this later in the background

Parameters
tilePointer to the tile descriptor to be prepared
Returns
true if the tile is ready to be rendered, false else.

◆ GetTileType()

MbTilesType ChartMbTiles::GetTileType ( )
inline

Definition at line 122 of file mbtiles.h.

◆ GetValidCanvasRegion()

virtual void ChartMbTiles::GetValidCanvasRegion ( const ViewPort v_point,
OCPNRegion valid_region 
)
virtual

Implements ChartBase.

◆ GetValidRegion()

virtual LLRegion ChartMbTiles::GetValidRegion ( )
virtual

Implements ChartBase.

◆ GetZoomFactor()

double ChartMbTiles::GetZoomFactor ( )
inline

Definition at line 121 of file mbtiles.h.

◆ Init()

virtual InitReturn ChartMbTiles::Init ( const wxString &  name,
ChartInitFlag  init_flags 
)
virtual

Implements ChartBase.

◆ RenderRegionViewOnDC()

bool ChartMbTiles::RenderRegionViewOnDC ( wxMemoryDC &  dc,
const ViewPort VPoint,
const OCPNRegion Region 
)
virtual

Implements ChartBase.

◆ RenderRegionViewOnGL()

virtual bool ChartMbTiles::RenderRegionViewOnGL ( const wxGLContext &  glc,
const ViewPort vpoint,
const OCPNRegion rect_region,
const LLRegion &  region 
)
virtual

Implements ChartBase.

◆ SetColorScheme()

void ChartMbTiles::SetColorScheme ( ColorScheme  cs,
bool  bApplyImmediate 
)
virtual

Implements ChartBase.

◆ StartThread()

bool ChartMbTiles::StartThread ( )
protected

Create and start the worker thread.

This thread is dedicated at loading and decompressing chart tiles into memory, in the background. If for any reason the thread would fail to load, the method return false

◆ StopThread()

void ChartMbTiles::StopThread ( )
protected

Stop and delete the worker thread.

Called when OpenCPN is quitting.

◆ UpdateThumbData()

virtual bool ChartMbTiles::UpdateThumbData ( double  lat,
double  lon 
)
virtual

Implements ChartBase.

Member Data Documentation

◆ m_b_cdebug

int ChartMbTiles::m_b_cdebug
protected

Definition at line 157 of file mbtiles.h.

◆ m_db

std::shared_ptr<SQLite::Database> ChartMbTiles::m_db
protected

Definition at line 170 of file mbtiles.h.

◆ m_format

std::string ChartMbTiles::m_format
protected

Definition at line 172 of file mbtiles.h.

◆ m_image_type

wxBitmapType ChartMbTiles::m_image_type
protected

Definition at line 163 of file mbtiles.h.

◆ m_last_clean_zoom

int ChartMbTiles::m_last_clean_zoom
protected

Definition at line 164 of file mbtiles.h.

◆ m_lat_max

float ChartMbTiles::m_lat_max
protected

Definition at line 150 of file mbtiles.h.

◆ m_lat_min

float ChartMbTiles::m_lat_min
protected

Definition at line 151 of file mbtiles.h.

◆ m_lon_max

float ChartMbTiles::m_lon_max
protected

Definition at line 148 of file mbtiles.h.

◆ m_lon_min

float ChartMbTiles::m_lon_min
protected

Definition at line 149 of file mbtiles.h.

◆ m_max_zoom

int ChartMbTiles::m_max_zoom
protected

Definition at line 160 of file mbtiles.h.

◆ m_min_zoom

int ChartMbTiles::m_min_zoom
protected

Definition at line 159 of file mbtiles.h.

◆ m_min_zoom_region

LLRegion ChartMbTiles::m_min_zoom_region
protected

Definition at line 162 of file mbtiles.h.

◆ m_n_tiles

int ChartMbTiles::m_n_tiles
protected

Definition at line 171 of file mbtiles.h.

◆ m_ppm_avg

double ChartMbTiles::m_ppm_avg
protected

Definition at line 153 of file mbtiles.h.

◆ m_scheme

MbTilesScheme ChartMbTiles::m_scheme
protected

Definition at line 168 of file mbtiles.h.

◆ m_thread

std::thread ChartMbTiles::m_thread
protected

Definition at line 176 of file mbtiles.h.

◆ m_tile_cache

std::unique_ptr<TileCache> ChartMbTiles::m_tile_cache
protected

Definition at line 161 of file mbtiles.h.

◆ m_tile_count

uint32_t ChartMbTiles::m_tile_count
protected

Definition at line 174 of file mbtiles.h.

◆ m_tile_type

MbTilesType ChartMbTiles::m_tile_type
protected

Definition at line 155 of file mbtiles.h.

◆ m_worker_thread

std::unique_ptr<MbtTilesThread> ChartMbTiles::m_worker_thread
protected

Definition at line 175 of file mbtiles.h.

◆ m_zoom_scale_factor

double ChartMbTiles::m_zoom_scale_factor
protected

Definition at line 166 of file mbtiles.h.


The documentation for this class was generated from the following file: