wms

wms

Synopsis

                    WmsCacheNode;
                    WmsInfo;
void                (*WmsChunkCallback)                 (gsize cur,
                                                         gsize total,
                                                         gpointer user_data);
void                (*WmsDoneCallback)                  (WmsCacheNode *node,
                                                         gpointer user_data);
void                (*WmsLoader)                        (WmsCacheNode *node,
                                                         const gchar *path,
                                                         gint width,
                                                         gint height);
void                (*WmsFreeer)                        (WmsCacheNode *node);
WmsCacheNode *      wms_cache_node_new                  (WmsCacheNode *parent,
                                                         gdouble xmin,
                                                         gdouble ymin,
                                                         gdouble xmax,
                                                         gdouble ymax,
                                                         gint width);
void                wms_cache_node_free                 (WmsCacheNode *node,
                                                         WmsFreeer freeer);
WmsInfo *           wms_info_new                        (WmsLoader loader,
                                                         WmsFreeer freeer,
                                                         gchar *uri_prefix,
                                                         gchar *uri_layer,
                                                         gchar *uri_format,
                                                         gchar *cache_prefix,
                                                         gchar *cache_ext,
                                                         gint resolution,
                                                         gint width,
                                                         gint height);
void                wms_info_cache                      (WmsInfo *info,
                                                         gdouble resolution,
                                                         gdouble lat,
                                                         gdouble lon,
                                                         WmsChunkCallback chunk_callback,
                                                         WmsDoneCallback done_callback,
                                                         gpointer user_data);
WmsCacheNode *      wms_info_fetch                      (WmsInfo *info,
                                                         WmsCacheNode *root,
                                                         gdouble resolution,
                                                         gdouble lat,
                                                         gdouble lon,
                                                         gboolean *correct);
WmsCacheNode *      wms_info_fetch_cache                (WmsInfo *info,
                                                         WmsCacheNode *root,
                                                         gdouble resolution,
                                                         gdouble lat,
                                                         gdouble lon,
                                                         WmsChunkCallback chunk_callback,
                                                         WmsDoneCallback done_callback,
                                                         gpointer user_data);
gboolean            wms_info_gc                         (WmsInfo *self);
void                wms_info_free                       (WmsInfo *info);
                    WmsBil;
void                bmng_opengl_loader                  (WmsCacheNode *node,
                                                         const gchar *path,
                                                         gint width,
                                                         gint height);
void                bmng_opengl_freeer                  (WmsCacheNode *node);
void                bmng_pixbuf_loader                  (WmsCacheNode *node,
                                                         const gchar *path,
                                                         gint width,
                                                         gint height);
void                bmng_pixbuf_freeer                  (WmsCacheNode *node);
WmsInfo *           wms_info_new_for_bmng               (WmsLoader loader,
                                                         WmsFreeer freeer);
void                srtm_bil_loader                     (WmsCacheNode *node,
                                                         const gchar *path,
                                                         gint width,
                                                         gint height);
void                srtm_bil_freeer                     (WmsCacheNode *node);
void                srtm_pixbuf_loader                  (WmsCacheNode *node,
                                                         const gchar *path,
                                                         gint width,
                                                         gint height);
void                srtm_pixbuf_freeer                  (WmsCacheNode *node);
WmsInfo *           wms_info_new_for_srtm               (WmsLoader loader,
                                                         WmsFreeer freeer);

Description

Details

WmsCacheNode

typedef struct {
	gpointer data;
	gdouble  latlon[4]; // xmin,ymin,xmax,ymax
	gdouble  res;       // xmin,ymin,xmax,ymax
	gboolean caching;
	time_t   atime;
	WmsCacheNode *parent;
	WmsCacheNode *children[4][4];
} WmsCacheNode;


WmsInfo

typedef struct {
	gchar *uri_prefix;
	gchar *uri_layer;
	gchar *uri_format;
	gchar *cache_prefix;
	gchar *cache_ext;
	gint   resolution;  // m/px
	gint   width;
	gint   height;

	guint  max_age;
	guint  gc_source;
	time_t atime;
	WmsLoader     loader;
	WmsFreeer     freeer;
	WmsCacheNode *cache_root;
	SoupSession  *soup;
} WmsInfo;


WmsChunkCallback ()

void                (*WmsChunkCallback)                 (gsize cur,
                                                         gsize total,
                                                         gpointer user_data);

cur :

total :

user_data :


WmsDoneCallback ()

void                (*WmsDoneCallback)                  (WmsCacheNode *node,
                                                         gpointer user_data);

node :

user_data :


WmsLoader ()

void                (*WmsLoader)                        (WmsCacheNode *node,
                                                         const gchar *path,
                                                         gint width,
                                                         gint height);

node :

path :

width :

height :


WmsFreeer ()

void                (*WmsFreeer)                        (WmsCacheNode *node);

node :


wms_cache_node_new ()

WmsCacheNode *      wms_cache_node_new                  (WmsCacheNode *parent,
                                                         gdouble xmin,
                                                         gdouble ymin,
                                                         gdouble xmax,
                                                         gdouble ymax,
                                                         gint width);

parent :

xmin :

ymin :

xmax :

ymax :

width :

Returns :


wms_cache_node_free ()

void                wms_cache_node_free                 (WmsCacheNode *node,
                                                         WmsFreeer freeer);

node :

freeer :


wms_info_new ()

WmsInfo *           wms_info_new                        (WmsLoader loader,
                                                         WmsFreeer freeer,
                                                         gchar *uri_prefix,
                                                         gchar *uri_layer,
                                                         gchar *uri_format,
                                                         gchar *cache_prefix,
                                                         gchar *cache_ext,
                                                         gint resolution,
                                                         gint width,
                                                         gint height);

loader :

freeer :

uri_prefix :

uri_layer :

uri_format :

cache_prefix :

cache_ext :

resolution :

width :

height :

Returns :


wms_info_cache ()

void                wms_info_cache                      (WmsInfo *info,
                                                         gdouble resolution,
                                                         gdouble lat,
                                                         gdouble lon,
                                                         WmsChunkCallback chunk_callback,
                                                         WmsDoneCallback done_callback,
                                                         gpointer user_data);

info :

resolution :

lat :

lon :

chunk_callback :

done_callback :

user_data :


wms_info_fetch ()

WmsCacheNode *      wms_info_fetch                      (WmsInfo *info,
                                                         WmsCacheNode *root,
                                                         gdouble resolution,
                                                         gdouble lat,
                                                         gdouble lon,
                                                         gboolean *correct);

info :

root :

resolution :

lat :

lon :

correct :

Returns :


wms_info_fetch_cache ()

WmsCacheNode *      wms_info_fetch_cache                (WmsInfo *info,
                                                         WmsCacheNode *root,
                                                         gdouble resolution,
                                                         gdouble lat,
                                                         gdouble lon,
                                                         WmsChunkCallback chunk_callback,
                                                         WmsDoneCallback done_callback,
                                                         gpointer user_data);

info :

root :

resolution :

lat :

lon :

chunk_callback :

done_callback :

user_data :

Returns :


wms_info_gc ()

gboolean            wms_info_gc                         (WmsInfo *self);

self :

Returns :


wms_info_free ()

void                wms_info_free                       (WmsInfo *info);

info :


WmsBil

typedef struct {
	gint16 *data;
	gint width;
	gint height;
} WmsBil;


bmng_opengl_loader ()

void                bmng_opengl_loader                  (WmsCacheNode *node,
                                                         const gchar *path,
                                                         gint width,
                                                         gint height);

node :

path :

width :

height :


bmng_opengl_freeer ()

void                bmng_opengl_freeer                  (WmsCacheNode *node);

node :


bmng_pixbuf_loader ()

void                bmng_pixbuf_loader                  (WmsCacheNode *node,
                                                         const gchar *path,
                                                         gint width,
                                                         gint height);

node :

path :

width :

height :


bmng_pixbuf_freeer ()

void                bmng_pixbuf_freeer                  (WmsCacheNode *node);

node :


wms_info_new_for_bmng ()

WmsInfo *           wms_info_new_for_bmng               (WmsLoader loader,
                                                         WmsFreeer freeer);

loader :

freeer :

Returns :


srtm_bil_loader ()

void                srtm_bil_loader                     (WmsCacheNode *node,
                                                         const gchar *path,
                                                         gint width,
                                                         gint height);

node :

path :

width :

height :


srtm_bil_freeer ()

void                srtm_bil_freeer                     (WmsCacheNode *node);

node :


srtm_pixbuf_loader ()

void                srtm_pixbuf_loader                  (WmsCacheNode *node,
                                                         const gchar *path,
                                                         gint width,
                                                         gint height);

node :

path :

width :

height :


srtm_pixbuf_freeer ()

void                srtm_pixbuf_freeer                  (WmsCacheNode *node);

node :


wms_info_new_for_srtm ()

WmsInfo *           wms_info_new_for_srtm               (WmsLoader loader,
                                                         WmsFreeer freeer);

loader :

freeer :

Returns :