[libchamplain] Documentation of the new loading chain.
- From: Pierre-Luc Beaudoin <plbeaudoin src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [libchamplain] Documentation of the new loading chain.
- Date: Mon, 1 Feb 2010 21:41:52 +0000 (UTC)
commit a2dea0eeb45f145b7d8869111abb7c4d57a9f76c
Author: JiÅ?Ã Techet <techet gmail com>
Date: Tue Jan 26 00:06:54 2010 +0100
Documentation of the new loading chain.
Added documentation comments for the new classes and functions. Some
minor function renames and moving around.
Signed-off-by: JiÅ?Ã Techet <techet gmail com>
champlain/champlain-bounding-box.h | 4 +
champlain/champlain-error-tile-source.c | 19 ++
champlain/champlain-file-cache.c | 98 +++++++++
champlain/champlain-map-data-source.c | 2 +-
champlain/champlain-map-source-chain.c | 44 ++++-
champlain/champlain-map-source-chain.h | 2 +-
champlain/champlain-map-source-factory.c | 14 ++-
champlain/champlain-map-source.c | 251 ++++++++++++++++++++++-
champlain/champlain-map-source.h | 7 +
champlain/champlain-marker.c | 3 +-
champlain/champlain-memphis-tile-source.c | 31 ++--
champlain/champlain-network-map-data-source.c | 6 +-
champlain/champlain-network-tile-source.c | 117 +++++++++++
champlain/champlain-network-tile-source.h | 12 +-
champlain/champlain-tile-cache.c | 87 ++++++++-
champlain/champlain-tile-source.c | 207 +++++++++++++++++--
champlain/champlain-tile-source.h | 13 +-
champlain/champlain-tile.c | 1 +
docs/reference/libchamplain-docs.sgml | 10 +-
docs/reference/libchamplain-sections.txt | 272 +++++++++++++++++--------
docs/reference/libchamplain.types | 7 +
21 files changed, 1055 insertions(+), 152 deletions(-)
---
diff --git a/champlain/champlain-bounding-box.h b/champlain/champlain-bounding-box.h
index 28b33ec..3bf5a8f 100644
--- a/champlain/champlain-bounding-box.h
+++ b/champlain/champlain-bounding-box.h
@@ -33,6 +33,10 @@ typedef struct _ChamplainBoundingBox ChamplainBoundingBox;
/**
* ChamplainBoundingBox:
+ * @left: left coordinate
+ * @bottom: bottom coordinate
+ * @right: right coordinate
+ * @top: top coordinate
*
* Defines the area of a ChamplainMapDataSource that contains data.
*
diff --git a/champlain/champlain-error-tile-source.c b/champlain/champlain-error-tile-source.c
index 05c9211..d4b5df7 100644
--- a/champlain/champlain-error-tile-source.c
+++ b/champlain/champlain-error-tile-source.c
@@ -17,6 +17,15 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+/**
+ * SECTION:champlain-error-tile-source
+ * @short_description: A map source displaying error tiles
+ *
+ * #ChamplainErrorTileSource always fills a tile with error tile image.
+ * Applications can create their own error tile sources to change the look
+ * of the error tile.
+ */
+
#include "champlain-error-tile-source.h"
G_DEFINE_TYPE (ChamplainErrorTileSource, champlain_error_tile_source, CHAMPLAIN_TYPE_TILE_SOURCE);
@@ -65,6 +74,16 @@ champlain_error_tile_source_init (ChamplainErrorTileSource *error_source)
priv->error_actor = NULL;
}
+/**
+ * champlain_error_tile_source_new_full:
+ * @tile_size: size of the error tile
+ *
+ * Constructor of #ChamplainErrorTileSource.
+ *
+ * Returns: a constructed #ChamplainErrorTileSource
+ *
+ * Since: 0.6
+ */
ChamplainErrorTileSource* champlain_error_tile_source_new_full (guint tile_size)
{
return g_object_new (CHAMPLAIN_TYPE_ERROR_TILE_SOURCE, "tile-size", tile_size, NULL);
diff --git a/champlain/champlain-file-cache.c b/champlain/champlain-file-cache.c
index c534cf1..a9c69d4 100644
--- a/champlain/champlain-file-cache.c
+++ b/champlain/champlain-file-cache.c
@@ -17,6 +17,16 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+/**
+ * SECTION:champlain-file-cache
+ * @short_description: Stores and loads cached tiles from the file system
+ *
+ * #ChamplainFileCache is a map source that stores and retrieves tiles from the
+ * file system. It can be temporary (deleted when the object is destroyed) or
+ * permanent. Tiles most frequently loaded gain in "popularity". This popularity
+ * is taken into account when purging the cache.
+ */
+
#define DEBUG_FLAG CHAMPLAIN_DEBUG_CACHE
#include "champlain-debug.h"
@@ -319,6 +329,15 @@ champlain_file_cache_class_init (ChamplainFileCacheClass *klass)
object_class->set_property = champlain_file_cache_set_property;
object_class->constructed = champlain_file_cache_constructed;
+ /**
+ * ChamplainFileCache:size-limit:
+ *
+ * The cache size limit in bytes.
+ *
+ * Note: this new value will not be applied until you call #champlain_cache_purge
+ *
+ * Since: 0.4
+ */
pspec = g_param_spec_uint ("size-limit",
"Size Limit",
"The cache's size limit (Mb)",
@@ -328,6 +347,13 @@ champlain_file_cache_class_init (ChamplainFileCacheClass *klass)
G_PARAM_CONSTRUCT | G_PARAM_READWRITE);
g_object_class_install_property (object_class, PROP_SIZE_LIMIT, pspec);
+ /**
+ * ChamplainFileCache:cache-dir:
+ *
+ * The directory where the tile database is stored.
+ *
+ * Since: 0.6
+ */
pspec = g_param_spec_string ("cache-dir",
"Cache Directory",
"The directory of the cache",
@@ -357,6 +383,16 @@ champlain_file_cache_init (ChamplainFileCache *file_cache)
priv->stmt_update = NULL;
}
+/**
+ * champlain_file_cache_new:
+ *
+ * Default constructor of #ChamplainFileCache.
+ *
+ * Returns: a constructed permanent cache of maximal size 100000000 B inside
+ * ~/.cache/champlain.
+ *
+ * Since: 0.6
+ */
ChamplainFileCache* champlain_file_cache_new (void)
{
gchar *cache_path;
@@ -370,6 +406,22 @@ ChamplainFileCache* champlain_file_cache_new (void)
return cache;
}
+/**
+ * champlain_file_cache_new_full:
+ * @size_limit: maximal size of the cache in bytes
+ * @cache_dir: the directory where the cache is created. For temporary caches
+ * one more directory with random name is created inside this directory.
+ * When cache_dir == NULL, a cache in ~/.cache/champlain is used for permanent
+ * caches and /tmp for temporary caches.
+ * @persistent: if TRUE, the cache is persistent; otherwise the cache is
+ * temporary and will be deleted when the cache object is destructed.
+ *
+ * Constructor of #ChamplainFileCache.
+ *
+ * Returns: a constructed #ChamplainFileCache
+ *
+ * Since: 0.6
+ */
ChamplainFileCache* champlain_file_cache_new_full (guint size_limit,
const gchar *cache_dir, gboolean persistent)
{
@@ -379,6 +431,16 @@ ChamplainFileCache* champlain_file_cache_new_full (guint size_limit,
return cache;
}
+/**
+ * champlain_file_cache_get_size_limit:
+ * @file_cache: a #ChamplainCache
+ *
+ * Gets the cache size limit in bytes.
+ *
+ * Returns: size limit
+ *
+ * Since: 0.4
+ */
guint
champlain_file_cache_get_size_limit (ChamplainFileCache *file_cache)
{
@@ -388,6 +450,16 @@ champlain_file_cache_get_size_limit (ChamplainFileCache *file_cache)
return priv->size_limit;
}
+/**
+ * champlain_file_cache_get_cache_dir:
+ * @file_cache: a #ChamplainCache
+ *
+ * Gets the directory where the cache database is stored.
+ *
+ * Returns: the directory
+ *
+ * Since: 0.6
+ */
const gchar *
champlain_file_cache_get_cache_dir (ChamplainFileCache *file_cache)
{
@@ -397,6 +469,15 @@ champlain_file_cache_get_cache_dir (ChamplainFileCache *file_cache)
return priv->cache_dir;
}
+/**
+ * champlain_file_cache_set_size_limit:
+ * @file_cache: a #ChamplainCache
+ * @size_limit: the cache limit in bytes
+ *
+ * Sets the cache size limit in bytes.
+ *
+ * Since: 0.4
+ */
void
champlain_file_cache_set_size_limit (ChamplainFileCache *file_cache,
guint size_limit)
@@ -782,6 +863,15 @@ purge_on_idle (gpointer data)
return FALSE;
}
+/**
+ * champlain_file_cache_purge_on_idle:
+ * @file_cache: a #ChamplainCache
+ *
+ * Purge the cache from the less popular tiles until cache's size limit is reached.
+ * This is a non blocking call as the purge will happen when the application is idle
+ *
+ * Since: 0.4
+ */
void
champlain_file_cache_purge_on_idle (ChamplainFileCache *file_cache)
{
@@ -789,6 +879,14 @@ champlain_file_cache_purge_on_idle (ChamplainFileCache *file_cache)
g_idle_add (purge_on_idle, file_cache);
}
+/**
+ * champlain_file_cache_purge:
+ * @file_cache: a #ChamplainCache
+ *
+ * Purge the cache from the less popular tiles until cache's size limit is reached.
+ *
+ * Since: 0.4
+ */
void
champlain_file_cache_purge (ChamplainFileCache *file_cache)
{
diff --git a/champlain/champlain-map-data-source.c b/champlain/champlain-map-data-source.c
index 9e88335..fb3fcc1 100644
--- a/champlain/champlain-map-data-source.c
+++ b/champlain/champlain-map-data-source.c
@@ -193,7 +193,7 @@ champlain_map_data_source_init (ChamplainMapDataSource *self)
* champlain_map_data_source_get_map_data:
* @data_source: a #ChamplainMapDataSource
*
- * Returns the #MemphisMap of the data source or NULL.
+ * Returns: the #MemphisMap of the data source or NULL.
*
* Since: 0.6
*/
diff --git a/champlain/champlain-map-source-chain.c b/champlain/champlain-map-source-chain.c
index 040e69a..38a97e1 100644
--- a/champlain/champlain-map-source-chain.c
+++ b/champlain/champlain-map-source-chain.c
@@ -16,6 +16,20 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+/**
+ * SECTION:champlain-map-source-chain
+ * @short_description: A map source simplifying creation of source chains
+ *
+ * This map source simplifies creation of map chains by providing two
+ * functions for their creation and modification in a stack-like manner:
+ * champlain_map_source_chain_push() and champlain_map_source_chain_pop().
+ * For instance, to create a chain consisting of #ChamplainFileCache,
+ * #ChamplainNetworkTileSource and #ChamplainErrorTileSource, the map
+ * sources have to be pushed into the chain in the reverse order starting
+ * from #ChamplainErrorTileSource. After its creation, #ChamplainMapSourceChain
+ * behaves as a chain of map sources it contains.
+ */
+
#include "champlain-map-source-chain.h"
#include "champlain-tile-cache.h"
#include "champlain-tile-source.h"
@@ -49,7 +63,7 @@ champlain_map_source_chain_dispose (GObject *object)
ChamplainMapSourceChainPrivate *priv = GET_PRIVATE(object);
while (priv->stack_top)
- champlain_map_source_chain_pop_map_source (source_chain);
+ champlain_map_source_chain_pop (source_chain);
G_OBJECT_CLASS (champlain_map_source_chain_parent_class)->dispose (object);
}
@@ -91,6 +105,15 @@ champlain_map_source_chain_init (ChamplainMapSourceChain *source_chain)
priv->sig_handler_id = 0;
}
+/**
+ * champlain_map_source_chain_new:
+ *
+ * Constructor of #ChamplainMapSourceChain.
+ *
+ * Returns: a new empty #ChamplainMapSourceChain.
+ *
+ * Since: 0.6
+ */
ChamplainMapSourceChain* champlain_map_source_chain_new (void)
{
return g_object_new (CHAMPLAIN_TYPE_MAP_SOURCE_CHAIN, NULL);
@@ -219,6 +242,15 @@ void reload_tiles_cb (ChamplainMapSource *map_source, ChamplainMapSourceChain *s
g_signal_emit_by_name (source_chain, "reload-tiles", NULL);
}
+/**
+ * champlain_map_source_chain_push:
+ * @source_chain: a #ChamplainMapSourceChain
+ * @map_source: the #ChamplainMapSource to be pushed into the chain
+ *
+ * Pushes a map source into the chain.
+ *
+ * Since: 0.6
+ */
void champlain_map_source_chain_push (ChamplainMapSourceChain *source_chain, ChamplainMapSource *map_source)
{
ChamplainMapSourceChainPrivate *priv = GET_PRIVATE(source_chain);
@@ -256,7 +288,15 @@ void champlain_map_source_chain_push (ChamplainMapSourceChain *source_chain, Cha
G_CALLBACK (reload_tiles_cb), source_chain);
}
-void champlain_map_source_chain_pop_map_source (ChamplainMapSourceChain *source_chain)
+/**
+ * champlain_map_source_chain_pop:
+ * @source_chain: a #ChamplainMapSourceChain
+ *
+ * Pops the map source from the top of the stack from the chain.
+ *
+ * Since: 0.6
+ */
+void champlain_map_source_chain_pop (ChamplainMapSourceChain *source_chain)
{
ChamplainMapSourceChainPrivate *priv = GET_PRIVATE(source_chain);
ChamplainMapSource *old_stack_top = priv->stack_top;
diff --git a/champlain/champlain-map-source-chain.h b/champlain/champlain-map-source-chain.h
index 92d22c7..986424a 100644
--- a/champlain/champlain-map-source-chain.h
+++ b/champlain/champlain-map-source-chain.h
@@ -54,7 +54,7 @@ GType champlain_map_source_chain_get_type (void);
ChamplainMapSourceChain* champlain_map_source_chain_new (void);
void champlain_map_source_chain_push (ChamplainMapSourceChain *source_chain, ChamplainMapSource *map_source);
-void champlain_map_source_chain_pop_map_source (ChamplainMapSourceChain *source_chain);
+void champlain_map_source_chain_pop (ChamplainMapSourceChain *source_chain);
G_END_DECLS
diff --git a/champlain/champlain-map-source-factory.c b/champlain/champlain-map-source-factory.c
index eaeb393..e21e509 100644
--- a/champlain/champlain-map-source-factory.c
+++ b/champlain/champlain-map-source-factory.c
@@ -18,7 +18,7 @@
/**
* SECTION:champlain-map-source-factory
- * @short_description: Manages #ChamplainMapSource
+ * @short_description: Manages #ChamplainMapSource instances
*
* This factory manages the create of #ChamplainMapSource. It contains names
* and constructor functions for each available map sources in libchamplain.
@@ -328,6 +328,7 @@ champlain_map_source_factory_dup_default (void)
/**
* champlain_map_source_factory_dup_list:
+ * @factory: the Factory
*
* Returns: the list of registered map sources, the items should not be freed,
* the list should be freed with #g_slist_free.
@@ -372,6 +373,17 @@ champlain_map_source_factory_create (ChamplainMapSourceFactory *factory,
return NULL;
}
+/**
+ * champlain_map_source_factory_create_cached_source:
+ * @factory: the Factory
+ * @id: the wanted map source id
+ *
+ * Returns: a ready to use #ChamplainMapSourceChain consisting of
+ * #ChamplainFileCache, #ChamplainMapSource matching the given name, and
+ * #ChamplainErrorTileSource.
+ *
+ * Since: 0.6
+ */
ChamplainMapSource * champlain_map_source_factory_create_cached_source (ChamplainMapSourceFactory *factory,
const gchar *id)
{
diff --git a/champlain/champlain-map-source.c b/champlain/champlain-map-source.c
index 04c9989..98c0c7c 100644
--- a/champlain/champlain-map-source.c
+++ b/champlain/champlain-map-source.c
@@ -16,6 +16,40 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+/**
+ * SECTION:champlain-map-source
+ * @short_description: A base class for map sources
+ *
+ * #ChamplainTile objects come from map sources which are represented by
+ * #ChamplainMapSource. This is should be considered an abstract
+ * type as it does nothing of interest.
+ *
+ * When loading new tiles, #ChamplainView calls champlain_map_source_fill_tile()
+ * on the current #ChamplainMapSource passing it a #ChamplainTile to be filled
+ * with the image.
+ *
+ * Apart from being a base class of all map sources, #ChamplainMapSource
+ * also supports cooperation of multiple map sources by arranging them into
+ * chains. Every map source has the #ChamplainMapSource::next-source property
+ * that determines the next map source in the chain. When a function of
+ * a #ChamplainMapSource object is invoked, the map source may decide to
+ * delegate the work to the next map source in the chain by invoking the
+ * same function on it.
+
+ * To undertand the concept of chains, consider for instance a chain
+ * consisting of #ChamplainFileCache whose next source is
+ * #ChamplainNetworkTileSource whose next source is #ChamplainErrorTileSource.
+ * When champlain_map_source_fill_tile() is called on the first object of the
+ * chain, #ChamplainFileCache, the cache checks whether it contains the
+ * requested tile in its database. If it does, it returns the tile; otherwise,
+ * it calls champlain_map_source_fill_tile() on the next source in the chain
+ * (#ChamplainNetworkTileSource). The network tile source loads the tile
+ * from the network. When successful, it returns the tile; otherwise it requests
+ * the tile from the next source in the chain (#ChamplainErrorTileSource).
+ * #ChamplainErrorTileSource always generates an error tile, no matter what
+ * its next source is.
+ */
+
#include "champlain-map-source.h"
#include <math.h>
@@ -136,9 +170,17 @@ champlain_map_source_class_init (ChamplainMapSourceClass *klass)
klass->get_min_zoom_level = NULL;
klass->get_max_zoom_level = NULL;
klass->get_tile_size = NULL;
+ klass->get_projection = NULL;
klass->fill_tile = NULL;
+ /**
+ * ChamplainMapSource:next-source:
+ *
+ * Next source in the loading chain.
+ *
+ * Since: 0.6
+ */
pspec = g_param_spec_object ("next-source",
"Next Source",
"Next source in the loading chain",
@@ -150,8 +192,8 @@ champlain_map_source_class_init (ChamplainMapSourceClass *klass)
* ChamplainMapSource::reload-tiles:
* @map_source: the #ChamplainMapSource that received the signal
*
- * The ::reload-tiles signal is emitted when the map source changed
- * its style or data
+ * The ChamplainMapSource::reload-tiles signal is emitted when the map source
+ * changed its style or data
*
* Since: 0.6
*/
@@ -170,6 +212,16 @@ champlain_map_source_init (ChamplainMapSource *map_source)
priv->sig_handler_id = 0;
}
+/**
+ * champlain_map_source_get_next_source:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Get the next source in the chain.
+ *
+ * Returns: the next source in the chain.
+ *
+ * Since: 0.6
+ */
ChamplainMapSource *
champlain_map_source_get_next_source (ChamplainMapSource *map_source)
{
@@ -186,6 +238,15 @@ void reload_tiles_cb (ChamplainMapSource *orig, ChamplainMapSource *self)
g_signal_emit_by_name (self, "reload-tiles", NULL);
}
+/**
+ * champlain_map_source_set_next_source:
+ * @map_source: a #ChamplainMapSource
+ * @next_source: the next #ChamplainMapSource in the chain
+ *
+ * Sets the next map source in the chain.
+ *
+ * Since: 0.6
+ */
void
champlain_map_source_set_next_source (ChamplainMapSource *map_source,
ChamplainMapSource *next_source)
@@ -217,6 +278,16 @@ champlain_map_source_set_next_source (ChamplainMapSource *map_source,
g_object_notify (G_OBJECT (map_source), "next-source");
}
+/**
+ * champlain_map_source_get_id:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Gets map source's id.
+ *
+ * Returns: the map source's id.
+ *
+ * Since: 0.4
+ */
const gchar *
champlain_map_source_get_id (ChamplainMapSource *map_source)
{
@@ -225,6 +296,16 @@ champlain_map_source_get_id (ChamplainMapSource *map_source)
return CHAMPLAIN_MAP_SOURCE_GET_CLASS (map_source)->get_id (map_source);
}
+/**
+ * champlain_map_source_get_name:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Gets map source's name.
+ *
+ * Returns: the map source's name.
+ *
+ * Since: 0.4
+ */
const gchar *
champlain_map_source_get_name (ChamplainMapSource *map_source)
{
@@ -233,6 +314,16 @@ champlain_map_source_get_name (ChamplainMapSource *map_source)
return CHAMPLAIN_MAP_SOURCE_GET_CLASS (map_source)->get_name (map_source);
}
+/**
+ * champlain_map_source_get_license:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Gets map source's license.
+ *
+ * Returns: the map source's license.
+ *
+ * Since: 0.4
+ */
const gchar *
champlain_map_source_get_license (ChamplainMapSource *map_source)
{
@@ -241,6 +332,16 @@ champlain_map_source_get_license (ChamplainMapSource *map_source)
return CHAMPLAIN_MAP_SOURCE_GET_CLASS (map_source)->get_license (map_source);
}
+/**
+ * champlain_map_source_get_license_uri:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Gets map source's license URI.
+ *
+ * Returns: the map source's license URI.
+ *
+ * Since: 0.4
+ */
const gchar *
champlain_map_source_get_license_uri (ChamplainMapSource *map_source)
{
@@ -249,6 +350,16 @@ champlain_map_source_get_license_uri (ChamplainMapSource *map_source)
return CHAMPLAIN_MAP_SOURCE_GET_CLASS (map_source)->get_license_uri (map_source);
}
+/**
+ * champlain_map_source_get_min_zoom_level:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Gets map source's minimum zoom level.
+ *
+ * Returns: the miminum zoom level this map source supports
+ *
+ * Since: 0.4
+ */
guint
champlain_map_source_get_min_zoom_level (ChamplainMapSource *map_source)
{
@@ -257,6 +368,16 @@ champlain_map_source_get_min_zoom_level (ChamplainMapSource *map_source)
return CHAMPLAIN_MAP_SOURCE_GET_CLASS (map_source)->get_min_zoom_level (map_source);
}
+/**
+ * champlain_map_source_get_max_zoom_level:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Gets map source's maximum zoom level.
+ *
+ * Returns: the maximum zoom level this map source supports
+ *
+ * Since: 0.4
+ */
guint
champlain_map_source_get_max_zoom_level (ChamplainMapSource *map_source)
{
@@ -265,6 +386,16 @@ champlain_map_source_get_max_zoom_level (ChamplainMapSource *map_source)
return CHAMPLAIN_MAP_SOURCE_GET_CLASS (map_source)->get_max_zoom_level (map_source);
}
+/**
+ * champlain_map_source_get_tile_size:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Gets map source's tile size.
+ *
+ * Returns: the tile's size (width and height) in pixels for this map source
+ *
+ * Since: 0.4
+ */
guint
champlain_map_source_get_tile_size (ChamplainMapSource *map_source)
{
@@ -273,6 +404,37 @@ champlain_map_source_get_tile_size (ChamplainMapSource *map_source)
return CHAMPLAIN_MAP_SOURCE_GET_CLASS (map_source)->get_tile_size (map_source);
}
+/**
+ * champlain_map_source_get_projection:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Gets map source's projection.
+ *
+ * Returns: the map source's projection.
+ *
+ * Since: 0.4
+ */
+ChamplainMapProjection
+champlain_map_source_get_projection (ChamplainMapSource *map_source)
+{
+ g_return_val_if_fail (CHAMPLAIN_IS_MAP_SOURCE (map_source), CHAMPLAIN_MAP_PROJECTION_MERCATOR);
+
+ return CHAMPLAIN_MAP_SOURCE_GET_CLASS (map_source)->get_projection (map_source);
+}
+
+/**
+ * champlain_map_source_get_x:
+ * @map_source: a #ChamplainMapSource
+ * @zoom_level: the zoom level
+ * @longitude: a longitude
+ *
+ * Gets the x position on the map using this map source's projection.
+ * (0, 0) is located at the top left.
+ *
+ * Returns: the x position
+ *
+ * Since: 0.4
+ */
guint
champlain_map_source_get_x (ChamplainMapSource *map_source,
guint zoom_level,
@@ -284,6 +446,19 @@ champlain_map_source_get_x (ChamplainMapSource *map_source,
return ((longitude + 180.0) / 360.0 * pow (2.0, zoom_level)) * champlain_map_source_get_tile_size (map_source);
}
+/**
+ * champlain_map_source_get_y:
+ * @map_source: a #ChamplainMapSource
+ * @zoom_level: the zoom level
+ * @latitude: a latitude
+ *
+ * Gets the y position on the map using this map source's projection.
+ * (0, 0) is located at the top left.
+ *
+ * Returns: the y position
+ *
+ * Since: 0.4
+ */
guint
champlain_map_source_get_y (ChamplainMapSource *map_source,
guint zoom_level,
@@ -297,6 +472,19 @@ champlain_map_source_get_y (ChamplainMapSource *map_source,
M_PI) / 2.0 * pow (2.0, zoom_level)) * champlain_map_source_get_tile_size (map_source);
}
+/**
+ * champlain_map_source_get_longitude:
+ * @map_source: a #ChamplainMapSource
+ * @zoom_level: the zoom level
+ * @x: a x position
+ *
+ * Gets the longitude corresponding to this x position in the map source's
+ * projection.
+ *
+ * Returns: the longitude
+ *
+ * Since: 0.4
+ */
gdouble
champlain_map_source_get_longitude (ChamplainMapSource *map_source,
guint zoom_level,
@@ -309,6 +497,19 @@ champlain_map_source_get_longitude (ChamplainMapSource *map_source,
return dx / pow (2.0, zoom_level) * 360.0 - 180;
}
+/**
+ * champlain_map_source_get_latitude:
+ * @map_source: a #ChamplainMapSource
+ * @zoom_level: the zoom level
+ * @y: a y position
+ *
+ * Gets the latitude corresponding to this y position in the map source's
+ * projection.
+ *
+ * Returns: the latitude
+ *
+ * Since: 0.4
+ */
gdouble
champlain_map_source_get_latitude (ChamplainMapSource *map_source,
guint zoom_level,
@@ -322,6 +523,17 @@ champlain_map_source_get_latitude (ChamplainMapSource *map_source,
return 180.0 / M_PI * atan (0.5 * (exp (n) - exp (-n)));
}
+/**
+ * champlain_map_source_get_row_count:
+ * @map_source: a #ChamplainMapSource
+ * @zoom_level: the zoom level
+ *
+ * Gets the number of tiles in a row at this zoom level for this map source.
+ *
+ * Returns: the number of tiles in a row
+ *
+ * Since: 0.4
+ */
guint
champlain_map_source_get_row_count (ChamplainMapSource *map_source,
guint zoom_level)
@@ -333,6 +545,18 @@ champlain_map_source_get_row_count (ChamplainMapSource *map_source,
return pow (2, zoom_level);
}
+/**
+ * champlain_map_source_get_column_count:
+ * @map_source: a #ChamplainMapSource
+ * @zoom_level: the zoom level
+ *
+ * Gets the number of tiles in a column at this zoom level for this map
+ * source.
+ *
+ * Returns: the number of tiles in a column
+ *
+ * Since: 0.4
+ */
guint
champlain_map_source_get_column_count (ChamplainMapSource *map_source,
guint zoom_level)
@@ -346,6 +570,19 @@ champlain_map_source_get_column_count (ChamplainMapSource *map_source,
#define EARTH_RADIUS 6378137.0 /* meters, Equatorial radius */
+/**
+ * champlain_map_source_get_meters_per_pixel:
+ * @map_source: a #ChamplainMapSource
+ * @zoom_level: the zoom level
+ * @latitude: a latitude
+ * @longitude: a longitude
+ *
+ * Gets meters per pixel at the position on the map using this map source's projection.
+ *
+ * Returns: the meters per pixel
+ *
+ * Since: 0.4.3
+ */
gdouble
champlain_map_source_get_meters_per_pixel (ChamplainMapSource *map_source,
guint zoom_level,
@@ -366,6 +603,16 @@ champlain_map_source_get_meters_per_pixel (ChamplainMapSource *map_source,
(tile_size * champlain_map_source_get_row_count (map_source, zoom_level));
}
+/**
+ * champlain_map_source_fill_tile:
+ * @map_source: a #ChamplainMapSource
+ * @tile: A #ChamplainTile
+ *
+ * Fills the tile with image data (either from cache, network or rendered
+ * locally).
+ *
+ * Since: 0.4
+ */
void
champlain_map_source_fill_tile (ChamplainMapSource *map_source,
ChamplainTile *tile)
diff --git a/champlain/champlain-map-source.h b/champlain/champlain-map-source.h
index 7436b33..c05cc7b 100644
--- a/champlain/champlain-map-source.h
+++ b/champlain/champlain-map-source.h
@@ -38,6 +38,11 @@ G_BEGIN_DECLS
typedef struct _ChamplainMapSourceClass ChamplainMapSourceClass;
+typedef enum
+{
+ CHAMPLAIN_MAP_PROJECTION_MERCATOR
+} ChamplainMapProjection;
+
struct _ChamplainMapSource
{
GInitiallyUnowned parent_instance;
@@ -54,6 +59,7 @@ struct _ChamplainMapSourceClass
guint (*get_min_zoom_level) (ChamplainMapSource *map_source);
guint (*get_max_zoom_level) (ChamplainMapSource *map_source);
guint (*get_tile_size) (ChamplainMapSource *map_source);
+ ChamplainMapProjection (*get_projection) (ChamplainMapSource *map_source);
void (*fill_tile) (ChamplainMapSource *map_source,
ChamplainTile *tile);
@@ -72,6 +78,7 @@ const gchar * champlain_map_source_get_license_uri (ChamplainMapSource *map_sour
guint champlain_map_source_get_min_zoom_level (ChamplainMapSource *map_source);
guint champlain_map_source_get_max_zoom_level (ChamplainMapSource *map_source);
guint champlain_map_source_get_tile_size (ChamplainMapSource *map_source);
+ChamplainMapProjection champlain_map_source_get_projection (ChamplainMapSource *map_source);
guint champlain_map_source_get_x (ChamplainMapSource *map_source,
guint zoom_level,
diff --git a/champlain/champlain-marker.c b/champlain/champlain-marker.c
index 1665a03..51cd107 100644
--- a/champlain/champlain-marker.c
+++ b/champlain/champlain-marker.c
@@ -718,7 +718,8 @@ redraw_on_idle (gpointer gobject)
return FALSE;
}
-/** champlain_marker_queue_redraw:
+/**
+ * champlain_marker_queue_redraw:
* @marker: a #ChamplainMarker
*
* Queue a redraw of the marker as soon as possible. This function should not
diff --git a/champlain/champlain-memphis-tile-source.c b/champlain/champlain-memphis-tile-source.c
index b83fcb6..a2fa284 100644
--- a/champlain/champlain-memphis-tile-source.c
+++ b/champlain/champlain-memphis-tile-source.c
@@ -35,11 +35,6 @@
* (TODO: link to the specification) The default rules only show
* highways as thin black lines.
* Once loaded, rules can be queried and edited.
- *
- * Rendered tiles are cached. The cache is deleted if the map data or rules
- * are changed. This is the default behaviour, but it can be disabled with the
- * #ChamplainMemphisTileSource:persistent-cache property. A persistent cache
- * has to be managed by the client application.
*/
#include "champlain-memphis-tile-source.h"
@@ -583,9 +578,9 @@ champlain_memphis_tile_source_set_map_data_source (
/**
* champlain_memphis_tile_source_get_map_data_source:
- * @map_source: a #ChamplainMemphisTileSource
+ * @tile_source: a #ChamplainMemphisTileSource
*
- * Returns the #ChamplainMapDataSource.
+ * Returns: the #ChamplainMapDataSource.
*
* Since: 0.6
*/
@@ -601,9 +596,9 @@ champlain_memphis_tile_source_get_map_data_source (
/**
* champlain_memphis_tile_source_get_background_color:
- * @map_source: a #ChamplainMemphisTileSource
+ * @tile_source: a #ChamplainMemphisTileSource
*
- * Returns the background color of the map as a newly-allocated
+ * Returns: the background color of the map as a newly-allocated
* #ClutterColor.
*
* Since: 0.6
@@ -630,7 +625,7 @@ ClutterColor * champlain_memphis_tile_source_get_background_color (
/**
* champlain_memphis_tile_source_set_background_color:
- * @map_source: a #ChamplainMemphisTileSource
+ * @tile_source: a #ChamplainMemphisTileSource
* @color: a #ClutterColor
*
* Sets the background color of the map from a #ClutterColor.
@@ -656,7 +651,7 @@ champlain_memphis_tile_source_set_background_color (
/**
* champlain_memphis_tile_source_set_rule:
- * @map_source: a #ChamplainMemphisTileSource
+ * @tile_source: a #ChamplainMemphisTileSource
* @rule: a #MemphisRule
*
* Edits or adds a #MemphisRule to the rules-set. New rules are appended
@@ -666,7 +661,7 @@ champlain_memphis_tile_source_set_background_color (
*/
void
champlain_memphis_tile_source_set_rule (ChamplainMemphisTileSource *tile_source,
- MemphisRule *rule)
+ MemphisRule *rule)
{
g_return_if_fail (CHAMPLAIN_IS_MEMPHIS_TILE_SOURCE (tile_source) &&
MEMPHIS_RULE (rule));
@@ -682,16 +677,16 @@ champlain_memphis_tile_source_set_rule (ChamplainMemphisTileSource *tile_source,
/**
* champlain_memphis_tile_source_get_rule:
- * @map_source: a #ChamplainMemphisTileSource
+ * @tile_source: a #ChamplainMemphisTileSource
* @id: an id string
*
- * Returns the requested #MemphisRule or NULL if none is found.
+ * Returns: the requested #MemphisRule or NULL if none is found.
*
* Since: 0.6
*/
MemphisRule *
champlain_memphis_tile_source_get_rule (ChamplainMemphisTileSource *tile_source,
- const gchar *id)
+ const gchar *id)
{
g_return_val_if_fail (CHAMPLAIN_IS_MEMPHIS_TILE_SOURCE (tile_source) &&
id != NULL, NULL);
@@ -708,9 +703,9 @@ champlain_memphis_tile_source_get_rule (ChamplainMemphisTileSource *tile_source,
/**
* champlain_memphis_tile_source_get_rule_ids:
- * @map_source: a #ChamplainMemphisTileSource
+ * @tile_source: a #ChamplainMemphisTileSource
*
- * Returns a #GList of id strings of the form:
+ * Returns: a #GList of id strings of the form:
* key1|key2|...|keyN:value1|value2|...|valueM
*
* Example: "waterway:river|stream|canal"
@@ -734,7 +729,7 @@ champlain_memphis_tile_source_get_rule_ids (ChamplainMemphisTileSource *tile_sou
/**
* champlain_memphis_tile_source_remove_rule:
- * @map_source: a #ChamplainMemphisTileSource
+ * @tile_source: a #ChamplainMemphisTileSource
* @id: an id string
*
* Removes the rule with the given id.
diff --git a/champlain/champlain-network-map-data-source.c b/champlain/champlain-network-map-data-source.c
index 81e4b4a..ac94ae7 100644
--- a/champlain/champlain-network-map-data-source.c
+++ b/champlain/champlain-network-map-data-source.c
@@ -221,7 +221,7 @@ champlain_network_map_data_source_init (ChamplainNetworkMapDataSource *self)
/**
* champlain_network_map_data_source_new:
*
- * Returns a new #ChamplainNetworkMapDataSource
+ * Returns: a new #ChamplainNetworkMapDataSource
*
* Since: 0.6
*/
@@ -235,7 +235,7 @@ static void
load_map_data_cb (SoupSession *session, SoupMessage *msg,
gpointer user_data)
{
- ChamplainNetworkMapDataSource *self =
+ ChamplainNetworkMapDataSource *self =
CHAMPLAIN_NETWORK_MAP_DATA_SOURCE (user_data);
ChamplainNetworkMapDataSourcePrivate *priv = GET_PRIVATE (self);
ChamplainBoundingBox *bbox;
@@ -340,7 +340,7 @@ champlain_network_map_data_source_load_map_data (
* champlain_network_map_data_source_get_api_uri:
* @map_data_source: a #ChamplainNetworkMapDataSource
*
- * Returns the URI of the API server.
+ * Returns: the URI of the API server.
*
* Since: 0.6
*/
diff --git a/champlain/champlain-network-tile-source.c b/champlain/champlain-network-tile-source.c
index 8ed45e1..7e946e0 100644
--- a/champlain/champlain-network-tile-source.c
+++ b/champlain/champlain-network-tile-source.c
@@ -17,6 +17,20 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+/**
+ * SECTION:champlain-network-tile-source
+ * @short_description: A map source that downloads tiles from a web server
+ *
+ * This object is specialized for map tiles that can be downloaded
+ * from a web server. This includes all web based map services such as
+ * OpenStreetMap, Google Maps, Yahoo Maps and more. This object contains
+ * all mechanisms necessary to download tiles.
+ *
+ * Some preconfigured network map sources are built-in this library,
+ * see #ChamplainMapSourceFactory.
+ *
+ */
+
#include "config.h"
#include "champlain-network-tile-source.h"
@@ -177,6 +191,13 @@ champlain_network_tile_source_class_init (ChamplainNetworkTileSourceClass *klass
map_source_class->fill_tile = fill_tile;
+ /**
+ * ChamplainNetworkTileSource:uri-format
+ *
+ * The uri format of the tile source, see #champlain_network_tile_source_set_uri_format
+ *
+ * Since: 0.4
+ */
pspec = g_param_spec_string ("uri-format",
"URI Format",
"The URI format",
@@ -184,6 +205,13 @@ champlain_network_tile_source_class_init (ChamplainNetworkTileSourceClass *klass
(G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (object_class, PROP_URI_FORMAT, pspec);
+ /**
+ * ChamplainNetworkTileSource:offline
+ *
+ * Specifies whether the network tile source can access network
+ *
+ * Since: 0.4
+ */
pspec = g_param_spec_boolean ("offline",
"Offline",
"Offline",
@@ -191,6 +219,13 @@ champlain_network_tile_source_class_init (ChamplainNetworkTileSourceClass *klass
G_PARAM_READWRITE);
g_object_class_install_property (object_class, PROP_OFFLINE, pspec);
+ /**
+ * ChamplainNetworkTileSource:proxy-uri
+ *
+ * The proxy uri used to access network
+ *
+ * Since: 0.4
+ */
pspec = g_param_spec_string ("proxy-uri",
"Proxy URI",
"The proxy URI to use to access network",
@@ -220,6 +255,24 @@ champlain_network_tile_source_init (ChamplainNetworkTileSource *tile_source)
}
+/**
+ * champlain_network_tile_source_new_full:
+ * @id: the map source's id
+ * @name: the map source's name
+ * @license: the map source's license
+ * @license_uri: the map source's license URI
+ * @min_zoom: the map source's minimum zoom level
+ * @max_zoom: the map source's maximum zoom level
+ * @tile_size: the map source's tile size (in pixels)
+ * @projection: the map source's projection
+ * @uri_format: the URI to fetch the tiles from, see #champlain_network_tile_source_set_uri_format
+ *
+ * Constructor of #ChamplainNetworkTileSource.
+ *
+ * Returns: a constructed #ChamplainNetworkTileSource
+ *
+ * Since: 0.4
+ */
ChamplainNetworkTileSource*
champlain_network_tile_source_new_full (const gchar *id,
const gchar *name,
@@ -240,6 +293,17 @@ champlain_network_tile_source_new_full (const gchar *id,
return source;
}
+/**
+ * champlain_network_tile_source_get_uri_format:
+ * @tile_source: the #ChamplainNetworkTileSource
+ *
+ * Default constructor of #ChamplainNetworkTileSource.
+ *
+ * Returns: A URI format used for URI creation when downloading tiles. See
+ * champlain_network_tile_source_set_uri_format() for more information.
+ *
+ * Since: 0.6
+ */
const gchar *
champlain_network_tile_source_get_uri_format (ChamplainNetworkTileSource *tile_source)
{
@@ -249,6 +313,21 @@ champlain_network_tile_source_get_uri_format (ChamplainNetworkTileSource *tile_s
return priv->uri_format;
}
+/**
+ * champlain_network_tile_source_set_uri_format:
+ * @tile_source: the #ChamplainNetworkTileSource
+ * @uri_format: the URI format
+ *
+ * A URI format is a URI where x, y and zoom level information have been
+ * marked for parsing and insertion. There can be an unlimited number of
+ * marked items in a URI format. They are delimited by "#" before and after
+ * the variable name. There are 3 defined variable names: X, Y, and Z.
+ *
+ * For example, this is the OpenStreetMap URI format:
+ * "http://tile.openstreetmap.org/\#Z\#/\#X\#/\#Y\#.png"
+ *
+ * Since: 0.4
+ */
void
champlain_network_tile_source_set_uri_format (ChamplainNetworkTileSource *tile_source,
const gchar *uri_format)
@@ -263,6 +342,16 @@ champlain_network_tile_source_set_uri_format (ChamplainNetworkTileSource *tile_s
g_object_notify (G_OBJECT (tile_source), "uri-format");
}
+/**
+ * champlain_network_tile_source_get_proxy_uri:
+ * @tile_source: the #ChamplainNetworkTileSource
+ *
+ * Gets the proxy uri used to access network.
+ *
+ * Returns: the proxy uri
+ *
+ * Since: 0.6
+ */
const gchar *
champlain_network_tile_source_get_proxy_uri (ChamplainNetworkTileSource *tile_source)
{
@@ -272,6 +361,15 @@ champlain_network_tile_source_get_proxy_uri (ChamplainNetworkTileSource *tile_so
return priv->proxy_uri;
}
+/**
+ * champlain_network_tile_source_set_proxy_uri:
+ * @tile_source: the #ChamplainNetworkTileSource
+ * @proxy_uri: the proxy uri used to access network
+ *
+ * Sets the proxy uri used to access network.
+ *
+ * Since: 0.6
+ */
void
champlain_network_tile_source_set_proxy_uri (ChamplainNetworkTileSource *tile_source,
const gchar *proxy_uri)
@@ -298,6 +396,16 @@ champlain_network_tile_source_set_proxy_uri (ChamplainNetworkTileSource *tile_so
g_object_notify (G_OBJECT (tile_source), "proxy-uri");
}
+/**
+ * champlain_network_tile_source_get_offline:
+ * @tile_source: the #ChamplainNetworkTileSource
+ *
+ * Gets offline status.
+ *
+ * Returns: TRUE when the tile source is set to be offline; FALSE otherwise.
+ *
+ * Since: 0.6
+ */
gboolean
champlain_network_tile_source_get_offline (ChamplainNetworkTileSource *tile_source)
{
@@ -307,6 +415,15 @@ champlain_network_tile_source_get_offline (ChamplainNetworkTileSource *tile_sour
return priv->offline;
}
+/**
+ * champlain_network_tile_source_set_offline:
+ * @tile_source: the #ChamplainNetworkTileSource
+ * @offline: TRUE when the tile source should be offline; FALSE otherwise
+ *
+ * Sets offline status.
+ *
+ * Since: 0.6
+ */
void
champlain_network_tile_source_set_offline (ChamplainNetworkTileSource *tile_source,
gboolean offline)
diff --git a/champlain/champlain-network-tile-source.h b/champlain/champlain-network-tile-source.h
index bd7ba63..b73640d 100644
--- a/champlain/champlain-network-tile-source.h
+++ b/champlain/champlain-network-tile-source.h
@@ -61,16 +61,16 @@ ChamplainNetworkTileSource* champlain_network_tile_source_new_full (const gchar
ChamplainMapProjection projection,
const gchar *uri_format);
-const gchar * champlain_network_tile_source_get_uri_format (ChamplainNetworkTileSource *source);
-void champlain_network_tile_source_set_uri_format (ChamplainNetworkTileSource *source,
+const gchar * champlain_network_tile_source_get_uri_format (ChamplainNetworkTileSource *tile_source);
+void champlain_network_tile_source_set_uri_format (ChamplainNetworkTileSource *tile_source,
const gchar *uri_format);
-gboolean champlain_network_tile_source_get_offline (ChamplainNetworkTileSource *source);
-void champlain_network_tile_source_set_offline (ChamplainNetworkTileSource *source,
+gboolean champlain_network_tile_source_get_offline (ChamplainNetworkTileSource *tile_source);
+void champlain_network_tile_source_set_offline (ChamplainNetworkTileSource *tile_source,
gboolean offline);
-const gchar * champlain_network_tile_source_get_proxy_uri (ChamplainNetworkTileSource *source);
-void champlain_network_tile_source_set_proxy_uri (ChamplainNetworkTileSource *source,
+const gchar * champlain_network_tile_source_get_proxy_uri (ChamplainNetworkTileSource *tile_source);
+void champlain_network_tile_source_set_proxy_uri (ChamplainNetworkTileSource *tile_source,
const gchar *proxy_uri);
G_END_DECLS
diff --git a/champlain/champlain-tile-cache.c b/champlain/champlain-tile-cache.c
index c7c8354..1c9d3f2 100644
--- a/champlain/champlain-tile-cache.c
+++ b/champlain/champlain-tile-cache.c
@@ -16,6 +16,15 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+/**
+ * SECTION:champlain-tile-cache
+ * @short_description: A base class of tile caches
+ *
+ * This class defines properties and methods common to all caches (that is, map
+ * sources that permit storage and retrieval of tiles). Tiles are typically
+ * stored by #ChamplainTileSource objects.
+ */
+
#include "champlain-tile-cache.h"
G_DEFINE_TYPE (ChamplainTileCache, champlain_tile_cache, CHAMPLAIN_TYPE_MAP_SOURCE);
@@ -42,6 +51,7 @@ static const gchar *get_license_uri (ChamplainMapSource *map_source);
static guint get_min_zoom_level (ChamplainMapSource *map_source);
static guint get_max_zoom_level (ChamplainMapSource *map_source);
static guint get_tile_size (ChamplainMapSource *map_source);
+static ChamplainMapProjection get_projection (ChamplainMapSource *map_source);
static void
champlain_tile_cache_get_property (GObject *object,
@@ -120,6 +130,7 @@ champlain_tile_cache_class_init (ChamplainTileCacheClass *klass)
map_source_class->get_min_zoom_level = get_min_zoom_level;
map_source_class->get_max_zoom_level = get_max_zoom_level;
map_source_class->get_tile_size = get_tile_size;
+ map_source_class->get_projection = get_projection;
map_source_class->fill_tile = NULL;
@@ -128,10 +139,18 @@ champlain_tile_cache_class_init (ChamplainTileCacheClass *klass)
tile_cache_class->store_tile = NULL;
tile_cache_class->clean = NULL;
+ /**
+ * ChamplainTileCache:persistent-cache
+ *
+ * Determines whether the cache is persistent or temporary (cleaned upon
+ * destruction)
+ *
+ * Since: 0.6
+ */
pspec = g_param_spec_boolean ("persistent-cache",
"Persistent Cache",
"Specifies whether the cache is persistent",
- FALSE,
+ TRUE,
G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE);
g_object_class_install_property (object_class, PROP_PERSISTENT_CACHE, pspec);
}
@@ -144,6 +163,16 @@ champlain_tile_cache_init (ChamplainTileCache *tile_cache)
priv->persistent = FALSE;
}
+/**
+ * champlain_tile_cache_get_persistent:
+ * @tile_cache: a #ChamplainTileCache
+ *
+ * Gets cache persistency information.
+ *
+ * Returns: TRUE when the cache is persistent; FALSE otherwise.
+ *
+ * Since: 0.6
+ */
gboolean
champlain_tile_cache_get_persistent (ChamplainTileCache *tile_cache)
{
@@ -153,6 +182,17 @@ champlain_tile_cache_get_persistent (ChamplainTileCache *tile_cache)
return priv->persistent;
}
+/**
+ * champlain_tile_cache_store_tile:
+ * @tile_cache: a #ChamplainTileCache
+ * @tile: a #ChamplainTile
+ * @contents: the tile contents that should be stored
+ * @size: size of the contents in bytes
+ *
+ * Stores the tile including the metadata into the cache.
+ *
+ * Since: 0.6
+ */
void
champlain_tile_cache_store_tile (ChamplainTileCache *tile_cache,
ChamplainTile *tile,
@@ -164,6 +204,15 @@ champlain_tile_cache_store_tile (ChamplainTileCache *tile_cache,
return CHAMPLAIN_TILE_CACHE_GET_CLASS (tile_cache)->store_tile (tile_cache, tile, contents, size);
}
+/**
+ * champlain_tile_cache_refresh_tile_time:
+ * @tile_cache: a #ChamplainTileCache
+ * @tile: a #ChamplainTile
+ *
+ * Refreshes the tile access time in the cache.
+ *
+ * Since: 0.6
+ */
void
champlain_tile_cache_refresh_tile_time (ChamplainTileCache *tile_cache, ChamplainTile *tile)
{
@@ -172,6 +221,21 @@ champlain_tile_cache_refresh_tile_time (ChamplainTileCache *tile_cache, Champlai
return CHAMPLAIN_TILE_CACHE_GET_CLASS (tile_cache)->refresh_tile_time (tile_cache, tile);
}
+/**
+ * champlain_tile_cache_on_tile_filled:
+ * @tile_cache: a #ChamplainTileCache
+ * @tile: a #ChamplainTile
+ *
+ * When a cache fills a tile and the next source in the chain is a tile cache,
+ * it should call this function on the next source. This way all the caches
+ * preceding a tile source in the chain get informed that the tile was used and
+ * can modify their metadata accordingly in the implementation of this function.
+ * In addition, the call of this function should be chained so within the
+ * implementation of this function it should be called on the next source
+ * in the chain when next source is a tile cache.
+ *
+ * Since: 0.6
+ */
void
champlain_tile_cache_on_tile_filled (ChamplainTileCache *tile_cache, ChamplainTile *tile)
{
@@ -180,6 +244,15 @@ champlain_tile_cache_on_tile_filled (ChamplainTileCache *tile_cache, ChamplainTi
return CHAMPLAIN_TILE_CACHE_GET_CLASS (tile_cache)->on_tile_filled (tile_cache, tile);
}
+/**
+ * champlain_tile_cache_clean:
+ * @tile_cache: a #ChamplainTileCache
+ *
+ * Erases the contents of the cache. This function will fail when the cache is
+ * not temporary.
+ *
+ * Since: 0.6
+ */
void
champlain_tile_cache_clean (ChamplainTileCache *tile_cache)
{
@@ -271,3 +344,15 @@ get_tile_size (ChamplainMapSource *map_source)
return champlain_map_source_get_tile_size (next_source);
}
+
+static ChamplainMapProjection
+get_projection (ChamplainMapSource *map_source)
+{
+ g_return_val_if_fail (CHAMPLAIN_IS_TILE_CACHE (map_source), CHAMPLAIN_MAP_PROJECTION_MERCATOR);
+
+ ChamplainMapSource *next_source = champlain_map_source_get_next_source (map_source);
+
+ g_return_val_if_fail (CHAMPLAIN_IS_MAP_SOURCE (next_source), CHAMPLAIN_MAP_PROJECTION_MERCATOR);
+
+ return champlain_map_source_get_projection (next_source);
+}
diff --git a/champlain/champlain-tile-source.c b/champlain/champlain-tile-source.c
index efb1b6d..5ca364a 100644
--- a/champlain/champlain-tile-source.c
+++ b/champlain/champlain-tile-source.c
@@ -17,6 +17,14 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+/**
+ * SECTION:champlain-tile-source
+ * @short_description: A base class of tile sources
+ *
+ * This class defines properties common to all tile sources (that is, map
+ * sources that are not caches).
+ */
+
#include "champlain-tile-source.h"
#include "champlain-enum-types.h"
@@ -60,6 +68,7 @@ static const gchar *get_license_uri (ChamplainMapSource *map_source);
static guint get_min_zoom_level (ChamplainMapSource *map_source);
static guint get_max_zoom_level (ChamplainMapSource *map_source);
static guint get_tile_size (ChamplainMapSource *map_source);
+static ChamplainMapProjection get_projection (ChamplainMapSource *map_source);
static void
champlain_tile_source_get_property (GObject *object,
@@ -209,9 +218,17 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
map_source_class->get_min_zoom_level = get_min_zoom_level;
map_source_class->get_max_zoom_level = get_max_zoom_level;
map_source_class->get_tile_size = get_tile_size;
+ map_source_class->get_projection = get_projection;
map_source_class->fill_tile = NULL;
+ /**
+ * ChamplainTileSource:id:
+ *
+ * The name of the tile source
+ *
+ * Since: 0.4
+ */
pspec = g_param_spec_string ("id",
"Id",
"The id of the tile source",
@@ -219,6 +236,13 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
(G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (object_class, PROP_ID, pspec);
+ /**
+ * ChamplainTileSource:name:
+ *
+ * The name of the tile source
+ *
+ * Since: 0.4
+ */
pspec = g_param_spec_string ("name",
"Name",
"The name of the tile source",
@@ -226,6 +250,13 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
(G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (object_class, PROP_NAME, pspec);
+ /**
+ * ChamplainTileSource:license:
+ *
+ * The usage license of the tile source
+ *
+ * Since: 0.4
+ */
pspec = g_param_spec_string ("license",
"License",
"The usage license of the tile source",
@@ -233,6 +264,13 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
(G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (object_class, PROP_LICENSE, pspec);
+ /**
+ * ChamplainTileSource:license-uri:
+ *
+ * The usage license's uri for more information
+ *
+ * Since: 0.4
+ */
pspec = g_param_spec_string ("license-uri",
"License-uri",
"The usage license's uri for more information",
@@ -240,6 +278,13 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
(G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (object_class, PROP_LICENSE_URI, pspec);
+ /**
+ * ChamplainTileSource:min-zoom-level:
+ *
+ * The minimum zoom level
+ *
+ * Since: 0.4
+ */
pspec = g_param_spec_uint ("min-zoom-level",
"Minimum Zoom Level",
"The minimum zoom level",
@@ -249,6 +294,13 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
(G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (object_class, PROP_MIN_ZOOM_LEVEL, pspec);
+ /**
+ * ChamplainTileSource:max-zoom-level:
+ *
+ * The maximum zoom level
+ *
+ * Since: 0.4
+ */
pspec = g_param_spec_uint ("max-zoom-level",
"Maximum Zoom Level",
"The maximum zoom level",
@@ -258,6 +310,13 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
(G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (object_class, PROP_MAX_ZOOM_LEVEL, pspec);
+ /**
+ * ChamplainTileSource:tile-size:
+ *
+ * The tile size of the tile source
+ *
+ * Since: 0.4
+ */
pspec = g_param_spec_uint ("tile-size",
"Tile Size",
"The tile size",
@@ -267,6 +326,13 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
(G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (object_class, PROP_TILE_SIZE, pspec);
+ /**
+ * ChamplainTileSource:projection
+ *
+ * The map projection of the tile source
+ *
+ * Since: 0.4
+ */
pspec = g_param_spec_enum ("projection",
"Projection",
"The map projection",
@@ -275,6 +341,13 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
(G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (object_class, PROP_MAP_PROJECTION, pspec);
+ /**
+ * ChamplainTileSource:cache
+ *
+ * The cache used for tile storage
+ *
+ * Since: 0.6
+ */
pspec = g_param_spec_object ("cache",
"Cache",
"Cache used for tile sorage",
@@ -298,15 +371,16 @@ champlain_tile_source_init (ChamplainTileSource *tile_source)
priv->map_projection = CHAMPLAIN_MAP_PROJECTION_MERCATOR;
}
-ChamplainMapProjection
-champlain_tile_source_get_projection (ChamplainTileSource *tile_source)
-{
- g_return_val_if_fail (CHAMPLAIN_IS_TILE_SOURCE (tile_source), 0);
-
- ChamplainTileSourcePrivate *priv = GET_PRIVATE(tile_source);
- return priv->map_projection;
-}
-
+/**
+ * champlain_tile_source_get_cache:
+ * @tile_source: a #ChamplainTileSource
+ *
+ * Gets the cache used for storing tiles by this tile source.
+ *
+ * Returns: the cache
+ *
+ * Since: 0.6
+ */
ChamplainTileCache *
champlain_tile_source_get_cache (ChamplainTileSource *tile_source)
{
@@ -316,18 +390,15 @@ champlain_tile_source_get_cache (ChamplainTileSource *tile_source)
return priv->cache;
}
-void
-champlain_tile_source_set_projection (ChamplainTileSource *tile_source,
- ChamplainMapProjection projection)
-{
- g_return_if_fail (CHAMPLAIN_IS_TILE_SOURCE (tile_source));
-
- ChamplainTileSourcePrivate *priv = GET_PRIVATE(tile_source);
-
- priv->map_projection = projection;
- g_object_notify (G_OBJECT (tile_source), "projection");
-}
-
+/**
+ * champlain_tile_source_set_cache:
+ * @tile_source: a #ChamplainTileSource
+ * @cache: a #ChamplainTileCache
+ *
+ * Sets the map source's cache used for storing tiles.
+ *
+ * Since: 0.6
+ */
void
champlain_tile_source_set_cache (ChamplainTileSource *tile_source,
ChamplainTileCache *cache)
@@ -414,6 +485,24 @@ get_tile_size (ChamplainMapSource *map_source)
return priv->tile_size;
}
+static ChamplainMapProjection
+get_projection (ChamplainMapSource *map_source)
+{
+ g_return_val_if_fail (CHAMPLAIN_IS_TILE_SOURCE (map_source), 0);
+
+ ChamplainTileSourcePrivate *priv = GET_PRIVATE(map_source);
+ return priv->map_projection;
+}
+
+/**
+ * champlain_tile_source_set_id:
+ * @tile_source: a #ChamplainTileSource
+ * @id: an id
+ *
+ * Sets the tile source's id.
+ *
+ * Since: 0.4
+ */
void
champlain_tile_source_set_id (ChamplainTileSource *tile_source,
const gchar *id)
@@ -428,6 +517,15 @@ champlain_tile_source_set_id (ChamplainTileSource *tile_source,
g_object_notify (G_OBJECT (tile_source), "id");
}
+/**
+ * champlain_tile_source_set_name:
+ * @tile_source: a #ChamplainTileSource
+ * @name: a name
+ *
+ * Sets the tile source's name.
+ *
+ * Since: 0.4
+ */
void
champlain_tile_source_set_name (ChamplainTileSource *tile_source,
const gchar *name)
@@ -442,6 +540,15 @@ champlain_tile_source_set_name (ChamplainTileSource *tile_source,
g_object_notify (G_OBJECT (tile_source), "name");
}
+/**
+ * champlain_tile_source_set_license:
+ * @tile_source: a #ChamplainTileSource
+ * @license: the licence
+ *
+ * Sets the tile source's license.
+ *
+ * Since: 0.4
+ */
void
champlain_tile_source_set_license (ChamplainTileSource *tile_source,
const gchar *license)
@@ -456,6 +563,15 @@ champlain_tile_source_set_license (ChamplainTileSource *tile_source,
g_object_notify (G_OBJECT (tile_source), "license");
}
+/**
+ * champlain_tile_source_set_license_uri:
+ * @tile_source: a #ChamplainTileSource
+ * @license_uri: the licence URI
+ *
+ * Sets the tile source's license URI.
+ *
+ * Since: 0.4
+ */
void
champlain_tile_source_set_license_uri (ChamplainTileSource *tile_source,
const gchar *license_uri)
@@ -470,6 +586,15 @@ champlain_tile_source_set_license_uri (ChamplainTileSource *tile_source,
g_object_notify (G_OBJECT (tile_source), "license-uri");
}
+/**
+ * champlain_tile_source_set_min_zoom_level:
+ * @tile_source: a #ChamplainTileSource
+ * @zoom_level: the minimal zoom level
+ *
+ * Sets the tile source's minimal zoom level.
+ *
+ * Since: 0.6
+ */
void
champlain_tile_source_set_min_zoom_level (ChamplainTileSource *tile_source,
guint zoom_level)
@@ -483,6 +608,15 @@ champlain_tile_source_set_min_zoom_level (ChamplainTileSource *tile_source,
g_object_notify (G_OBJECT (tile_source), "min-zoom-level");
}
+/**
+ * champlain_tile_source_set_max_zoom_level:
+ * @tile_source: a #ChamplainTileSource
+ * @zoom_level: the maximal zoom level
+ *
+ * Sets the tile source's maximal zoom level.
+ *
+ * Since: 0.6
+ */
void
champlain_tile_source_set_max_zoom_level (ChamplainTileSource *tile_source,
guint zoom_level)
@@ -496,6 +630,15 @@ champlain_tile_source_set_max_zoom_level (ChamplainTileSource *tile_source,
g_object_notify (G_OBJECT (tile_source), "max-zoom-level");
}
+/**
+ * champlain_tile_source_set_tile_size:
+ * @tile_source: a #ChamplainTileSource
+ * @tile_size: the tile size
+ *
+ * Sets the tile source's tile size.
+ *
+ * Since: 0.6
+ */
void
champlain_tile_source_set_tile_size (ChamplainTileSource *tile_source,
guint tile_size)
@@ -508,3 +651,25 @@ champlain_tile_source_set_tile_size (ChamplainTileSource *tile_source,
g_object_notify (G_OBJECT (tile_source), "tile-size");
}
+
+/**
+ * champlain_tile_source_set_projection:
+ * @tile_source: a #ChamplainTileSource
+ * @projection: a #ChamplainMapProjection
+ *
+ * Sets the tile source's projection.
+ *
+ * Since: 0.4
+ */
+void
+champlain_tile_source_set_projection (ChamplainTileSource *tile_source,
+ ChamplainMapProjection projection)
+{
+ g_return_if_fail (CHAMPLAIN_IS_TILE_SOURCE (tile_source));
+
+ ChamplainTileSourcePrivate *priv = GET_PRIVATE(tile_source);
+
+ priv->map_projection = projection;
+
+ g_object_notify (G_OBJECT (tile_source), "projection");
+}
diff --git a/champlain/champlain-tile-source.h b/champlain/champlain-tile-source.h
index 7e6fcc2..04f1624 100644
--- a/champlain/champlain-tile-source.h
+++ b/champlain/champlain-tile-source.h
@@ -40,11 +40,6 @@ G_BEGIN_DECLS
typedef struct _ChamplainTileSource ChamplainTileSource;
typedef struct _ChamplainTileSourceClass ChamplainTileSourceClass;
-typedef enum
-{
- CHAMPLAIN_MAP_PROJECTION_MERCATOR
-} ChamplainMapProjection;
-
struct _ChamplainTileSource
{
ChamplainMapSource parent_instance;
@@ -57,10 +52,6 @@ struct _ChamplainTileSourceClass
GType champlain_tile_source_get_type (void);
-ChamplainMapProjection champlain_tile_source_get_projection (ChamplainTileSource *tile_source);
-void champlain_tile_source_set_projection (ChamplainTileSource *tile_source,
- ChamplainMapProjection projection);
-
ChamplainTileCache *champlain_tile_source_get_cache (ChamplainTileSource *tile_source);
void champlain_tile_source_set_cache (ChamplainTileSource *tile_source,
ChamplainTileCache *cache);
@@ -79,7 +70,9 @@ void champlain_tile_source_set_min_zoom_level (ChamplainTileSource *tile_source,
void champlain_tile_source_set_max_zoom_level (ChamplainTileSource *tile_source,
guint zoom_level);
void champlain_tile_source_set_tile_size (ChamplainTileSource *tile_source,
- guint zoom_level);
+ guint tile_size);
+void champlain_tile_source_set_projection (ChamplainTileSource *tile_source,
+ ChamplainMapProjection projection);
G_END_DECLS
diff --git a/champlain/champlain-tile.c b/champlain/champlain-tile.c
index 4227373..e68e1ed 100644
--- a/champlain/champlain-tile.c
+++ b/champlain/champlain-tile.c
@@ -755,6 +755,7 @@ champlain_tile_set_content (ChamplainTile *self,
/**
* champlain_tile_get_content:
+ * @self: the #ChamplainTile
*
* Returns: the tile's content, this actor will change each time the tile's content changes.
* You should not unref this content, it is owned by the tile.
diff --git a/docs/reference/libchamplain-docs.sgml b/docs/reference/libchamplain-docs.sgml
index 8da2c38..4f141cd 100644
--- a/docs/reference/libchamplain-docs.sgml
+++ b/docs/reference/libchamplain-docs.sgml
@@ -52,10 +52,14 @@
<title>II. Map Source API Reference</title>
<xi:include href="xml/champlain-map-source-factory.xml"/>
<xi:include href="xml/champlain-map-source.xml"/>
- <xi:include href="xml/champlain-network-map-source.xml"/>
- <xi:include href="xml/champlain-memphis-map-source.xml"/>
<xi:include href="xml/champlain-tile.xml"/>
- <xi:include href="xml/champlain-cache.xml"/>
+ <xi:include href="xml/champlain-map-source-chain.xml"/>
+ <xi:include href="xml/champlain-tile-source.xml"/>
+ <xi:include href="xml/champlain-tile-cache.xml"/>
+ <xi:include href="xml/champlain-network-tile-source.xml"/>
+ <xi:include href="xml/champlain-memphis-tile-source.xml"/>
+ <xi:include href="xml/champlain-error-tile-source.xml"/>
+ <xi:include href="xml/champlain-file-cache.xml"/>
</chapter>
<chapter>
<title>III. Map Data Source API Reference</title>
diff --git a/docs/reference/libchamplain-sections.txt b/docs/reference/libchamplain-sections.txt
index a4dd974..afe9237 100644
--- a/docs/reference/libchamplain-sections.txt
+++ b/docs/reference/libchamplain-sections.txt
@@ -2,27 +2,24 @@
<FILE>champlain-map-source</FILE>
<TITLE>ChamplainMapSource</TITLE>
ChamplainMapProjection
-ChamplainMapSource
+champlain_map_source_get_id
+champlain_map_source_get_name
+champlain_map_source_get_license
+champlain_map_source_get_license_uri
champlain_map_source_get_min_zoom_level
champlain_map_source_get_max_zoom_level
champlain_map_source_get_tile_size
+champlain_map_source_get_projection
champlain_map_source_get_x
champlain_map_source_get_y
champlain_map_source_get_longitude
champlain_map_source_get_latitude
champlain_map_source_get_row_count
champlain_map_source_get_column_count
+champlain_map_source_get_meters_per_pixel
champlain_map_source_fill_tile
-champlain_map_source_set_name
-champlain_map_source_get_name
-champlain_map_source_set_license
-champlain_map_source_get_license
-champlain_map_source_set_license_uri
-champlain_map_source_get_license_uri
-champlain_map_source_set_projection
-champlain_map_source_get_projection
-champlain_map_source_get_id
-champlain_map_source_set_id
+champlain_map_source_get_next_source
+champlain_map_source_set_next_source
<SUBSECTION Standard>
CHAMPLAIN_MAP_SOURCE
CHAMPLAIN_IS_MAP_SOURCE
@@ -33,13 +30,12 @@ CHAMPLAIN_IS_MAP_SOURCE_CLASS
CHAMPLAIN_MAP_SOURCE_GET_CLASS
<SUBSECTION Private>
ChamplainMapSourceClass
-ChamplainMapSourcePrivate
+ChamplainMapSource
</SECTION>
<SECTION>
<FILE>champlain-marker</FILE>
<TITLE>ChamplainMarker</TITLE>
-ChamplainMarker
champlain_marker_set_highlight_color
champlain_marker_new
champlain_marker_new_with_text
@@ -82,6 +78,7 @@ CHAMPLAIN_MARKER_GET_CLASS
<SUBSECTION Private>
ChamplainMarkerClass
ChamplainMarkerPrivate
+ChamplainMarker
</SECTION>
<SECTION>
@@ -170,6 +167,14 @@ champlain_view_set_zoom_level
champlain_view_get_zoom_level
champlain_view_set_zoom_on_double_click
champlain_view_get_zoom_on_double_click
+champlain_view_set_license_text
+champlain_view_get_license_text
+champlain_view_set_max_scale_width
+champlain_view_get_max_scale_width
+champlain_view_set_scale_unit
+champlain_view_get_scale_unit
+champlain_view_set_show_scale
+champlain_view_get_show_scale
champlain_view_add_layer
champlain_view_remove_layer
champlain_view_get_coords_from_event
@@ -189,21 +194,26 @@ ChamplainViewPrivate
</SECTION>
<SECTION>
-<FILE>champlain-network-map-source</FILE>
-<TITLE>ChamplainNetworkMapSource</TITLE>
-ChamplainNetworkMapSource
-champlain_network_map_source_new_full
-champlain_network_map_source_get_tile_uri
-champlain_network_map_source_set_uri_format
-champlain_network_map_source_fill_tile
+<FILE>champlain-network-tile-source</FILE>
+<TITLE>ChamplainNetworkTileSource</TITLE>
+ChamplainNetworkTileSource
+champlain_network_tile_source_new_full
+champlain_network_tile_source_set_uri_format
+champlain_network_tile_source_get_uri_format
+champlain_network_tile_source_set_offline
+champlain_network_tile_source_get_offline
+champlain_network_tile_source_set_proxy_uri
+champlain_network_tile_source_get_proxy_uri
<SUBSECTION Standard>
-CHAMPLAIN_NETWORK_MAP_SOURCE
-CHAMPLAIN_IS_NETWORK_MAP_SOURCE
-CHAMPLAIN_TYPE_NETWORK_MAP_SOURCE
-champlain_network_map_source_get_type
-CHAMPLAIN_NETWORK_MAP_SOURCE_CLASS
-CHAMPLAIN_IS_NETWORK_MAP_SOURCE_CLASS
-CHAMPLAIN_NETWORK_MAP_SOURCE_GET_CLASS
+CHAMPLAIN_NETWORK_TILE_SOURCE
+CHAMPLAIN_IS_NETWORK_TILE_SOURCE
+CHAMPLAIN_TYPE_NETWORK_TILE_SOURCE
+champlain_network_tile_source_get_type
+CHAMPLAIN_NETWORK_TILE_SOURCE_CLASS
+CHAMPLAIN_IS_NETWORK_TILE_SOURCE_CLASS
+CHAMPLAIN_NETWORK_TILE_SOURCE_GET_CLASS
+<SUBSECTION Private>
+ChamplainNetworkTileSourceClass
</SECTION>
<SECTION>
@@ -217,16 +227,12 @@ champlain_tile_get_y
champlain_tile_get_zoom_level
champlain_tile_get_size
champlain_tile_get_state
-champlain_tile_get_uri
-champlain_tile_get_filename
champlain_tile_get_actor
champlain_tile_set_x
champlain_tile_set_y
champlain_tile_set_zoom_level
champlain_tile_set_size
champlain_tile_set_state
-champlain_tile_set_uri
-champlain_tile_set_filename
champlain_tile_get_content
champlain_tile_get_etag
champlain_tile_get_modified_time
@@ -242,6 +248,9 @@ champlain_tile_get_type
CHAMPLAIN_TILE_CLASS
CHAMPLAIN_IS_TILE_CLASS
CHAMPLAIN_TILE_GET_CLASS
+<SUBSECTION Private>
+ChamplainTileClass
+ChamplainTilePrivate
</SECTION>
<SECTION>
@@ -265,6 +274,8 @@ champlain_layer_get_type
CHAMPLAIN_LAYER_CLASS
CHAMPLAIN_IS_LAYER_CLASS
CHAMPLAIN_LAYER_GET_CLASS
+<SUBSECTION Private>
+ChamplainLayerClass
</SECTION>
<SECTION>
@@ -359,30 +370,24 @@ champlain_point_get_type
</SECTION>
<SECTION>
-<FILE>champlain-cache</FILE>
-<TITLE>ChamplainCache</TITLE>
-ChamplainCache
-ChamplainCacheClass
-champlain_cache_dup_default
-champlain_cache_fill_tile
-champlain_cache_dup_default
-champlain_cache_get_size_limit
-champlain_cache_purge
-champlain_cache_purge_on_idle
-champlain_cache_set_size_limit
-champlain_cache_tile_is_expired
-champlain_cache_update_tile
-champlain_cache_update_tile_with_session
-champlain_cache_delete_session
-champlain_cache_get_filename
+<FILE>champlain-tile-cache</FILE>
+<TITLE>ChamplainTileCache</TITLE>
+ChamplainTileCache
+champlain_tile_cache_get_persistent
+champlain_tile_cache_store_tile
+champlain_tile_cache_refresh_tile_time
+champlain_tile_cache_on_tile_filled
+champlain_tile_cache_clean
<SUBSECTION Standard>
-CHAMPLAIN_CACHE
-CHAMPLAIN_IS_CACHE
-CHAMPLAIN_TYPE_CACHE
-champlain_cache_get_type
-CHAMPLAIN_CACHE_CLASS
-CHAMPLAIN_IS_CACHE_CLASS
-CHAMPLAIN_CACHE_GET_CLASS
+CHAMPLAIN_TILE_CACHE
+CHAMPLAIN_IS_TILE_CACHE
+CHAMPLAIN_TYPE_TILE_CACHE
+champlain_tile_cache_get_type
+CHAMPLAIN_TILE_CACHE_CLASS
+CHAMPLAIN_IS_TILE_CACHE_CLASS
+CHAMPLAIN_TILE_CACHE_GET_CLASS
+<SUBSECTION Private>
+ChamplainTileCacheClass
</SECTION>
<SECTION>
@@ -394,12 +399,16 @@ ChamplainMapSourceConstructor
champlain_map_source_factory_dup_default
champlain_map_source_factory_dup_list
champlain_map_source_factory_create
+champlain_map_source_factory_create_cached_source
champlain_map_source_factory_register
-champlain_map_source_desc_copy
-champlain_map_source_desc_free
-champlain_map_source_desc_get_type
-champlain_map_source_desc_new
-champlain_map_source_factory_get_list
+CHAMPLAIN_MAP_SOURCE_OSM_MAPNIK
+CHAMPLAIN_MAP_SOURCE_OSM_OSMARENDER
+CHAMPLAIN_MAP_SOURCE_OSM_CYCLE_MAP
+CHAMPLAIN_MAP_SOURCE_OSM_TRANSPORT_MAP
+CHAMPLAIN_MAP_SOURCE_OAM
+CHAMPLAIN_MAP_SOURCE_MFF_RELIEF
+CHAMPLAIN_MAP_SOURCE_MEMPHIS_LOCAL
+CHAMPLAIN_MAP_SOURCE_MEMPHIS_NETWORK
<SUBSECTION Standard>
CHAMPLAIN_MAP_SOURCE_FACTORY
CHAMPLAIN_IS_MAP_SOURCE_FACTORY
@@ -408,6 +417,9 @@ champlain_map_source_factory_get_type
CHAMPLAIN_MAP_SOURCE_FACTORY_CLASS
CHAMPLAIN_IS_MAP_SOURCE_FACTORY_CLASS
CHAMPLAIN_MAP_SOURCE_FACTORY_GET_CLASS
+<SUBSECTION Private>
+ChamplainMapSourceFactoryClass
+ChamplainMapSourceFactoryPrivate
</SECTION>
<SECTION>
@@ -439,6 +451,9 @@ champlain_polygon_get_type
CHAMPLAIN_POLYGON_CLASS
CHAMPLAIN_IS_POLYGON_CLASS
CHAMPLAIN_POLYGON_GET_CLASS
+<SUBSECTION Private>
+ChamplainPolygonClass
+ChamplainPolygonPrivate
</SECTION>
<SECTION>
@@ -465,33 +480,35 @@ CHAMPLAIN_SELECTION_LAYER_CLASS
CHAMPLAIN_SELECTION_LAYER_GET_CLASS
CHAMPLAIN_TYPE_SELECTION_LAYER
champlain_selection_layer_get_type
+<SUBSECTION Private>
+ChamplainSelectionLayerClass
+ChamplainSelectionLayerPrivate
</SECTION>
<SECTION>
-<FILE>champlain-memphis-map-source</FILE>
-<TITLE>ChamplainMemphisMapSource</TITLE>
-ChamplainMemphisMapSource
-champlain_memphis_map_source_new_full
-champlain_memphis_map_source_load_rules
-champlain_memphis_map_source_set_background_color
-champlain_memphis_map_source_get_background_color
-champlain_memphis_map_source_set_map_data_source
-champlain_memphis_map_source_get_map_data_source
-champlain_memphis_map_source_set_rule
-champlain_memphis_map_source_get_rule
-champlain_memphis_map_source_remove_rule
-champlain_memphis_map_source_get_rule_ids
-champlain_memphis_map_source_set_session_id
-champlain_memphis_map_source_get_session_id
-champlain_memphis_map_source_delete_session_cache
+<FILE>champlain-memphis-tile-source</FILE>
+<TITLE>ChamplainMemphisTileSource</TITLE>
+ChamplainMemphisTileSource
+champlain_memphis_tile_source_new_full
+champlain_memphis_tile_source_load_rules
+champlain_memphis_tile_source_set_background_color
+champlain_memphis_tile_source_get_background_color
+champlain_memphis_tile_source_set_map_data_source
+champlain_memphis_tile_source_get_map_data_source
+champlain_memphis_tile_source_set_rule
+champlain_memphis_tile_source_get_rule
+champlain_memphis_tile_source_remove_rule
+champlain_memphis_tile_source_get_rule_ids
<SUBSECTION Standard>
-CHAMPLAIN_MEMPHIS_MAP_SOURCE
-CHAMPLAIN_IS_MEMPHIS_MAP_SOURCE
-CHAMPLAIN_TYPE_MEMPHIS_MAP_SOURCE
-champlain_memphis_map_source_get_type
-CHAMPLAIN_MEMPHIS_MAP_SOURCE_CLASS
-CHAMPLAIN_IS_MEMPHIS_MAP_SOURCE_CLASS
-CHAMPLAIN_MEMPHIS_MAP_SOURCE_GET_CLASS
+CHAMPLAIN_MEMPHIS_TILE_SOURCE
+CHAMPLAIN_IS_MEMPHIS_TILE_SOURCE
+CHAMPLAIN_TYPE_MEMPHIS_TILE_SOURCE
+champlain_memphis_tile_source_get_type
+CHAMPLAIN_MEMPHIS_TILE_SOURCE_CLASS
+CHAMPLAIN_IS_MEMPHIS_TILE_SOURCE_CLASS
+CHAMPLAIN_MEMPHIS_TILE_SOURCE_GET_CLASS
+<SUBSECTION Private>
+ChamplainMemphisTileSourceClass
</SECTION>
<SECTION>
@@ -507,6 +524,8 @@ champlain_map_data_source_get_type
CHAMPLAIN_MAP_DATA_SOURCE_CLASS
CHAMPLAIN_IS_MAP_DATA_SOURCE_CLASS
CHAMPLAIN_MAP_DATA_SOURCE_GET_CLASS
+<SUBSECTION Private>
+ChamplainMapDataSourceClass
</SECTION>
<SECTION>
@@ -523,6 +542,8 @@ champlain_local_map_data_source_get_type
CHAMPLAIN_LOCAL_MAP_DATA_SOURCE_CLASS
CHAMPLAIN_IS_LOCAL_MAP_DATA_SOURCE_CLASS
CHAMPLAIN_LOCAL_MAP_DATA_SOURCE_GET_CLASS
+<SUBSECTION Private>
+ChamplainLocalMapDataSourceClass
</SECTION>
<SECTION>
@@ -541,6 +562,8 @@ champlain_network_map_data_source_get_type
CHAMPLAIN_NETWORK_MAP_DATA_SOURCE_CLASS
CHAMPLAIN_IS_NETWORK_MAP_DATA_SOURCE_CLASS
CHAMPLAIN_NETWORK_MAP_DATA_SOURCE_GET_CLASS
+<SUBSECTION Private>
+ChamplainNetworkMapDataSourceClass
</SECTION>
<SECTION>
@@ -556,3 +579,88 @@ CHAMPLAIN_BOUNDING_BOX
CHAMPLAIN_TYPE_BOUNDING_BOX
champlain_bounding_box_get_type
</SECTION>
+
+<SECTION>
+<FILE>champlain-map-source-chain</FILE>
+<TITLE>ChamplainMapSourceChain</TITLE>
+ChamplainMapSourceChain
+champlain_map_source_chain_new
+champlain_map_source_chain_push
+champlain_map_source_chain_pop
+<SUBSECTION Standard>
+CHAMPLAIN_MAP_SOURCE_CHAIN
+CHAMPLAIN_IS_MAP_SOURCE_CHAIN
+CHAMPLAIN_TYPE_MAP_SOURCE_CHAIN
+champlain_map_source_chain_get_type
+CHAMPLAIN_MAP_SOURCE_CHAIN_CLASS
+CHAMPLAIN_IS_MAP_SOURCE_CHAIN_CLASS
+CHAMPLAIN_MAP_SOURCE_CHAIN_GET_CLASS
+<SUBSECTION Private>
+ChamplainMapSourceChainClass
+</SECTION>
+
+<SECTION>
+<FILE>champlain-tile-source</FILE>
+<TITLE>ChamplainTileSource</TITLE>
+ChamplainTileSource
+champlain_tile_source_set_cache
+champlain_tile_source_get_cache
+champlain_tile_source_set_id
+champlain_tile_source_set_name
+champlain_tile_source_set_license
+champlain_tile_source_set_license_uri
+champlain_tile_source_set_min_zoom_level
+champlain_tile_source_set_max_zoom_level
+champlain_tile_source_set_tile_size
+champlain_tile_source_set_projection
+<SUBSECTION Standard>
+CHAMPLAIN_TILE_SOURCE
+CHAMPLAIN_IS_TILE_SOURCE
+CHAMPLAIN_TYPE_TILE_SOURCE
+champlain_tile_source_get_type
+CHAMPLAIN_TILE_SOURCE_CLASS
+CHAMPLAIN_IS_TILE_SOURCE_CLASS
+CHAMPLAIN_TILE_SOURCE_GET_CLASS
+<SUBSECTION Private>
+ChamplainTileSourceClass
+</SECTION>
+
+<SECTION>
+<FILE>champlain-error-tile-source</FILE>
+<TITLE>ChamplainErrorTileSource</TITLE>
+ChamplainErrorTileSource
+champlain_error_tile_source_new_full
+<SUBSECTION Standard>
+CHAMPLAIN_ERROR_TILE_SOURCE
+CHAMPLAIN_IS_ERROR_TILE_SOURCE
+CHAMPLAIN_TYPE_ERROR_TILE_SOURCE
+champlain_error_tile_source_get_type
+CHAMPLAIN_ERROR_TILE_SOURCE_CLASS
+CHAMPLAIN_IS_ERROR_TILE_SOURCE_CLASS
+CHAMPLAIN_ERROR_TILE_SOURCE_GET_CLASS
+<SUBSECTION Private>
+ChamplainErrorTileSourceClass
+</SECTION>
+
+<SECTION>
+<FILE>champlain-file-cache</FILE>
+<TITLE>ChamplainFileCache</TITLE>
+ChamplainFileCache
+champlain_file_cache_new
+champlain_file_cache_new_full
+champlain_file_cache_set_size_limit
+champlain_file_cache_get_size_limit
+champlain_file_cache_get_cache_dir
+champlain_file_cache_purge
+champlain_file_cache_purge_on_idle
+<SUBSECTION Standard>
+CHAMPLAIN_FILE_CACHE
+CHAMPLAIN_IS_FILE_CACHE
+CHAMPLAIN_TYPE_FILE_CACHE
+champlain_file_cache_get_type
+CHAMPLAIN_FILE_CACHE_CLASS
+CHAMPLAIN_IS_FILE_CACHE_CLASS
+CHAMPLAIN_FILE_CACHE_GET_CLASS
+<SUBSECTION Private>
+ChamplainFileCacheClass
+</SECTION>
diff --git a/docs/reference/libchamplain.types b/docs/reference/libchamplain.types
index 2e53708..a7f00ba 100644
--- a/docs/reference/libchamplain.types
+++ b/docs/reference/libchamplain.types
@@ -6,10 +6,17 @@ champlain_marker_get_type
champlain_layer_get_type
champlain_selection_layer_get_type
champlain_map_source_get_type
+champlain_map_source_chain_get_type
+champlain_tile_source_get_type
+champlain_tile_cache_get_type
+champlain_network_tile_source_get_type
+champlain_error_tile_source_get_type
+champlain_file_cache_get_type
champlain_tile_get_type
champlain_map_source_factory_get_type
champlain_polygon_get_type
champlain_point_get_type
+champlain_memphis_tile_source_get_type
champlain_map_data_source_get_type
champlain_local_map_data_source_get_type
champlain_network_map_data_source_get_type
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]