+ add load_map() and save_map() support for reading and writing of abstract, title, minzoom, maxzoom, and queryable attributes

This commit is contained in:
Dane Springmeyer 2009-01-11 18:55:29 +00:00
parent 14fa35fb18
commit 68e784dfdd
3 changed files with 59 additions and 1 deletions

View file

@ -14,4 +14,4 @@ For a complete change history, see the SVN log.
Current Version (0.5.2-dev, SVN trunk):
---------------------------------------
- file.cpp: change (r#)
- load_map.cpp and save_map.cpp: Added xml serialization for abstract, title, minzoom, maxzoom, and queryable attributes (r787)

View file

@ -312,6 +312,7 @@ namespace mapnik
try
{
name = get_attr(lay, "name", string("Unnamed"));
// XXX if no projection is given inherit from map? [DS]
std::string srs = get_attr(lay, "srs", map.srs());
@ -323,6 +324,36 @@ namespace mapnik
lyr.setActive( * status );
}
optional<std::string> title = get_opt_attr<string>(lay, "title");
if (title)
{
lyr.set_title( * title );
}
optional<std::string> abstract = get_opt_attr<string>(lay, "abstract");
if (abstract)
{
lyr.set_abstract( * abstract );
}
optional<double> minZoom = get_opt_attr<double>(lay, "minzoom");
if (minZoom)
{
lyr.setMinZoom( * minZoom );
}
optional<double> maxZoom = get_opt_attr<double>(lay, "maxzoom");
if (maxZoom)
{
lyr.setMaxZoom( * maxZoom );
}
optional<boolean> queryable = get_opt_attr<boolean>(lay, "queryable");
if (queryable)
{
lyr.setQueryable( * queryable );
}
optional<boolean> clear_cache =
get_opt_attr<boolean>(lay, "clear_label_cache");
if (clear_cache)

View file

@ -370,13 +370,40 @@ namespace mapnik
{
set_attr( layer_node, "name", layer.name() );
}
if ( layer.abstract() != "" )
{
set_attr( layer_node, "abstract", layer.abstract() );
}
if ( layer.title() != "" )
{
set_attr( layer_node, "title", layer.title() );
}
if ( layer.srs() != "" )
{
set_attr( layer_node, "srs", layer.srs() );
}
set_attr/*<bool>*/( layer_node, "status", layer.isActive() );
set_attr/*<bool>*/( layer_node, "clear_label_cache", layer.clear_label_cache() );
if ( layer.getMinZoom() )
{
set_attr( layer_node, "minzoom", layer.getMinZoom() );
}
if ( layer.getMaxZoom() )
{
set_attr( layer_node, "maxzoom", layer.getMaxZoom() );
}
if ( layer.isQueryable() )
{
set_attr( layer_node, "queryable", layer.isQueryable() );
}
std::vector<std::string> const& style_names = layer.styles();
for (unsigned i = 0; i < style_names.size(); ++i)
{